Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v5.21.0 #1630

Merged
merged 38 commits into from
Mar 17, 2022
Merged

v5.21.0 #1630

merged 38 commits into from
Mar 17, 2022

Conversation

lemnik
Copy link
Contributor

@lemnik lemnik commented Mar 17, 2022

Bug fixes

  • Fixed an issue where an uncaught exception on the main thread could in rare cases trigger an ANR.
    #1624

  • Fix inconsistencies in stack trace quality for C/C++ events. Resolves a few
    cases where file and line number information was not resolving to the correct
    locations. This change may result in grouping changes to more correctly
    highlight the root cause of an event.
    #1605
    #1606

kattrali and others added 30 commits February 22, 2022 18:02
* removes "unwind style" logic in favor of a unified interface
* updates C++ standard to c++17 (required for unwindstack's use of
  optional, etc)
* splits unwinding into separate functions for signal/exception-time and
  user-generated events
Bumping is required to compile with c++17 language features

Use latest LTS, per guidance for middleware vendors

> NDK versions are largely compatible with each other, but occasionally
there are changes that break compatibility. If you know that all of your
users are using the same version of the NDK, it's best to use the same
version that they do. Otherwise, use the newest version.

https://developer.android.com/ndk/guides/middleware-vendors

change requires update to root_detection to use 3-param open(2)

[full ci]
reduce the surface of API, which expanded quite a bit with updated
unwindstack.

https://developer.android.com/ndk/guides/middleware-vendors

debug builds export additional symbols used in the tests

This change requires removal of code which re-throws types defined in
binaries other than libbugsnag-ndk, because if the type has been hidden,
then the throw invocation will trigger an immediate termination
(skipping the crash report), or if the type is custom (e.g. a subclass
of std::runtime_error, etc), then no useful message was detected anyway,
as the type information is likely not available.

Useful reading on the topic:

* https://gcc.gnu.org/wiki/Visibility (specifically "Problems with C++
  exceptions")
* https://developer.android.com/ndk/guides/common-problems#rttiexceptions_not_working_across_library_boundaries
* https://developer.android.com/ndk/guides/cpp-support#ic
* https://en.cppreference.com/w/cpp/language/definition (section on ODR)

Technically this lib should not export std:: symbols but this at least
preserves existing behavior until its re-evaluated.

[full ci]
Removes the double free scenario, as the exact crashing condition is
dependent on undefined behavior, and thus can't assert an exact
location.

Refactors several existing tests to have their own files for their
native components with the intent to:

1. Make the native functions easier to find - one big file is getting
   unwieldy
2. Make line number assertions stable, avoiding changes if unrelated
   tests change

Avoids asserting on inconsistent behavior - for example
CXXStackoverflowScenario always crashes in the same function but line
info may not be available on arm32.
This tests fail for spurious reasons so frequently that their results
are not useful, because of either inherent OS instability or the device
farm quality.

[full ci]
This test fails regularly on lower spec'd x86 runs due to variance in
the duration.
Update the example app to use the latest version of bugsnag-android
during the release process
Add expectations for the symbolication results of ndk stacktraces
…ion-test

test: allow larger delta for foreground ms range
build: remove unused ABI from size reports
build: add make target for running all lints
build: auto-bump the version of bugsnag-android in example deps
@bugsnagbot
Copy link
Collaborator

bugsnagbot commented Mar 17, 2022

Android notifier sizes

Format Size impact of Bugsnag (kB) Size impact of Bugsnag when Minified (kB)
APK 1852.62 1605.79
arm64_v8a 647.56 401.8
armeabi_v7a 586.13 340.37
x86 721.27 479.61
x86_64 692.61 446.85

Generated by 🚫 Danger

@lemnik lemnik merged commit bb01b06 into master Mar 17, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants