getsentry / sentry-cli

A command line utility to work with Sentry.
https://docs.sentry.io/cli/
BSD 3-Clause "New" or "Revised" License
892 stars 222 forks source link

Run from Xcode always triggers an error when building the same thing twice #1745

Closed MartinMoizard closed 8 months ago

MartinMoizard commented 9 months ago

Environment

Steps to Reproduce

In a Run Script Phase on Xcode, I run the following:

sentry-cli debug-files upload --include-sources "$DWARF_DSYM_FOLDER_PATH"

Expected/Actual Result

The 1st build & run it works well. But when I build & run again, it fails.

Xcode displays Debug symbol upload failed. And in the logs I have the following:

> No new debug symbols to associate.

Error: some symbols did not process correctly

I would expect it to work, even though I am building the same thing twice in a row.

Logs

Here are the logs ``` DEBUG 2023-09-14 17:11:42.483030 +02:00 request GET https://sentry.io/api/0/organizations/kartoon-65f9638a1/chunk-upload/ DEBUG 2023-09-14 17:11:42.483080 +02:00 using token authentication DEBUG 2023-09-14 17:11:42.483093 +02:00 retry number 0, max retries: 0 DEBUG 2023-09-14 17:11:42.527947 +02:00 > GET /api/0/organizations/kartoon-65f9638a1/chunk-upload/ HTTP/1.1 DEBUG 2023-09-14 17:11:42.527967 +02:00 > Host: sentry.io DEBUG 2023-09-14 17:11:42.527973 +02:00 > Accept: */* DEBUG 2023-09-14 17:11:42.527978 +02:00 > Connection: TE DEBUG 2023-09-14 17:11:42.527984 +02:00 > TE: gzip DEBUG 2023-09-14 17:11:42.527989 +02:00 > User-Agent: sentry-cli/2.20.7 DEBUG 2023-09-14 17:11:42.528169 +02:00 > Authorization: Bearer sntrys_e*** DEBUG 2023-09-14 17:11:42.677459 +02:00 < HTTP/1.1 200 OK DEBUG 2023-09-14 17:11:42.677493 +02:00 < server: nginx DEBUG 2023-09-14 17:11:42.677501 +02:00 < date: Thu, 14 Sep 2023 15:11:42 GMT DEBUG 2023-09-14 17:11:42.677508 +02:00 < content-type: application/json DEBUG 2023-09-14 17:11:42.677515 +02:00 < Content-Length: 348 DEBUG 2023-09-14 17:11:42.677521 +02:00 < allow: GET, POST, HEAD, OPTIONS DEBUG 2023-09-14 17:11:42.677527 +02:00 < access-control-allow-methods: GET, POST, HEAD, OPTIONS DEBUG 2023-09-14 17:11:42.677538 +02:00 < access-control-allow-headers: X-Sentry-Auth, X-Requested-With, Origin, Accept, Content-Type, Authentication, Authorization, Content-Encoding, sentry-trace, baggage, X-CSRFToken DEBUG 2023-09-14 17:11:42.677544 +02:00 < access-control-expose-headers: X-Sentry-Error, Retry-After DEBUG 2023-09-14 17:11:42.677553 +02:00 < access-control-allow-origin: * DEBUG 2023-09-14 17:11:42.677558 +02:00 < x-sentry-rate-limit-remaining: 39 DEBUG 2023-09-14 17:11:42.677564 +02:00 < x-sentry-rate-limit-limit: 40 DEBUG 2023-09-14 17:11:42.677570 +02:00 < x-sentry-rate-limit-reset: 1694704303 DEBUG 2023-09-14 17:11:42.677575 +02:00 < x-sentry-rate-limit-concurrentremaining: 24 DEBUG 2023-09-14 17:11:42.677581 +02:00 < x-sentry-rate-limit-concurrentlimit: 25 DEBUG 2023-09-14 17:11:42.677587 +02:00 < vary: Accept-Language, Cookie DEBUG 2023-09-14 17:11:42.677593 +02:00 < content-language: en DEBUG 2023-09-14 17:11:42.677599 +02:00 < x-frame-options: deny DEBUG 2023-09-14 17:11:42.677604 +02:00 < x-content-type-options: nosniff DEBUG 2023-09-14 17:11:42.677610 +02:00 < x-xss-protection: 1; mode=block DEBUG 2023-09-14 17:11:42.677617 +02:00 < content-security-policy: script-src 'self' 'unsafe-inline' 'report-sample' 'unsafe-eval' s1.sentry-cdn.com js.sentry-cdn.com browser.sentry-cdn.com statuspage-production.s3.amazonaws.com static.zdassets.com aui-cdn.atlassian.com connect-cdn.atl-paas.net js.stripe.com ssl.google-analytics.com 'strict-dynamic' cdn.pendo.io data.pendo.io pendo-io-static.storage.googleapis.com pendo-static-5634074999128064.storage.googleapis.com; default-src *; font-src * data:; style-src * 'unsafe-inline'; frame-ancestors 'self' *.sentry.io; base-uri 'none'; object-src 'self'; img-src * blob: data:; connect-src *; report-uri https://o1.ingest.sentry.io/api/54785/security/?sentry_key=f724a8a027db45f5b21507e7142ff78e&sentry_release=4272ffd31457e8de0d50eeb7b414fa466974285e DEBUG 2023-09-14 17:11:42.677624 +02:00 < x-envoy-attempt-count: 1 DEBUG 2023-09-14 17:11:42.677629 +02:00 < x-envoy-upstream-service-time: 32 DEBUG 2023-09-14 17:11:42.677635 +02:00 < x-served-by: getsentry-web-default-common-production-576f6957d5-ccr99 DEBUG 2023-09-14 17:11:42.677641 +02:00 < x-served-by: frontend-default-5494b6bc88-vwplk DEBUG 2023-09-14 17:11:42.677647 +02:00 < strict-transport-security: max-age=31536000; includeSubDomains; preload DEBUG 2023-09-14 17:11:42.677652 +02:00 < via: 1.1 google DEBUG 2023-09-14 17:11:42.677657 +02:00 < Alt-Svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 DEBUG 2023-09-14 17:11:42.678020 +02:00 response status: 200 DEBUG 2023-09-14 17:11:42.678039 +02:00 body: {"url":"organizations/kartoon-65f9638a1/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","artifact_bundles","artifact_bundles_v2"]} > Found 3 debug information files > Resolved source code for 1 debug information file > Prepared debug information files for upload DEBUG 2023-09-14 17:11:42.809200 +02:00 request POST https://sentry.io/api/0/projects/kartoon-65f9638a1/kartoon-ios-debug/files/difs/assemble/ DEBUG 2023-09-14 17:11:42.809207 +02:00 using token authentication DEBUG 2023-09-14 17:11:42.809215 +02:00 json body: {"591c9b4e74acbe7addd32867f6d7900b8b9c4d6d":{"name":"Kartoon","debug_id":"92bb3287-82e9-3a44-ad7a-7d0a022561d0","chunks":["591c9b4e74acbe7addd32867f6d7900b8b9c4d6d"]},"94ce85b36a674e47605d413ca41739747ca5ae7a":{"name":"DesignSystemTests","debug_id":"839f1431-7386-39d4-ab1f-034caa936314","chunks":["94ce85b36a674e47605d413ca41739747ca5ae7a"]},"5d2382886f45a93d1b07c5b9b69945c1b5b2af70":{"name":"Kartoon","debug_id":"92bb3287-82e9-3a44-ad7a-7d0a022561d0","chunks":["5d2382886f45a93d1b07c5b9b69945c1b5b2af70"]},"75d2bde2c0fecbc57f4b5affec4db99b799f71a4":{"name":"Kartoon","debug_id":"92bb3287-82e9-3a44-ad7a-7d0a022561d0","chunks":["75d2bde2c0fecbc57f4b5affec4db99b799f71a4"]}} DEBUG 2023-09-14 17:11:42.809220 +02:00 retry number 0, max retries: 5 DEBUG 2023-09-14 17:11:42.809314 +02:00 > POST /api/0/projects/kartoon-65f9638a1/kartoon-ios-debug/files/difs/assemble/ HTTP/1.1 DEBUG 2023-09-14 17:11:42.809321 +02:00 > Host: sentry.io DEBUG 2023-09-14 17:11:42.809325 +02:00 > Accept: */* DEBUG 2023-09-14 17:11:42.809328 +02:00 > Connection: TE DEBUG 2023-09-14 17:11:42.809331 +02:00 > TE: gzip DEBUG 2023-09-14 17:11:42.809335 +02:00 > User-Agent: sentry-cli/2.20.7 DEBUG 2023-09-14 17:11:42.809347 +02:00 > Authorization: Bearer sntrys_e*** DEBUG 2023-09-14 17:11:42.809350 +02:00 > Content-Type: application/json DEBUG 2023-09-14 17:11:42.809354 +02:00 > Content-Length: 675 DEBUG 2023-09-14 17:11:42.971150 +02:00 < HTTP/1.1 200 OK DEBUG 2023-09-14 17:11:42.971190 +02:00 < server: nginx DEBUG 2023-09-14 17:11:42.971199 +02:00 < date: Thu, 14 Sep 2023 15:11:42 GMT DEBUG 2023-09-14 17:11:42.971208 +02:00 < content-type: application/json DEBUG 2023-09-14 17:11:42.971215 +02:00 < Content-Length: 1732 DEBUG 2023-09-14 17:11:42.971221 +02:00 < vary: Accept-Encoding,Accept-Language, Cookie DEBUG 2023-09-14 17:11:42.971228 +02:00 < allow: POST, OPTIONS DEBUG 2023-09-14 17:11:42.971234 +02:00 < access-control-allow-methods: POST, OPTIONS DEBUG 2023-09-14 17:11:42.971242 +02:00 < access-control-allow-headers: X-Sentry-Auth, X-Requested-With, Origin, Accept, Content-Type, Authentication, Authorization, Content-Encoding, sentry-trace, baggage, X-CSRFToken DEBUG 2023-09-14 17:11:42.971261 +02:00 < access-control-expose-headers: X-Sentry-Error, Retry-After DEBUG 2023-09-14 17:11:42.971272 +02:00 < access-control-allow-origin: * DEBUG 2023-09-14 17:11:42.971279 +02:00 < x-sentry-rate-limit-remaining: 39 DEBUG 2023-09-14 17:11:42.971285 +02:00 < x-sentry-rate-limit-limit: 40 DEBUG 2023-09-14 17:11:42.971291 +02:00 < x-sentry-rate-limit-reset: 1694704303 DEBUG 2023-09-14 17:11:42.971297 +02:00 < x-sentry-rate-limit-concurrentremaining: 24 DEBUG 2023-09-14 17:11:42.971303 +02:00 < x-sentry-rate-limit-concurrentlimit: 25 DEBUG 2023-09-14 17:11:42.971309 +02:00 < content-language: en DEBUG 2023-09-14 17:11:42.971315 +02:00 < x-frame-options: deny DEBUG 2023-09-14 17:11:42.971321 +02:00 < x-content-type-options: nosniff DEBUG 2023-09-14 17:11:42.971327 +02:00 < x-xss-protection: 1; mode=block DEBUG 2023-09-14 17:11:42.971336 +02:00 < content-security-policy: connect-src *; default-src *; style-src * 'unsafe-inline'; font-src * data:; object-src 'self'; base-uri 'none'; frame-ancestors 'self' *.sentry.io; script-src 'self' 'unsafe-inline' 'report-sample' 'unsafe-eval' s1.sentry-cdn.com js.sentry-cdn.com browser.sentry-cdn.com statuspage-production.s3.amazonaws.com static.zdassets.com aui-cdn.atlassian.com connect-cdn.atl-paas.net js.stripe.com ssl.google-analytics.com 'strict-dynamic' cdn.pendo.io data.pendo.io pendo-io-static.storage.googleapis.com pendo-static-5634074999128064.storage.googleapis.com; img-src * blob: data:; report-uri https://o1.ingest.sentry.io/api/54785/security/?sentry_key=f724a8a027db45f5b21507e7142ff78e&sentry_release=4272ffd31457e8de0d50eeb7b414fa466974285e DEBUG 2023-09-14 17:11:42.971352 +02:00 < x-envoy-attempt-count: 1 DEBUG 2023-09-14 17:11:42.971358 +02:00 < x-envoy-upstream-service-time: 40 DEBUG 2023-09-14 17:11:42.971364 +02:00 < x-served-by: getsentry-web-default-common-production-576f6957d5-mmv47 DEBUG 2023-09-14 17:11:42.971370 +02:00 < x-served-by: frontend-default-5494b6bc88-965h2 DEBUG 2023-09-14 17:11:42.971376 +02:00 < strict-transport-security: max-age=31536000; includeSubDomains; preload DEBUG 2023-09-14 17:11:42.971382 +02:00 < via: 1.1 google DEBUG 2023-09-14 17:11:42.971388 +02:00 < Alt-Svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 DEBUG 2023-09-14 17:11:42.973555 +02:00 response status: 200 DEBUG 2023-09-14 17:11:42.973571 +02:00 body: {"591c9b4e74acbe7addd32867f6d7900b8b9c4d6d":{"state":"ok","detail":null,"missingChunks":[],"dif":{"id":"448488109","uuid":"92bb3287-82e9-3a44-ad7a-7d0a022561d0","debugId":"92bb3287-82e9-3a44-ad7a-7d0a022561d0","codeId":"92bb328782e93a44ad7a7d0a022561d0","cpuName":"arm64","objectName":"Kartoon","symbolType":"macho","headers":{"Content-Type":"application/x-mach-binary"},"size":6625208,"sha1":"591c9b4e74acbe7addd32867f6d7900b8b9c4d6d","dateCreated":"2023-09-14T15:05:35.972233Z","data":{"type":"dbg","features":["unwind","debug","symtab"]}}},"94ce85b36a674e47605d413ca41739747ca5ae7a":{"state":"ok","detail":null,"missingChunks":[],"dif":{"id":"448443755","uuid":"839f1431-7386-39d4-ab1f-034caa936314","debugId":"839f1431-7386-39d4-ab1f-034caa936314","codeId":"839f1431738639d4ab1f034caa936314","cpuName":"arm64","objectName":"DesignSystemTests","symbolType":"macho","headers":{"Content-Type":"application/x-mach-binary"},"size":76016,"sha1":"94ce85b36a674e47605d413ca41739747ca5ae7a","dateCreated":"2023-09-14T14:12:24.915079Z","data":{"type":"lib","features":["symtab","unwind"]}}},"5d2382886f45a93d1b07c5b9b69945c1b5b2af70":{"state":"ok","detail":null,"missingChunks":[],"dif":{"id":"448488178","uuid":"92bb3287-82e9-3a44-ad7a-7d0a022561d0","debugId":"92bb3287-82e9-3a44-ad7a-7d0a022561d0","codeId":"92bb328782e93a44ad7a7d0a022561d0","cpuName":"arm64","objectName":"Kartoon","symbolType":"macho","headers":{"Content-Type":"application/x-mach-binary"},"size":4024384,"sha1":"5d2382886f45a93d1b07c5b9b69945c1b5b2af70","dateCreated":"2023-09-14T15:05:40.379089Z","data":{"type":"exe","features":["unwind","symtab"]}}},"75d2bde2c0fecbc57f4b5affec4db99b799f71a4":{"state":"error","detail":"internal server error","missingChunks":[]}} > File processing complete: ERROR Kartoon internal server error > No new debug symbols to associate. DEBUG 2023-09-14 17:11:43.182334 +02:00 request POST https://sentry.io/api/0/projects/kartoon-65f9638a1/kartoon-ios-debug/reprocessing/ DEBUG 2023-09-14 17:11:43.182367 +02:00 using token authentication DEBUG 2023-09-14 17:11:43.182386 +02:00 retry number 0, max retries: 0 DEBUG 2023-09-14 17:11:43.182529 +02:00 > POST /api/0/projects/kartoon-65f9638a1/kartoon-ios-debug/reprocessing/ HTTP/1.1 DEBUG 2023-09-14 17:11:43.182549 +02:00 > Host: sentry.io DEBUG 2023-09-14 17:11:43.182563 +02:00 > Accept: */* DEBUG 2023-09-14 17:11:43.182577 +02:00 > Connection: TE DEBUG 2023-09-14 17:11:43.182590 +02:00 > TE: gzip DEBUG 2023-09-14 17:11:43.182603 +02:00 > User-Agent: sentry-cli/2.20.7 DEBUG 2023-09-14 17:11:43.182628 +02:00 > Authorization: Bearer sntrys_e*** DEBUG 2023-09-14 17:11:43.182641 +02:00 > Content-Length: 0 DEBUG 2023-09-14 17:11:43.334101 +02:00 < HTTP/1.1 200 OK DEBUG 2023-09-14 17:11:43.334237 +02:00 < server: nginx DEBUG 2023-09-14 17:11:43.334327 +02:00 < date: Thu, 14 Sep 2023 15:11:43 GMT DEBUG 2023-09-14 17:11:43.334359 +02:00 < Content-Length: 0 DEBUG 2023-09-14 17:11:43.334386 +02:00 < allow: POST, OPTIONS DEBUG 2023-09-14 17:11:43.334414 +02:00 < access-control-allow-methods: POST, OPTIONS DEBUG 2023-09-14 17:11:43.334449 +02:00 < access-control-allow-headers: X-Sentry-Auth, X-Requested-With, Origin, Accept, Content-Type, Authentication, Authorization, Content-Encoding, sentry-trace, baggage, X-CSRFToken DEBUG 2023-09-14 17:11:43.334476 +02:00 < access-control-expose-headers: X-Sentry-Error, Retry-After DEBUG 2023-09-14 17:11:43.334502 +02:00 < access-control-allow-origin: * DEBUG 2023-09-14 17:11:43.334529 +02:00 < x-sentry-rate-limit-remaining: 38 DEBUG 2023-09-14 17:11:43.334568 +02:00 < x-sentry-rate-limit-limit: 40 DEBUG 2023-09-14 17:11:43.334595 +02:00 < x-sentry-rate-limit-reset: 1694704304 DEBUG 2023-09-14 17:11:43.334621 +02:00 < x-sentry-rate-limit-concurrentremaining: 24 DEBUG 2023-09-14 17:11:43.334659 +02:00 < x-sentry-rate-limit-concurrentlimit: 25 DEBUG 2023-09-14 17:11:43.334686 +02:00 < vary: Accept-Language, Cookie DEBUG 2023-09-14 17:11:43.334712 +02:00 < content-language: en DEBUG 2023-09-14 17:11:43.334736 +02:00 < x-frame-options: deny DEBUG 2023-09-14 17:11:43.334762 +02:00 < x-content-type-options: nosniff DEBUG 2023-09-14 17:11:43.334787 +02:00 < x-xss-protection: 1; mode=block DEBUG 2023-09-14 17:11:43.334819 +02:00 < content-security-policy: frame-ancestors 'self' *.sentry.io; connect-src *; object-src 'self'; script-src 'self' 'unsafe-inline' 'report-sample' 'unsafe-eval' s1.sentry-cdn.com js.sentry-cdn.com browser.sentry-cdn.com statuspage-production.s3.amazonaws.com static.zdassets.com aui-cdn.atlassian.com connect-cdn.atl-paas.net js.stripe.com ssl.google-analytics.com 'strict-dynamic' cdn.pendo.io data.pendo.io pendo-io-static.storage.googleapis.com pendo-static-5634074999128064.storage.googleapis.com; style-src * 'unsafe-inline'; font-src * data:; img-src * blob: data:; base-uri 'none'; default-src *; report-uri https://o1.ingest.sentry.io/api/54785/security/?sentry_key=f724a8a027db45f5b21507e7142ff78e&sentry_release=4272ffd31457e8de0d50eeb7b414fa466974285e DEBUG 2023-09-14 17:11:43.334848 +02:00 < x-envoy-attempt-count: 1 DEBUG 2023-09-14 17:11:43.334873 +02:00 < x-envoy-upstream-service-time: 37 DEBUG 2023-09-14 17:11:43.334898 +02:00 < x-served-by: getsentry-web-default-common-production-576f6957d5-9hxtj DEBUG 2023-09-14 17:11:43.334923 +02:00 < x-served-by: frontend-default-5494b6bc88-hpq49 DEBUG 2023-09-14 17:11:43.334949 +02:00 < strict-transport-security: max-age=31536000; includeSubDomains; preload DEBUG 2023-09-14 17:11:43.334973 +02:00 < via: 1.1 google DEBUG 2023-09-14 17:11:43.334998 +02:00 < Alt-Svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 DEBUG 2023-09-14 17:11:43.335049 +02:00 response status: 200 DEBUG 2023-09-14 17:11:43.335083 +02:00 body: Error: some symbols did not process correctly error: sentry-cli exit with 1 ```
loewenheim commented 9 months ago

Thank you for the report, will take a look.

loewenheim commented 9 months ago

Can you try this again with sentry-cli 2.20.6? We have reports of possibly-related errors only occurring with 2.20.7.

MartinMoizard commented 9 months ago

I've just tried with version 2.20.6 and I could not reproduce the issue.

loewenheim commented 9 months ago

Thank you, that helps!

loewenheim commented 9 months ago

Can you share the debug files with which this happens?

MartinMoizard commented 9 months ago

Just to make sure, you want the dSYM file? Do you want something else?

loewenheim commented 9 months ago

Yes, the file (or files) you're trying to upload.

MartinMoizard commented 9 months ago

There's this one. I am not sure if sentry-cli finds and uploads something else. Let me know if there is an easy way to check.

Kartoon.app.dSYM.zip

loewenheim commented 9 months ago

Thanks, I'll see if I can reproduce the issue.

loewenheim commented 9 months ago

Your logs show 3 debug files being found, what exactly does your $DWARF_DSYM_FOLDER_PATH contain?

MartinMoizard commented 9 months ago

Here is what it contains:

DesignSystem.o
DesignSystem.swiftmodule
DesignSystemTests.swiftmodule
DesignSystemTests.xctest
Kartoon.app
Kartoon.app.dSYM
Kartoon.swiftmodule
Kartoon_DesignSystem.bundle
PackageFrameworks
RswiftResources.o
RswiftResources.swiftmodule
Sentry.o
SentryPrivate.o
SentryPrivate.swiftmodule
Sentry_SentryPrivate.bundle
loewenheim commented 9 months ago

Can you zip up and send me all of those?

MartinMoizard commented 9 months ago

Sure, can you give me your email address?

loewenheim commented 9 months ago

Yes, that's sebastian.zivota@sentry.io.

MartinMoizard commented 9 months ago

Thanks, it's sent!

MartinMoizard commented 9 months ago

Apparently, the 3 debug files founds are the following:

loewenheim commented 9 months ago

Alright, I've located the error in Sentry.

failed to read/write source bundle manifest
  caused by: invalid type: map, expected a string at line 1 column 2655

Apparently there's something wrong with the sourcebundle. This explains why I can't reproduce it—I don't have the sources. Now to find out what might be going wrong with sourcebundle creation.

MartinMoizard commented 9 months ago

Let me know if I can help.

github-actions[bot] commented 8 months ago

This issue has gone three weeks without activity. In another week, I will close it.

But! If you comment or otherwise update it, I will reset the clock, and if you label it Status: Backlog or Status: In Progress, I will leave it alone ... forever!


"A weed is but an unloved flower." ― Ella Wheeler Wilcox 🥀

loewenheim commented 8 months ago

Fixed as of https://github.com/getsentry/sentry-cli/pull/1749.