Skip to content
This repository has been archived by the owner on Jan 26, 2021. It is now read-only.

Sentry tests from 04/03/2017 #15

Merged
5 commits merged into from
Apr 7, 2017
Merged

Sentry tests from 04/03/2017 #15

5 commits merged into from
Apr 7, 2017

Conversation

HazAT
Copy link
Contributor

@HazAT HazAT commented Mar 17, 2017

Provider name: Sentry
Repository URL: https://github.com/getsentry/CrashProbe
URL to the data: https://sentry.io/sentry-jj/crashprobe/
Username and password for the account: daniel+crashprobe@sentry.io:9p7U{sB64h7n2{]igCq&*/gw

Date of testing: 04/03/2017
SDK-Version: 2.1.7 (Swift 3)
Logo: https://sentry.io/branding/
Xcode Version 8.2.1 (8C1002)

Test environment per architecture:
arm7: iPad mini (P107AP), iOS 9.3.5
arm64: iPod Touch 6G (N102AP), iOS 10.2.1

@msftclas
Copy link

@HazAT,
Thanks for your contribution.
To ensure that the project team has proper rights to use your work, please complete the Contribution License Agreement at https://cla.microsoft.com.

It will cover your contributions to all Microsoft-managed open source projects.
Thanks,
Microsoft Pull Request Bot

@msftclas
Copy link

@HazAT, thanks for signing the contribution license agreement. We will now validate the agreement and then the pull request.

Thanks, Microsoft Pull Request Bot

@HazAT
Copy link
Contributor Author

HazAT commented Mar 20, 2017

If someone already checking this ...
We're gonna do a new set of tests by tomorrow.
We changed something on the server so the Smash Stacktrace tests also work on armv7 ...
BUT
The PR submitted still works, just gonna do a new batch of tests.

@ghost
Copy link

ghost commented Mar 20, 2017

Hi, thanks for providing the data and congrats on the good results. We'll wait for your additional tests then and will check the details once you got back.

Best,
Andreas

@HazAT
Copy link
Contributor Author

HazAT commented Mar 20, 2017

Perfect!
Thanks for the quick reply.

@HazAT
Copy link
Contributor Author

HazAT commented Mar 21, 2017

http://www.crashprobe.com/ios/01/
armv7: https://sentry.io/sentry-jj/crashprobe/issues/238272644/events/5108663172/
arm64: https://sentry.io/sentry-jj/crashprobe/issues/238272644/events/5108653582/

http://www.crashprobe.com/ios/02/
NO REPORT

http://www.crashprobe.com/ios/03/
armv7: https://sentry.io/sentry-jj/crashprobe/issues/235774191/events/5108687671/
arm64: https://sentry.io/sentry-jj/crashprobe/issues/235774191/events/5108686990/

http://www.crashprobe.com/ios/04/
armv7: https://sentry.io/sentry-jj/crashprobe/issues/235776166/events/5108709628/
arm64: https://sentry.io/sentry-jj/crashprobe/issues/235776166/events/5108708571/

http://www.crashprobe.com/ios/05/
armv7: https://sentry.io/sentry-jj/crashprobe/issues/235777213/events/5108742893/
arm64: https://sentry.io/sentry-jj/crashprobe/issues/235777213/events/5108742335/

http://www.crashprobe.com/ios/06/
armv7: https://sentry.io/sentry-jj/crashprobe/issues/235778619/events/5108760647/
arm64: https://sentry.io/sentry-jj/crashprobe/issues/235778619/events/5108760074/

http://www.crashprobe.com/ios/07/
armv7: https://sentry.io/sentry-jj/crashprobe/issues/235780599/events/5108775414/
arm64: https://sentry.io/sentry-jj/crashprobe/issues/235780599/events/5108775420/

http://www.crashprobe.com/ios/08/
armv7: https://sentry.io/sentry-jj/crashprobe/issues/236416448/events/5108787741/
arm64: https://sentry.io/sentry-jj/crashprobe/issues/236416448/events/5108787602/

http://www.crashprobe.com/ios/09/
armv7: https://sentry.io/sentry-jj/crashprobe/issues/236417839/events/5108803251/
arm64: https://sentry.io/sentry-jj/crashprobe/issues/236417839/events/5108802390/

http://www.crashprobe.com/ios/10/
armv7: https://sentry.io/sentry-jj/crashprobe/issues/236419099/events/5108814096/
arm64: https://sentry.io/sentry-jj/crashprobe/issues/236419099/events/5108813912/

http://www.crashprobe.com/ios/11/
armv7: https://sentry.io/sentry-jj/crashprobe/issues/236318502/events/5108827081/
arm64: https://sentry.io/sentry-jj/crashprobe/issues/236318415/events/5108826576/

http://www.crashprobe.com/ios/12/
armv7: https://sentry.io/sentry-jj/crashprobe/issues/236420034/events/5108843667/
arm64: https://sentry.io/sentry-jj/crashprobe/issues/236420034/events/5108838802/

http://www.crashprobe.com/ios/13/
armv7: https://sentry.io/sentry-jj/crashprobe/issues/236422070/events/5108858442/
arm64: https://sentry.io/sentry-jj/crashprobe/issues/236422070/events/5108858455/

http://www.crashprobe.com/ios/14/
armv7: https://sentry.io/sentry-jj/crashprobe/issues/236424311/events/5108869577/
arm64: https://sentry.io/sentry-jj/crashprobe/issues/236424311/events/5108869568/

http://www.crashprobe.com/ios/15/
armv7: https://sentry.io/sentry-jj/crashprobe/issues/236428254/events/5108882497/
arm64: https://sentry.io/sentry-jj/crashprobe/issues/236428254/events/5108882795/

http://www.crashprobe.com/ios/16/
armv7: https://sentry.io/sentry-jj/crashprobe/issues/236322727/events/5108894308/
arm64: https://sentry.io/sentry-jj/crashprobe/issues/236322727/events/5108898814/

http://www.crashprobe.com/ios/17/
armv7: https://sentry.io/sentry-jj/crashprobe/issues/236324002/events/5108942440/
arm64: https://sentry.io/sentry-jj/crashprobe/issues/236324002/events/5108937989/

http://www.crashprobe.com/ios/18/
armv7: https://sentry.io/sentry-jj/crashprobe/issues/236324636/events/5108962591/
arm64: https://sentry.io/sentry-jj/crashprobe/issues/236324636/events/5108962712/

http://www.crashprobe.com/ios/19/
armv7: https://sentry.io/sentry-jj/crashprobe/issues/236430741/events/5108969603/
arm64: https://sentry.io/sentry-jj/crashprobe/issues/236430741/events/5108970097/

http://www.crashprobe.com/ios/20/
armv7: https://sentry.io/sentry-jj/crashprobe/issues/238133948/events/5108979759/
arm64: https://sentry.io/sentry-jj/crashprobe/issues/236483647/events/5108979802/

http://www.crashprobe.com/ios/21/
armv7: https://sentry.io/sentry-jj/crashprobe/issues/238134262/events/5108987990/
arm64: https://sentry.io/sentry-jj/crashprobe/issues/236483647/events/5108988074/

http://www.crashprobe.com/ios/22/
armv7: https://sentry.io/sentry-jj/crashprobe/issues/236420034/events/5108996024/
arm64: https://sentry.io/sentry-jj/crashprobe/issues/236420034/events/5108996027/

@HazAT HazAT changed the title Sentry tests from 03/16/2017 Sentry tests from 03/21/2017 Mar 21, 2017
@HazAT
Copy link
Contributor Author

HazAT commented Mar 21, 2017

I've updated all the reports and provided direct links to the crashes because there were already so many crashes in that account that it was kind of hard to find the ones in the JSON files.
Click on the Raw button to see the result.
If you need anything else, let me know this is PR is ready now.

@ghost
Copy link

ghost commented Mar 22, 2017

Would you mind letting us know which Xcode version you were using? We want to add this information in the future as it makes quite a difference too

@HazAT
Copy link
Contributor Author

HazAT commented Mar 22, 2017

Of course it was ...
Xcode Version 8.2.1 (8C1002)

@HazAT
Copy link
Contributor Author

HazAT commented Mar 28, 2017

Hey, just wanted to ask if there is anything where we could help to get this merged?

@ghost
Copy link

ghost commented Mar 28, 2017

@HazAT no, I just need some time over here to go over it. Planning to do this later this week. Sorry for the delay :(

Thread 0 name:
Thread 0 Crashed:
0 CrashLibiOS 0x1000cfd24 -[CRLCrashGarbage crash] (CRLCrashGarbage.m:52)
1 CrashLibiOS 0x1000cfd20 -[CRLCrashGarbage crash] (CRLCrashGarbage.m:41)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reporting the same method twice with different lines and the method doesn't call itself recursively results in this being not complete. So this frame should be marked as invalid frame and the result for 64bit here is incomplete.

Thread 0 name:
Thread 0 Crashed:
0 CrashLibiOS 0x10004c2dc -[CRLCrashOverwriteLinkRegister crash] (CRLCrashOverwriteLinkRegister.m:53)
1 CrashLibiOS 0x10004c2c0 -[CRLCrashOverwriteLinkRegister crash] (CRLCrashOverwriteLinkRegister.m:42)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reporting the same method twice with different lines and the method doesn't call itself recursively results in this being not complete. So this frame should be marked as invalid frame and the result for 64bit here is incomplete.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You are absolutely correct. Going to get this checked out.

Thread 0 name:
Thread 0 Crashed:
0 CrashLibiOS 0x219e52 -[CRLCrashOverwriteLinkRegister crash] (CRLCrashOverwriteLinkRegister.m:53)
1 CrashLibiOS 0x219e4f -[CRLCrashOverwriteLinkRegister crash] (CRLCrashOverwriteLinkRegister.m:49)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reporting the same method twice with different lines and the method doesn't call itself recursively results in this being not complete. So this frame should be marked as invalid frame and the result for 32bit here is incomplete.

Thread 0 name:
Thread 0 Crashed:
0 CrashLibiOS 0x1000bc500 @objc CRLCrashSwift.crash() -> ()
1 CrashLibiOS 0x1000bc500 CRLCrashSwift.crash() -> () (CRLCrashSwift.swift:36)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reporting the same method twice with different lines and the method doesn't call itself recursively results in this being not complete. So this frame should be marked as invalid frame and the result for 64bit here is incomplete.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is actually contained like this in the DWARF file as an expanded inline frame.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There can't be two frames with the same memory address and different results. This should be shown as one frame with the combined result. Otherwise this should be read by the user as frame 0 is called by frame 1. Which is impossible with the given data.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will see if I can find a better visualization for these things. We currently show the same address for expanded inline frames because we cannot recover the actual address where the call to the inlined frame happened.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just looked into this a bit more in detail to see what xcode does. First of all there is definitely a bug in our implementation which I will fix. Inline frames were expanded the wrong way around.

However I did compare to xcode how it displays inline frames and generally it's not very different to what we do. The main difference is that it mentions the inline expansion in the output:

  * frame #0: 0x000000010012052c CrashLibiOS`@objc CRLCrashSwift.crash() -> () [inlined] CrashLibiOS.CRLCrashSwift.crash () -> () at CRLCrashSwift.swift:36 [opt]
    frame #1: 0x000000010012052c CrashLibiOS`@objc CRLCrashSwift.crash() -> () at CRLCrashSwift.swift:0 [opt]

We can add an [inline] into to the stacktrace output. Would that be acceptable?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I changed the rendering to be this now:

0   CrashLibiOS                     0x10004052c         [inlined] CRLCrashSwift.crash() -> () (CRLCrashSwift.swift:36)
1   CrashLibiOS                     0x10004052c         @objc CRLCrashSwift.crash() -> ()

Let me know if that works for you.

Copy link

@ghost ghost Apr 3, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not sure what you are doing, but there should be only one single frame. This is what the iOS generated crash report looks like, not sure how you are referring to Xcode otherwise. Maybe your crash reporting library is reporting too many frames?

0   CrashLibiOS    0x00000001000f052c @objc CRLCrashSwift.crash() -> () (CRLCrashSwift.swift:0)
1   CrashProbeiOS  0x000000010003b840 -[CRLDetailViewController doCrash] (CRLDetailViewController.m:58)

So showing two frames is wrong for the same reasons I mentioned before.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Our goal was to get as close as possible to the backtrace you get when you see the crash in xcode/lldb. The way to do that is to also handle inline frames from the DWARF data.

This is indeed intentional. The crash reporting library is only producing one frame which with the data contained in the dsym DWARF data can expand to multiple. In this case the apple conpiler stores an inline function call in the debug data and we support that. This is consistent with backtraces generated by xcode/lldb. We do want to keep this feature enabled because it gives signficiantly better stacktraces at higher optimization levels in case the compiler inlines small functions.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From a users and user source code respective and marking it as correct I expect the resulting crash report to have one single line. Showing what you have here should result in the report categorized as incomplete and the second line as being wrong.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Then we will mark the report accordingly.

Thread 0 name:
Thread 0 Crashed:
0 CrashLibiOS 0x189fe8 @objc CRLCrashSwift.crash() -> ()
1 CrashLibiOS 0x189fe8 CRLCrashSwift.crash() -> () (CRLCrashSwift.swift:36)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reporting the same method twice with different lines and the method doesn't call itself recursively results in this being not complete. So this frame should be marked as invalid frame and the result for 32bit here is incomplete.

@HazAT
Copy link
Contributor Author

HazAT commented Apr 3, 2017

ARM7 crashes follow tomorrow, I've updated the first comment to reflect version changes.

http://www.crashprobe.com/ios/01/
armv7: https://sentry.io/sentry-jj/crashprobe/issues/238272644/events/5195786564/
arm64: https://sentry.io/sentry-jj/crashprobe/issues/238272644/events/5190649833/

http://www.crashprobe.com/ios/02/
NO REPORT

http://www.crashprobe.com/ios/03/
armv7: https://sentry.io/sentry-jj/crashprobe/issues/235774191/events/5195787072/
arm64: https://sentry.io/sentry-jj/crashprobe/issues/235774191/events/5190661916/

http://www.crashprobe.com/ios/04/
armv7: https://sentry.io/sentry-jj/crashprobe/issues/235776166/events/5195787505/
arm64: https://sentry.io/sentry-jj/crashprobe/issues/235776166/events/5190667220/

http://www.crashprobe.com/ios/05/
armv7: https://sentry.io/sentry-jj/crashprobe/issues/235777213/events/5195788285/
arm64: https://sentry.io/sentry-jj/crashprobe/issues/235777213/events/5190674279/

http://www.crashprobe.com/ios/06/
armv7: https://sentry.io/sentry-jj/crashprobe/issues/235778619/events/5195789974/
arm64: https://sentry.io/sentry-jj/crashprobe/issues/235778619/events/5190676173/

http://www.crashprobe.com/ios/07/
armv7: https://sentry.io/sentry-jj/crashprobe/issues/235780599/events/5195790661/
arm64: https://sentry.io/sentry-jj/crashprobe/issues/235780599/events/5190676689/

http://www.crashprobe.com/ios/08/
armv7: https://sentry.io/sentry-jj/crashprobe/issues/236416448/events/5195791516/
arm64: https://sentry.io/sentry-jj/crashprobe/issues/236416448/events/5190677178/

http://www.crashprobe.com/ios/09/
armv7: https://sentry.io/sentry-jj/crashprobe/issues/236417839/events/5195793122/
arm64: https://sentry.io/sentry-jj/crashprobe/issues/236417839/events/5190677476/

http://www.crashprobe.com/ios/10/
armv7: https://sentry.io/sentry-jj/crashprobe/issues/236419099/events/5195793020/
arm64: https://sentry.io/sentry-jj/crashprobe/issues/236419099/events/5190677776/

http://www.crashprobe.com/ios/11/
armv7: https://sentry.io/sentry-jj/crashprobe/issues/236318502/events/5195793789/
arm64: https://sentry.io/sentry-jj/crashprobe/issues/236318502/events/5190678111/

http://www.crashprobe.com/ios/12/
armv7: https://sentry.io/sentry-jj/crashprobe/issues/236420034/events/5195795018/
arm64: https://sentry.io/sentry-jj/crashprobe/issues/236420034/events/5190770922/

http://www.crashprobe.com/ios/13/
armv7: https://sentry.io/sentry-jj/crashprobe/issues/236422070/events/5195796443/
arm64: https://sentry.io/sentry-jj/crashprobe/issues/236422070/events/5190700415/

http://www.crashprobe.com/ios/14/
armv7: https://sentry.io/sentry-jj/crashprobe/issues/236424311/events/5195798652/
arm64: https://sentry.io/sentry-jj/crashprobe/issues/236424311/events/5190714067/

http://www.crashprobe.com/ios/15/
armv7: https://sentry.io/sentry-jj/crashprobe/issues/236428254/events/5195798525/
arm64: https://sentry.io/sentry-jj/crashprobe/issues/236428254/events/5190714724/

http://www.crashprobe.com/ios/16/
armv7: https://sentry.io/sentry-jj/crashprobe/issues/246683645/events/5195799577/
arm64: https://sentry.io/sentry-jj/crashprobe/issues/236322727/events/5190963189/

http://www.crashprobe.com/ios/17/
armv7: https://sentry.io/sentry-jj/crashprobe/issues/236324002/events/5195800101/
arm64: https://sentry.io/sentry-jj/crashprobe/issues/236324002/events/5190795638/

http://www.crashprobe.com/ios/18/
armv7: https://sentry.io/sentry-jj/crashprobe/issues/236324636/events/5195800875/
arm64: https://sentry.io/sentry-jj/crashprobe/issues/236324636/events/5190806431/

http://www.crashprobe.com/ios/19/
armv7: https://sentry.io/sentry-jj/crashprobe/issues/246340942/events/5195802016/
arm64: https://sentry.io/sentry-jj/crashprobe/issues/246340942/events/5190980809/

http://www.crashprobe.com/ios/20/
armv7: https://sentry.io/sentry-jj/crashprobe/issues/238133948/events/5195802751/
arm64: https://sentry.io/sentry-jj/crashprobe/issues/236483647/events/5191045605/

http://www.crashprobe.com/ios/21/
armv7: https://sentry.io/sentry-jj/crashprobe/issues/238134262/events/5195804211/
arm64: https://sentry.io/sentry-jj/crashprobe/issues/236483647/events/5191045605/

http://www.crashprobe.com/ios/22/
armv7: https://sentry.io/sentry-jj/crashprobe/issues/246338339/events/5195804128/
arm64: https://sentry.io/sentry-jj/crashprobe/issues/246338339/events/5190808608/

@HazAT HazAT changed the title Sentry tests from 03/21/2017 Sentry tests from 04/03/2017 Apr 3, 2017
@HazAT
Copy link
Contributor Author

HazAT commented Apr 4, 2017

All tests have been updated and I've marked the swift test as incomplete 😢
screen shot 2017-04-04 at 09 53 26

@ghost
Copy link

ghost commented Apr 7, 2017

Thanks a lot guys, looks good and congrats to the great results too! Looks like CrashProbe was of good help for you too :)

@ghost ghost merged commit aeb6515 into bitstadium:master Apr 7, 2017
@ghost
Copy link

ghost commented Apr 11, 2017

The data is now available on the website. Thanks again for providing the data and using the test suite :)

@HazAT
Copy link
Contributor Author

HazAT commented Apr 11, 2017

Thank you 👍

@ghost
Copy link

ghost commented May 19, 2017

The data is updated and the Swift test case now reports as correct.

I forgot to update the comment in the report itself. Do you want to provide updated tests also with the NX test case and include a fix for that?

@HazAT
Copy link
Contributor Author

HazAT commented May 24, 2017

Hey,
Sorry for the late reply we will do all of the tests again as soon as possible.
I think we will do it in the coming weeks, meanwhile, should I send a PR for the wrong marked Swift frames?

@ghost
Copy link

ghost commented May 24, 2017

Sounds good. Regarding the Swift frames, however you want. I don't think it is critical as I made the rating "accurate", so only the hint if someone is looking into the details may confuse. It's up to you :)

This pull request was closed.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants