profile
viewpoint
Ben Gourley bengourley @bugsnag Bath http://bengourley.co.uk ¯\_(ツ)_/¯

bengourley/basic-express-site-2016 72

Simple example Node website using Express (2016 edition)

bengourley/anytime 20

A date/time picker

bengourley/break 18

Know when breakpoints are entered/exited in your JavaScript

bengourley/choo-resume 15

choo-resume + hot-rld = hot app reload in choo

bengourley/browjadify 7

Browserify transform. Injects compiled jade templates in place of compileJade() function calls.

bengourley/Cap 2

A compile-to-JavaScript language.

bengourley/browser-fingerprint 1

Generate a fingerprint for a browser

bengourley/cf-base-view 1

A base for frontend cf views to extend

bengourley/compact 1

A simple JavaScript and CSS compacting middleware for express

push eventbugsnag/bugsnag-android

Steve Kirkland

commit sha 8c52d1293e2dd5a2ac07bf72c71af70032c0a2c7

Use development MazeRunner [full ci]

view details

push time in 5 hours

push eventbugsnag/bugsnag-android

Steve Kirkland

commit sha fe183edee43368819334328a955b0ed1bea5aa22

Une Android 4 and 5 devices with more grunt

view details

Steve Kirkland

commit sha e421d9d29f1effe330d9650f485b05387e333ee5

Use development MazeRunner

view details

push time in 5 hours

issue commentbugsnag/bugsnag-android

Merged Manifest includes formatting and comments

Ah, sorry, I missed this over the holiday break.

To confirm, we are seeing this with "upgrading/downgrading the Bugsnag Gradle plugin (com.bugsnag:bugsnag-android-gradle-plugin:5.+)" alone

I think there might be some confusion, with regard to:

in all cases am seeing the comments being propagated

The behaviour we were seeing before is that the comments were being stripped out. After the upgrade, they persist.

I can follow up with an email this week.

Cheers.

AdamMTGreenberg

comment created time in 6 hours

startedStalePixels/D3

started time in 7 hours

create barnchbugsnag/bugsnag-android

branch : tms/android-4-sadness

created branch time in 8 hours

Pull request review commentbugsnag/bugsnag-source-maps

feat: Default React Native uploads to overwrite=true

 function formatErrorLog (e: NetworkError): string {       str += `\n\n  responseText = ${e.responseText}`       break     case NetworkErrorCode.DUPLICATE:-      str += 'A source map matching the same criteria has already been uploaded. If you want to replace it, use the "overwrite" flag.'+      str += 'A source map matching the same criteria has already been uploaded. ' ++        'If you want to replace it, use the "overwrite" flag (or remove the "no-overwrite" flag).'

I think we should special case this message for React Native as the overwrite flag doesn't exist anymore (and no-overwrite doesn't exist in browser/node) so it's a bit confusing like this

The easiest ways I can think of is to either check the error code before calling this method in the ReactNativeUploader or pass an isReactNative boolean (default false so no where else needs to change)

bengourley

comment created time in 10 hours

pull request commentbugsnag/bugsnag-js

Add tvOS to the @bugsnag/react-native podspec

Thanks for the reply @mattdyoung.

marnusw

comment created time in 10 hours

push eventbugsnag/bugsnag-android

fractalwrench

commit sha 74fa548e8fca817fb704a504399c06ddc2c9a817

fix: allow null device ID in data collector

view details

push time in 11 hours

PR opened bugsnag/bugsnag-android

Allow null device ID in data collector

Goal

<!-- Why is this change necessary? -->

Design

<!-- Why was this approach used? -->

Changeset

<!-- What changed? -->

Testing

<!-- How was it tested? What manual and automated tests were run/added? -->

+4 -4

0 comment

2 changed files

pr created time in 11 hours

create barnchbugsnag/bugsnag-android

branch : PLAT-5793/device-id-nullability

created branch time in 11 hours

pull request commentbugsnag/bugsnag-js

[PLAT-5412] Cocoa mixed-type stacktraces

<!-- 0 failure: 0 warning:

1 markdown notices DangerID: danger-id-Danger; -->

@bugsnag/browser bundle size diff

Minified Minfied + Gzipped
Before 40.70 kB 12.54 kB
After 40.70 kB 12.54 kB
± No change No change

<p align="right"> Generated by :no_entry_sign: <a href="https://danger.systems/js">dangerJS</a> against 91bc1c993c9aad1140dba76b7cbe3ddb1eb3c144 </p>

nickdowell

comment created time in 11 hours

push eventbugsnag/bugsnag-android

fractalwrench

commit sha d0b3b507068758e37c23704a7a6cda639b7e48dc

Alter HTTP requests to stop using chunked transfer encoding

view details

Steve Kirkland

commit sha a96ba7d6626aa81d050fafe10916ccc54b75dd1c

Remove all soft fails

view details

Steve Kirkland

commit sha 40e62508049d1448673cb16b6c40cfd35ac4a5d1

Remove Android 8.0 - 8.1 is sufficient if passing

view details

Steve Kirkland

commit sha 8bf35e5886eb6df0a2fb67f1555eff1dc54cbb7f

Reinstate skipped Android 8.1 temporarily

view details

Steve Kirkland

commit sha ddf871226e43eea9720b8eb73bf18ddaa907a6df

Allow for full scheduled builds

view details

Steve Kirkland

commit sha 6fc711439b7ccdb3a5740c4f0b7f5e859c1e1657

Flush out genuine flakes [full ci]

view details

Steve Kirkland

commit sha 2ce135c10f3d1485ecc77073fdf229e5793451e3

Use resilient driver

view details

Steve Kirkland

commit sha acc383210d4df3b1444b44f6aef10714eb004660

Reinstate @Flaky tags for appropriate scenarios

view details

Steve Kirkland

commit sha 40952270ddf2a627862f2e5f19d68c91503125eb

Remove Flaky marker where no longer believe to be the case [full ci]

view details

Steve Kirkland

commit sha f4d650183fe554df85513a8c81489d26724ba3ad

Redundant feature removed

view details

Steve Kirkland

commit sha 966d8ce3ed62bc5ca20213da6a66a32deebdab9d

Removed comment

view details

Steve Kirkland

commit sha 5caac07aa89bb5a6909c11c4f71395b3d8db3245

Run Flaky tests separately

view details

Steve Kirkland

commit sha ed4bc9a225b43e41511a19b36c328ecbd63f9a00

Expect breadcrumb that really should always be there.

view details

Jamie Lynch

commit sha cb993d070d68573b4527742d1b18f89eab4b55e5

Merge branch 'next' into PLAT-5698/chunked-transfer-encoding

view details

Jamie Lynch

commit sha b57f3f4316c24b7f31c2cd2df34c08b8bd4ab82a

Merge pull request #1081 from bugsnag/tms/review-flake-tags Review scenarios considered to be flaky

view details

Steve Kirkland

commit sha 3dfd556e738eeb97a25de4497088299fd4813869

Use in-development Maze Runner

view details

Steve Kirkland

commit sha 0a089dbbf419de56722ca59f60378ff9e10fd6b2

Migrate to Maze.driver

view details

Steve Kirkland

commit sha 928ca876532d9a6d729c869bce02d1f1512cd9b2

Migrate to Maze.config

view details

Steve Kirkland

commit sha 9f2c3ad1b2d7033b59655f019fe0f3751c4b7399

Send to separate endpoints

view details

Steve Kirkland

commit sha b70df7b1773eff949981c4cade64346fe9c006eb

Use Maze namespace

view details

push time in 12 hours

delete branch bugsnag/bugsnag-android

delete branch : PLAT-5698/chunked-transfer-encoding

delete time in 12 hours

PR merged bugsnag/bugsnag-android

Reviewers
Alter HTTP requests to stop using chunked transfer encoding

Goal

Alters HTTP requests so that they no longer use chunked transfer encoding, and instead build the request body up front. This fixes two problems:

  • Proxies such as Privoxy do not support chunked transfer encoding so HTTP requests made by the notifier may always fail on certain versions of Android
  • Creating a buffer that contains the entire request body allows for a SHA-1 digest to be calculated after the payload has been serialized. This avoids the possibility of SHA-1 mismatches caused by payload mutation that could result in some payloads being dropped

Changeset

  • Moved Content-Type header to be included in error/session API DeliveryParams object for consistency with other headers
  • Serialized error/session payload to JSON in a ByteArray, and generated the SHA-1 digest from this ByteArray which circumvents any possible change in the payload
  • Wrote the JSON in the ByteArray to the HTTP request directly, rather than streaming it with chunked transfer encoding
  • Called setFixedLengthStreamingMode to avoid creating an unnecessary buffer within HttpUrlConnection. Testing with unusual unicode characters revealed that this needed to be a ByteArray rather than a String to get the correct body length
  • Read and closed the connection's inputstream to fix an Android platform bug that logs a warning message about connections being leaked, and to log additional information about the request
  • Caught OutOfMemoryError and attempted to persist the payload to disk, as this operation takes a smaller amount of memory and is likely to succeed if memory is constrained for large payloads

Testing

Relied on existing unit and E2E test coverage.

Performance

For the default payload sent by the example app (around 17Kb), there is no discernible difference in performance for this changeset. Both v5.5.0 and the current changeset use around 0.2Mb to deliver one payload.

Datadog has confirmed that the average payload size received by the pipeline is 16-24Kb, so for the majority of use cases this change will have no performance impact.

Additional load testing

To perform stress testing, v5.5.0 and the current changeset were load tested using the following snippet which generates a 900Kb payload containing a very large amount of metadata:

repeat(1000) { a ->
    repeat(10) { z ->
        Bugsnag.addMetadata(
            "custom",
            "a long long long long long long key: $a $z",
            "a long long long long long long value: $a $z"
        )
    }
}

The additional JVM memory required to deliver one payload was as follows:

Before changeset: 1.3Mb memory usage With changeset: 2.9Mb memory usage

Further stress testing generated 20 of these payloads simultaneously on 5 different threads (an unrealistic scenario):

Before changeset: 12.5Mb memory usage With changeset: 18.2Mb memory usage

The majority of allocations for both changesets were for java/lang/String and java/util/concurrent/ConcurrentHashMap$Node, so it seems that JSON serialization is the dominating factor for memory usage rather than buffering the payload. It’s worth noting that manually triggering GC freed up short-lived references created during JSON serialization, so the JVM would trigger GC calls if the app was running low on memory when attempting to allocate a buffer.

It's also worth noting that the example app's payload size is around 17Kb, which is effectively the same size as the default buffer (16kb) in the previous implementation that uses streams. This suggests that for regular use without large amounts of metadata there should be no performance impact.

+796 -883

5 comments

64 changed files

fractalwrench

pr closed time in 12 hours

push eventbugsnag/bugsnag-android

fractalwrench

commit sha 29a67fc5030f1858a5453a19c6213f49bb283ad4

ci: fix yaml

view details

push time in 13 hours

pull request commentbugsnag/bugsnag-js

Add tvOS to the @bugsnag/react-native podspec

Hi @marnusw

Thanks for the PR! tvOS support is something we're already planning to add when priorities allow but we suspect some more substantial changes may be required as React Native tvOS is a fork of React Native so some aspects may be incompatible with our SDK.

This PR is certainly part of the solution, but we'd need to extend testing to cover all functionality on tvOS to gain confidence in there not being unforeseen issues, so we plan to hold off merging until we can schedule that testing and officially add support.

Until that happens, you may want to create a fork including your PR which may be sufficient for your app's usage of Bugsnag.

marnusw

comment created time in 14 hours

push eventbugsnag/bugsnag-android

Steve Kirkland

commit sha 62c34d91d31ef9c3397bac9753d5630ea1729dbf

Various updates for flaking scenarios [quick ci]

view details

Jamie Lynch

commit sha d50d83a0aaff0cb90dd2ef510a096c2d08d1433c

Merge pull request #1082 from bugsnag/tms/further-flake-updates Various updates for flaking scenarios

view details

push time in 14 hours

delete branch bugsnag/bugsnag-android

delete branch : tms/further-flake-updates

delete time in 14 hours

PR merged bugsnag/bugsnag-android

Various updates for flaking scenarios

Goal

Makes a few tweaks in relation to flaking scenarios:

  1. Temporary soft fail on Android 4.4 and 5 whilst we wait for support from BrowserStack
  2. Increase timeout for receiving requests to 60s (the theoretical maximum)
  3. Remove @Flaky tag from scenarios that should now be fixed by MazeRunner v4

Testing

Will be fully covered by CI when we come to merge to next.

+7 -2

0 comment

3 changed files

twometresteve

pr closed time in 14 hours

issue commentbugsnag/bugsnag-android

Broken nullability contract, unable to init BugSnag

Hi @jbruchanov

Thanks for the report, we'll take a look at fixing this. If you did have any other information about the conditions under which the IOException was thrown that would also be useful.

jbruchanov

comment created time in 14 hours

push eventbugsnag/bugsnag-android

fractalwrench

commit sha 4b28a20d5af35312450bbbc64c2723da93a24ceb

test: reinstate flaky test flag for failing test

view details

push time in 14 hours

issue closedbugsnag/bugsnag-js

AnrPlugin.kt:-2 - com.bugsnag.android.AnrPlugin.enableAnrReporting

<!-- Before raising, please check if somebody else has already reported your issue. -->

Describe the bug

enableAnrReporting(true) triggers the following Error in Production at the following line.

java.lang.UnsatisfiedLinkError: No implementation found for void com.bugsnag.android.AnrPlugin.enableAnrReporting(boolean) (tried Java_com_bugsnag_android_AnrPlugin_enableAnrReporting and Java_com_bugsnag_android_AnrPlugin_enableAnrReporting__Z)

Environment

The error was experienced on the following environment, we are upgrading the denpency and we will update this issue:

  • Bugsnag version: @bugsnag/react-native@7.5.3
  • Browser framework version (if any):
    • React: react-native@0.62.2 react@16.11.0:
  • Device (e.g. iphonex): Pixel 3a API 28

<!-- Below are a few approaches you might take to communicate the issue, in descending order of awesomeness. Please choose one and feel free to delete the others from this template. -->

Example Repo <!-- Option 1 -->

  • [ ] Create a minimal repository that can reproduce the issue
  • [ ] Link to it here:

<!-- Error messages, if any --> <details><summary>Error messages:</summary>

<img src="https://user-images.githubusercontent.com/24992535/104483858-dfb60400-55c8-11eb-9d26-8ab8b7fe736d.png" />

</details>

closed time in 14 hours

fabriziobertoglio1987

issue closedbugsnag/bugsnag-js

Error while launching the app although I have started the Bugsnag in appDelegate.m

Screenshot 2020-12-03 at 5 16 54 PM

I am invoking the Bugsnag in Js file like below:

setTimeout(()=> { Bugsnag.start(); }, 1000);

This is done because the app never launches when timeout is not provided

closed time in 14 hours

radhakrishnant2s

issue commentbugsnag/bugsnag-js

Error while launching the app although I have started the Bugsnag in appDelegate.m

Closing as we haven't had a response and would require further information to investigate.

radhakrishnant2s

comment created time in 14 hours

issue commentbugsnag/bugsnag-android

Merged Manifest includes formatting and comments

We haven't been able to reproduce this so leaving as closed for now, but do let us know if you're able to share more of the info we asked for above and we can re-open and investigate further.

AdamMTGreenberg

comment created time in 15 hours

issue commentbugsnag/bugsnag-java

Support for Proxy Configuration

Hi @sparmar-atheer

You mention a v5.x version. Is it bugsnag-android rather than bugsnag-java you require this on?

Our bugsnag-android notifier doesn't currently support using the device's proxy settings for sending events and sessions to Bugsnag, but that is something we're now tracking on our product roadmap and hope to add support for in due course.

sparmar-atheer

comment created time in 15 hours

PR opened bugsnag/bugsnag-android

Various updates for flaking scenarios

Goal

Makes a few tweaks in relation to flaking scenarios:

  1. Temporary soft fail on Android 4.4 and 5 whilst we wait for support from BrowserStack
  2. Increase timeout for receiving requests to 60s (the theoretical maximum)
  3. Remove @Flaky tag from scenarios that should now be fixed by MazeRunner v4

Testing

Will be fully covered by CI when we come to merge to next.

+7 -2

0 comment

3 changed files

pr created time in 15 hours

create barnchbugsnag/bugsnag-android

branch : tms/further-flake-updates

created branch time in 15 hours

issue closedbugsnag/bugsnag-js

Fastlane sourcemaps Integration

Description

Currently, there is a fastlane plugin to upload the native stuff for sourcemaps but nothing for JS. The docs are helpful but it would be really helpful to have this automated (since a React Native project setup is a fixed directory structure).

Describe the solution you'd like A plugin that would handle all of this since it can be automated and can then be part of the Fastlane process (thus, easily come after the increment_build_number command).

Describe alternatives you've considered We're having to write our own custom commands for Fastlane via a shell command.

Additional context Add any other context about the feature request here.

closed time in 17 hours

dwilt

issue commentbugsnag/bugsnag-js

Fastlane sourcemaps Integration

Hi all,

We have now released our new source mapping tool and cli which aims to automate and simplify the whole process for react native. You can find details of how to use the cli to upload source maps in our documentation here: https://docs.bugsnag.com/platforms/react-native/react-native/showing-full-stacktraces/#automatic-setup. This was released in v7.6.0 of the @bugsnag/react-native library so you would need to upgrade to this in order to use it.

It's worth noting that if you have already configured Bugsnag within your app you should use bugsnag-react-native-cli automate-symbolication as per the documentation. init should only be used for new project integrations with Bugsnag.

The source map upload tool itself can also be used to upload source maps manually, the documentation here https://docs.bugsnag.com/build-integrations/js/source-maps-react-native/ has been updated to use the new tool.

dwilt

comment created time in 17 hours

more