getsentry/symbolic

Corrupted dwarf debug data when include_sources=true

AndrewSB opened this issue · 8 comments

Environment

What version are you running? Etc.

2.10.0

Steps to Reproduce

invoke through fastlane plugin for an iOS project, with the include_sources option set to true

Expected Result

uploads dSYMs.

Actual Result

it succeeds when include_sources is set to false, but when set to true:

[17:16:44]: Using sentry-cli 2.10.0
[17:16:44]: Starting sentry-cli...
[17:16:44]: DEBUG   2023-01-28 17:16:44.178524 -08:00 sentry-cli version: 2.10.0, platform: "darwin", architecture: "arm64"
[17:16:44]: INFO    2023-01-28 17:16:44.178581 -08:00 sentry-cli was invoked with the following command line: "/Library/Ruby/Gems/2.6.0/gems/fastlane-plugin-sentry-1.15.0/bin/sentry-cli-Darwin-universal" "upload-dif" "." "--include-sources"
[17:16:44]: INFO    2023-01-28 17:16:44.178596 -08:00 Issuing a command for Organization: reclip-2t Project: ios
[17:16:44]: DEBUG   2023-01-28 17:16:44.178805 -08:00 request GET https://sentry.io/api/0/organizations/reclip-2t/chunk-upload/
[17:16:44]: DEBUG   2023-01-28 17:16:44.178812 -08:00 using token authentication
[17:16:44]: DEBUG   2023-01-28 17:16:44.178817 -08:00 retry number 0, max retries: 0
[17:16:44]: DEBUG   2023-01-28 17:16:44.410982 -08:00 > GET /api/0/organizations/reclip-2t/chunk-upload/ HTTP/1.1
[17:16:44]: DEBUG   2023-01-28 17:16:44.410997 -08:00 > Host: sentry.io
[17:16:44]: DEBUG   2023-01-28 17:16:44.410999 -08:00 > Accept: */*
[17:16:44]: DEBUG   2023-01-28 17:16:44.411001 -08:00 > Connection: TE
[17:16:44]: DEBUG   2023-01-28 17:16:44.411002 -08:00 > TE: gzip
[17:16:44]: DEBUG   2023-01-28 17:16:44.411008 -08:00 > User-Agent: sentry-cli/2.10.0
[17:16:44]: DEBUG   2023-01-28 17:16:44.411173 -08:00 > Authorization: Bearer a4700990***
[17:16:44]: DEBUG   2023-01-28 17:16:44.708710 -08:00 < HTTP/1.1 200 OK
[17:16:44]: DEBUG   2023-01-28 17:16:44.708764 -08:00 < Server: nginx
[17:16:44]: DEBUG   2023-01-28 17:16:44.708774 -08:00 < Date: Sun, 29 Jan 2023 01:16:44 GMT
[17:16:44]: DEBUG   2023-01-28 17:16:44.708786 -08:00 < Content-Type: application/json
[17:16:44]: DEBUG   2023-01-28 17:16:44.708795 -08:00 < Content-Length: 323
[17:16:44]: DEBUG   2023-01-28 17:16:44.708805 -08:00 < Connection: keep-alive
[17:16:44]: DEBUG   2023-01-28 17:16:44.708809 -08:00 < allow: GET, POST, HEAD, OPTIONS
[17:16:44]: DEBUG   2023-01-28 17:16:44.708813 -08:00 < access-control-allow-methods: GET, POST, HEAD, OPTIONS
[17:16:44]: DEBUG   2023-01-28 17:16:44.708857 -08:00 < access-control-allow-headers: X-Sentry-Auth, X-Requested-With, Origin, Accept, Content-Type, Authentication, Authorization, Content-Encoding, sentry-trace, baggage, X-CSRFToken
[17:16:44]: DEBUG   2023-01-28 17:16:44.708887 -08:00 < access-control-expose-headers: X-Sentry-Error, Retry-After
[17:16:44]: DEBUG   2023-01-28 17:16:44.708892 -08:00 < access-control-allow-origin: *
[17:16:44]: DEBUG   2023-01-28 17:16:44.708896 -08:00 < x-sentry-rate-limit-remaining: 199
[17:16:44]: DEBUG   2023-01-28 17:16:44.708899 -08:00 < x-sentry-rate-limit-limit: 200
[17:16:44]: DEBUG   2023-01-28 17:16:44.708905 -08:00 < x-sentry-rate-limit-reset: 1674955005
[17:16:44]: DEBUG   2023-01-28 17:16:44.708909 -08:00 < x-sentry-rate-limit-concurrentremaining: 199
[17:16:44]: DEBUG   2023-01-28 17:16:44.708913 -08:00 < x-sentry-rate-limit-concurrentlimit: 200
[17:16:44]: DEBUG   2023-01-28 17:16:44.708916 -08:00 < vary: Accept-Language, Cookie
[17:16:44]: DEBUG   2023-01-28 17:16:44.708922 -08:00 < content-language: en
[17:16:44]: DEBUG   2023-01-28 17:16:44.708925 -08:00 < x-frame-options: deny
[17:16:44]: DEBUG   2023-01-28 17:16:44.708928 -08:00 < x-content-type-options: nosniff
[17:16:44]: DEBUG   2023-01-28 17:16:44.708932 -08:00 < x-xss-protection: 1; mode=block
[17:16:44]: DEBUG   2023-01-28 17:16:44.708935 -08:00 < x-envoy-attempt-count: 1
[17:16:44]: DEBUG   2023-01-28 17:16:44.708938 -08:00 < x-envoy-upstream-service-time: 103
[17:16:44]: DEBUG   2023-01-28 17:16:44.708942 -08:00 < x-served-by: getsentry-web-default-common-production-76fd4968f6-vppjp
[17:16:44]: DEBUG   2023-01-28 17:16:44.708946 -08:00 < x-served-by: lb-9
[17:16:44]: DEBUG   2023-01-28 17:16:44.708952 -08:00 < Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
[17:16:44]: DEBUG   2023-01-28 17:16:44.708993 -08:00 response status: 200
[17:16:44]: DEBUG   2023-01-28 17:16:44.709002 -08:00 body: {"url":"https://sentry.io/api/0/organizations/reclip-2t/chunk-upload/","chunkSize":8388608,"chunksPerRequest":64,"maxFileSize":2147483648,"maxRequestSize":33554432,"concurrency":8,"hashAlgorithm":"sha1","compression":["gzip"],"accept":["debug_files","release_files","pdbs","sources","bcsymbolmaps","il2cpp","portablepdbs"]}
[17:16:53]: > Found 262 debug information files
[17:16:53]: error: malformed debug info file
[17:16:53]: caused by: corrupted dwarf debug data
[17:16:53]: caused by: Hit the end of input before it was expected
[17:16:53]: DEBUG   2023-01-28 17:16:53.720583 -08:00 skipping update nagger because session is not attended

This is interesting. include-sources basically tries to iterate through all the files included in the debug data.
Even if you do not use include-sources, the upload itself might succeed, but we will hit that same error on our backend when trying to use the file.

Can you share the file with us? We would have to take a closer look at it to figure out whats going on here.
Though Hit the end of input before it was expected is an indication that maybe one of the headers has a wrong value. Either because the file is indeed broken, or because our parsing does not handle it correctly.

yeah! which file exactly? is there a command i can run that will list the files you're interested in that i can then zip & email over to one of you?

[17:16:53]: > Found 262 debug information files

Oh well, without some more context in the error message, it might indeed be hard to figure out which of these 262 files it is choking with. For the time being, can you try to focus the command to specific sub-directories that contain less individual files? I would say bisecting this manually is the way to go for now.

Screenshot 2023-02-17 at 3 56 04 PM

how do i constrain the files it's looking at? this is my invocation (minus the auth token). i think it's using a bunch of context variables from fastlane, so i don't think i can just run in the terminal, but i'd love to do that instead if i can

sentry-cli has recently added some debug logging to help you find the file that caused this error.

Hi @AndrewSB, do you need further assistance with this issue?

Closing due to inactivity.