Closed DimitarNestorov closed 4 years ago
By changing limit-post
to 4294967296
(4 GB, electron symbols for mac are 1.44 GB) in SENTRY_WEB_OPTIONS
we stopped getting http error 55. Now we only get error: http error: [56] Failure when receiving data from the peer (Recv failure: Connection reset by peer)
and no new files came up in the Debug Information Files
section of project settings.
No more error 56 and error 55, the configuration for limit-post
didn't apply. However no breakpad files are being uploaded. Only macOS symbols went through successfully. And I'm not getting error messages in the output of the script:
We are starting to download all possible electron symbols
We need it in order to symbolicate native crashes
This step is only needed once whenever you update your electron version
Just call this script again it should do everything for you.
> Found 7 debug information files
> Prepared debug information files for upload
Batch 1
> Compressing 1 debug symbol files
> Uploading debug symbol files
Batch 2
> Compressing 2 debug symbol files
> Uploading debug symbol files
Batch 3
> Compressing 1 debug symbol files
> Uploading debug symbol files
Batch 4
> Compressing 1 debug symbol files
> Uploading debug symbol files
> File upload complete:
954f1c6c-2aea-30d2-be41-84b5cfb95867 (Electron Framework; x86_64)
c11b8e11-edd2-37b9-9ab5-5fe9e97ffffb (Electron; x86_64)
26bf611b-7acc-305a-9fc5-c535a513256f (Electron Helper; x86_64)
d887239e-2626-3152-8fd6-5d25cf550a50 (libnode.dylib; x86_64)
88e7d358-e6f8-3104-94dd-6586d9be6af6 (openssl-cli; x86_64)
> Found 3 debug information files
> Prepared debug information files for upload
Batch 1
> Compressing 1 debug symbol files
> Uploading debug symbol files
Batch 2
> Compressing 2 debug symbol files
> Uploading debug symbol files
> Found 3 debug information files
> Prepared debug information files for upload
Batch 1
> Compressing 1 debug symbol files
> Uploading debug symbol files
Batch 2
> Compressing 2 debug symbol files
> Uploading debug symbol files
> Found 84 debug information files
> Prepared debug information files for upload
Batch 1
> Compressing 64 debug symbol files
> Uploading debug symbol files
Batch 2
> Compressing 14 debug symbol files
> Uploading debug symbol files
Batch 3
> Compressing 1 debug symbol files
> Uploading debug symbol files
Batch 4
> Compressing 5 debug symbol files
> Uploading debug symbol files
Finished downloading and uploading to Sentry
Feel free to delete the .electron-symbols
Running the script a second time gives this output:
We are starting to download all possible electron symbols
We need it in order to symbolicate native crashes
This step is only needed once whenever you update your electron version
Just call this script again it should do everything for you.
> Found 7 debug information files
> Prepared debug information files for upload
> Nothing to upload, all files are on the server
> Nothing to upload
> Found 3 debug information files
> Prepared debug information files for upload
Batch 1
> Compressing 1 debug symbol files
> Uploading debug symbol files
Batch 2
> Compressing 2 debug symbol files
> Uploading debug symbol files
> Found 3 debug information files
> Prepared debug information files for upload
Batch 1
> Compressing 1 debug symbol files
> Uploading debug symbol files
Batch 2
> Compressing 2 debug symbol files
> Uploading debug symbol files
> Found 84 debug information files
> Prepared debug information files for upload
Batch 1
> Compressing 64 debug symbol files
> Uploading debug symbol files
Batch 2
> Compressing 14 debug symbol files
> Uploading debug symbol files
Batch 3
> Compressing 1 debug symbol files
> Uploading debug symbol files
Batch 4
> Compressing 5 debug symbol files
> Uploading debug symbol files
Finished downloading and uploading to Sentry
Feel free to delete the .electron-symbols
I've come to the conclusion that 8.22 (latest release) can't accept breakpad symbols using this script. Adding loglevel info while running the script reveals that sentry cli makes a GET request to http://oursentryinstance.com:9000/api/0/organizations/codemotion/chunk-upload/ which returns 404. However it returns 200 on sentry.io. Looking at the code ChunkUpload didn't exist at the time 8.22 was released. Do you guys plan to make a release soon? I guess that as soon as you make the next release and we update I'll be closing the issue.
@jan-auer Thanks for the information regarding this issue. Yes, I do not need the symbols for JavaScript errors, but would love to be able to report errors to the electron team in case a crash happens. Since most of our users are on macOS, this issue is not a big deal for us at the moment.
As for https://github.com/getsentry/sentry-electron/issues/54 I will try out your suggestion and report results back there.
Unfortunately, 8.22.0 does not yet support Electron native crashes. I will add this fact (and a version requirement for the future) to the documentation in case more people have the same issue.
As you stated correctly, required support for Breakpad symbols was only introduced after the last release. Sentry CLI will still try to upload the symbols but they are not processed and discarded by the server. This is why you receive an empty response after uploading those debug symbols.
Apart from that, we have introduced a new upload endpoint, called "chunk-upload
". This allows us to upload larger files than what was possible before. The "broken pipe" error you are receiving is the result of trying to upload a 1.5GB debug symbol over the prior endpoint, which results in a connection reset. Also, the symbolication library in 8.22.0 is a bit outdated, so native stack traces even from macOS might not have the same quality.
Closing this issue due to staleness. Feel free to comment here if you think we should still work on this.
sentry-symbols.js
script generated by https://github.com/getsentry/sentry-wizard using:Batch 1
Batch 1
Batch 2
Batch 1
Batch 2
Batch 3
To test out if my computer was the issue I tried uploading to sentry.io and I succeeded. Also to test if my config was wrong I ran the sentry cli info command and got the email address that I used to register my account on my Docker instance.
The script somehow was able to upload 2 files, which I believe proves that my client config is fine: