Comments (6)
Hi @Augustyniak, thanks for the report. Our default grouping algorithm groups events sharing the same error class, file and line number of the top in-project stack frame of the innermost exception.
I think the under-grouping you're seeing may indicate that these errors are actually being grouped based on the error class, file and line number of the first frame, e.g. SIGABRT libc.so:536992
and SIGABRT libc.so:325724
rather than the second frame from libenvoy_jni.so
. This can happen if our backend was not able to distinguish between in-project and out-of-project frames for some reason.
Please could you write in to [email protected] with some links to the different error groupings in your Dashboard so that we can take a look at how the grouping algorithm was applied in these cases?
from bugsnag-android.
@yousif-bugsnag Thank you for a fast response. Per your suggestion I sent an email to [email protected]. 👍
from bugsnag-android.
I wonder whether our issues where not caused by some of the issues that were fixed in https://github.com/bugsnag/bugsnag-android/releases/tag/v5.21.0 since they seem to be related to grouping of native crashes.
We've been talking with your folks from [email protected] but did not make any progress there as of yet. We are going to update the SDK.
Are you aware of any other issues with grouping of crashes in Android Bugsnag SDK that you are currently working on fixing?
from bugsnag-android.
Hi @Augustyniak, hopefully we have answered your question above via the support ticket, but for visibility and future travellers, the fixes shipped in v5.21.0 would not resolve the issue you are seeing here.
The grouping issue you are seeing stems from the fact that the uploaded mapping files are symbol table mapping files - these only contain method names and so Bugsang is not able to map back to the file path and line number.
This in turn means that Bugsnag isn't able to identify which frames are in or out of project (and should therefore be ignored for grouping) based on the stack frame's path and the projectRoot
property, which leads to events being incorrectly grouped on frames from NDK system libraries such as libc.so
.
As discussed on the support thread, uploading the full symbol mapping files should mean that Bugsang is able to map frames back to a file path and line number, which should fix the in-project detection and therefore the invalid grouping on libc.so
frames.
from bugsnag-android.
libc isn't something that comes from the NDK or app, it's part of the android platform, and each android device generally has a different libc version. This should be handled specially by the bugsnag grouping algorithm - grouping by the application code that calls any libc function - including (but not limited to) abort().
from bugsnag-android.
Hi @JeremyGreen-TomTom, we agree, and are planning to look at how we can improve handling of system libraries such as libc.so
in future, so that they are excluded from grouping in cases such as this. I don't have a firm ETA for that at this time but we'll be sure to keep you posted!
from bugsnag-android.
Related Issues (20)
- Bugsnag does not report All types of metadata for native crashes HOT 2
- String metadata is being trimmed to 63 characters (native crashes) HOT 1
- Timeout uploading mappings to bugsnag HOT 3
- ANR com.bugsnag.android.DataCollectionModule.getDeviceDataCollector HOT 2
- Help needed contributing HOT 1
- Gradle sync issues on applying com.bugsnag.android.gradle plugin HOT 2
- Why did you make DefaultDelivery as internal ? HOT 3
- BugSnag.isStarted() implementation isn't thread safe HOT 2
- Add ability to override/mock the Client HOT 7
- ANR in Bugsnag.start (ForegroundDetector.getProcessInfo) HOT 14
- ActivityBreadcrumbCollector surfaces the wrong activity previous state HOT 2
- SystemBroadcastReceiver throws SecurityException on Android 14 HOT 4
- System State Broadcasts Produce ANRs HOT 2
- Determining the full Source File Path for a Crash Report HOT 2
- Sending native map files failed HOT 3
- Support for Suppressed Exceptions HOT 1
- Client.leaveBreadcrumb is slow() HOT 3
- Any way to set a proxy only to the bugsnag instance? HOT 2
- Bugsnag spawns multiple Bugsnag main thread dispatcher in the scene HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bugsnag-android.