microsoft / appcenter

Central repository for App Center open source resources and planning.
https://appcenter.ms
Creative Commons Attribution 4.0 International
1.01k stars 223 forks source link

Crash Symbolication #338

Open SGI-Swong opened 5 years ago

SGI-Swong commented 5 years ago

What App Center service does this affect? Crash dump symbolication

Describe the bug I am trying to setup android crash dumps and symbolication, but am running into some issues with my test app. I am getting different behavior with test and production builds for Android crashes as outline in the table attached.

appcentertable

Crash dumps that have been selected to ignore symbolication appear in the Crash Tab, but after symbol upload they remain unsymbolicated. There appears to be no way to reverse the process of ignoring symbolication for a version, to retrieve information about the symbols needed for the crash.

I am able to download the minidump for the Production build and run the minidump_stackwalker tool with the symbols and generated a symbolicated call stack manually, but it doesn’t appear anywhere within App Center. The Test builds are partially Optimize with debugging logs turned out, while the Production build is fully optimized and debugging stripped, but the way they handle the crash generation and upload are the same.

I have attached a verbose AppCenter log for both crash dumps and they both appear to upload the logs and minidump successfully. It appears it may be an issue with the symbolication of the Production build internally in App Center.

appcentertestbuild.txt appcenterproductionbuild.txt

Any help with this would be appreciated.

To Reproduce Steps to reproduce the behavior: Case 1: Symbols Uploaded After Crash for Test Build

  1. Generate a crash and upload to app center with a test build
  2. Click on Unsymbolicated Tab and notice the crash dump
  3. Upload symbols for the crash
  4. Crash remains Unsymbolicated

Expected behavior I would expect the crash dump to be symbolicated and appear in the Crash Tab.

Steps to reproduce the behavior: Case 2: Symbols Uploaded Before Crash for Production Build

  1. Upload symbols for the Production Build
  2. Generate a crash and upload to app center with a Production build
  3. Notice that the crash dump never shows up in the Crash Tab

Expected behavior I would expect the crash dump to be symbolicated and appear in the Crash Tab.

Steps to reproduce the behavior: Case 3: Symbols Uploaded After Crash for Production Build

  1. Generate a crash and upload to app center with a Production build
  2. Upload symbols for the Production Build
  3. Notice that the crash dump never shows up in the Crash Tab

Expected behavior I would expect the crash dump to be symbolicated and appear in the Crash Tab.

Screenshots If applicable, add screenshots to help explain your problem.

Smartphone (please complete the following information):

winnie commented 5 years ago

Hi @SGI-Swong - thanks for the detailed report! When you say "4. Crash remains Unsymbolicated" do you mean you still see the missing symbols under the unsymbolicated tab? Or do you see the crash back in the crashes tab with unsymbolicated stack traces?

SGI-Swong commented 5 years ago

Hi @winnieli1208, after uploading the symbols for a Test build crash dump, the crash dump still remains in the unsymbolicated tab with missing symbols.

winnie commented 5 years ago

@SGI-Swong can you check if the uploaded symbol ID matches the ones required by App Center? You can open the .sym file in a text editor and the first line will contain the ID of the symbol.

Another thing to note - if App Center is asking for multiple symbols for a version and you don't upload all of them, App Center will still be able to symbolicate the relevant crashes from the uploaded symbols. However, the UI won't reflect that in the unsymbolicated tab. Meaning if App Center says "missing 4 symbols" for a version and you only upload one, we will still use your uploaded symbols to symbolicate your crashes even though the UI will still say "missing 4 symbols."

If that still doesn't help, I would recommend starting a conversation in the blue chat bubble on the bottom right corner and include this Github link. That will put you in direct contact with our support and engineering teams. Thanks!

SGI-Swong commented 5 years ago

@winnieli1208 I have confirmed that the symbol ID matches the ones required by App Center. I am also aware that App Center will partially symbolicate crashes by choosing to Ingore Version for symbolication.

I will get in contact with the support/engineering team using the chat option.

Thank you!