Git Product home page Git Product logo

Comments (11)

jan-auer avatar jan-auer commented on June 5, 2024

The URL in the initial screenshot was truncated, but it seems like you were using the Legacy DSN including the private key. This is not supported by this SDK and generates a wrong sentry_key query parameter in the URL. This generated the initial 401 request.

Are you sending this to sentry.io or an on-premise version of Sentry? It seems that you're using an on-premise version. If so, which version are you running on? You will require a relatively recent version -- ideally the latest master -- for this to work. Also, you can check the server log for the exact error in this case. Depending on the error, there might be an X-Sentry-Error header (or similar) that explains why the request was bad.

That being said, we only ran limited tests with Crashpad on Linux yet, I will try this out myself and see if we can reproduce this error.

from sentry-native.

austinlin7732 avatar austinlin7732 commented on June 5, 2024

Hi jan-auer,
Thanks for your suggestion.
I also set up sentry.io, I think I can try sentry.io first. But it seems only provide HTTPS DSN
image

with default sentry_crashpad.c and https dsn, I can see report in server, but if I unmark the crash source code, it said it only accept http.

  1. Does sentrypad-native only support http for crash report ?
    I can't find the HTTP DSN, can you tell me where is that ?

  2. If I unmark the crash source code and change http to https with this line, build and run example binary again wtih HTTPS DSN, it seems can't sent report to sentry.io, does sentry-native support sending crash(core dump) report via https to sentry server?

from sentry-native.

jan-auer avatar jan-auer commented on June 5, 2024

I can see report in server, but if I unmark the crash source code, it said it only accept http.

Can you share the exact message that you're getting here? Sentry definitely accepts and prefers HTTPS usually. Also, uncommenting the crash line should not change anything with this.

I can't find the HTTP DSN, can you tell me where is that ?

It is strongly discouraged to use http in this scenario. If absolutely required, you can always just replace https:// with http:// in the DSN. In your case, there is probably a different issue and you can continue to use the HTTP DSN.

We're updating the UI now to remove the legacy DSN. If you use the Public DSN then sending crash reports should work out of the box.

from sentry-native.

austinlin7732 avatar austinlin7732 commented on June 5, 2024

Hi jan-auer,
Thanks for your information. Let me have more clear description, thanks.
With Sentry 4

1. Try default condition
with default sentry_crashpad.c, after running sentry_example_crashpad binary with my HTTP DSN It can send message to my sentry server as below,
image, this test is no problem.

2. Try crash condition
2.1 unmark the crash source code, and run sentry_example_crashpad to see core dump, it will said it need HTTP
image

2.2 I Modify to accept HTTPS ,
build and run sentry_example_crashpad again,

image
Crash is there, Sentry doesn't get the report, refer to wireshark, it is sent by http, that's why I think the minidump(crash ) report is not supported to send by HTTPS

image

image

2.3 If I run sentry_example_crashpad with HTTP, with HTTP checking rule,

I see some error in red square,
Does these error normal or it is issue ?
image

With wireshark, I see it POST to sentry server, but server doesn't get the report, and no response as wireshark shown.
image

Question 1,
Will it support to send crash report by HTTPS in the future ?

Question 2,
Currently sentrypad have issue with sending core dump report with HTTP to sentry right?
or I miss something?

Question 3,
Without crash happened in sentry_example_crashpad, report can send to sentry server by HTTPS, so the report type will be sent with different method in source code right ?

from sentry-native.

jan-auer avatar jan-auer commented on June 5, 2024

With Sentry 4

Does this mean you're on Sentry version 4? You need to be on the latest master, that is, version 10.

Will it support to send crash report by HTTPS in the future

You are using the Crashpad backend for Sentry native. At the moment we haven't completed tests on Linux. It seems like there might be an issue sending via HTTPS on Linux, which we will have to investigate. Unfortunately, Crashpad is not fully stable on Linux, so you might wanna try out the Breakpad version, instead. This is all work in progress, and we will update documentation as we gain more insights.

Currently sentrypad have issue with sending core dump report with HTTP to sentry right?

Sentry Native will never send core dumps. It uses either Crashpad or Breakpad to send Minidumps. Submission should always be possible via HTTPS, but as stated above, on Linux Crashpad might not work properly.

Without crash happened in sentry_example_crashpad, report can send to sentry server by HTTPS, so the report type will be sent with different method in source code right?

That is correct. On Linux, we bundle curl to send events manually. It is on our roadmap to do this for crashes (i.e. minidumps) aswell, but we still need some more time for this.

from sentry-native.

austinlin7732 avatar austinlin7732 commented on June 5, 2024

Does this mean you're on Sentry version 4? You need to be on the latest master, that is, version 10.

Sorry I should say sentry-native Tag 0.04

You are using the Crashpad backend for Sentry native. At the moment we haven't completed tests on Linux. It seems like there might be an issue sending via HTTPS on Linux, which we will have to investigate. Unfortunately, Crashpad is not fully stable on Linux, so you might wanna try out the Breakpad version, instead. This is all work in progress, and we will update documentation as we gain more insights.

Thanks for you information, I will try Breapad version for sentry native.

Sentry Native will never send core dumps. It uses either Crashpad or Breakpad to send Minidumps. Submission should always be possible via HTTPS, but as stated above, on Linux Crashpad might not work properly.

Understand

That is correct. On Linux, we bundle curl to send events manually. It is on our roadmap to do this for crashes (i.e. minidumps) aswell, but we still need some more time for this.

Thanks for this information

Doubt :
I have one idea that I only need sentry-native and its minidumps module to catch the crash (core dump) for producing the minidumps report. (may be using curl manually or other method to send report to sentry server)

If I remove other functionality modules and only keep minidumps modules in sentry-native for my thought above, do you think it need much effort ?
I means maybe the source file are depends tightly or the build depends is also tightly.

I test with example_breakpad with unmark crash source line, it doesn't create dmp file, the reason is here are marked ?

If I only need minidumps functionality , do you recommend me to use crashpad or breakpad ?

from sentry-native.

jan-auer avatar jan-auer commented on June 5, 2024

I only need sentry-native and its minidumps module to catch the crash

sentry-native does not include such a module. At present time, this can only be achieved via either Crashpad or Breakpad.

I test with example_breakpad with unmark crash source line

After writing you, I'm realizing that we deactivated some code in the SDK for Breakpad. We will be checking in the proper breakpad implementation soon, then I'll update you here. Sorry about the confusion.

If I only need minidumps functionality , do you recommend me to use crashpad or breakpad ?

On Linux I would recommend Breakpad. On macOS and Windows, I would recommend Crashpad.

from sentry-native.

austinlin7732 avatar austinlin7732 commented on June 5, 2024

sentry-native does not include such a module. At present time, this can only be achieved via either Crashpad or Breakpad.

Thanks for your reminder, sentry-native is a wrapper of Crashpad/Breakpad

After writing you, I'm realizing that we deactivated some code in the SDK for Breakpad. We will be checking in the proper breakpad implementation soon, then I'll update you here. Sorry about the confusion.

Thanks, so after fix it, example_breakpad will create dmp file,
Q1: will it support upload to sentry ? Or user should use curl manually ?

On Linux I would recommend Breakpad. On macOS and Windows, I would recommend Crashpad.

Thanks for your recommendation.
Q2:
Breakpad uses in-process crash reporting, if I only need minidump function, will it has other disadvantage with out-of-process used by Crashpad ?

from sentry-native.

jan-auer avatar jan-auer commented on June 5, 2024

Q1: Yes, it will support uploads to Sentry. This will likely be included in one of the next releases of the SDK.

Q2: In-process error reporting is slightly less reliable. Once a process crashes, possibilities are significantly limited. Thus Crashpad would be theoretically superior, but it still has to catch up to Breakpad in some areas (e.g. uploading crashes).

I added your issues now to "Known Issues" in the main readme. We'll work actively to get Breakpad working as soon as possible. Thanks for sharing all this context and information!

from sentry-native.

austinlin7732 avatar austinlin7732 commented on June 5, 2024

Hi jan-auer,

Thanks for your kindly explanation.

I see the Known Issues
Sentry with Breakpad cannot upload minidumps. The uploader was temporarily removed and will be restored in a future version.

Q1: I also want to check that the *dmp file is also not created via Sentry with Breakpad currently right ? ( testing with example_breakpad sentry-native version 1.0.1 is the same condition). hope not my operation missing.
I try to understand this by looking to src code, it is not implemented yet.
In releaes 1.0. 1 the bin/Release/breakpad_crash can produce the .dmp file.

Q2: Can I know the estimated period between every release ?
Q3: If I have other doubt about the breakpad, do I need to create another issue for query or I can discuss here with you?

Thank you so much

from sentry-native.

Swatinem avatar Swatinem commented on June 5, 2024

@austinlin7732
We are planning to release a new version of sentry-native later today. It does not have official support for crashpad on linux, but plans are to add breakpad support asap, and looking into supporting crashpad on linux as well in the future.

from sentry-native.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.