forked from chromium/crashpad
-
Notifications
You must be signed in to change notification settings - Fork 51
Sentry Patches #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
jan-auer
wants to merge
578
commits into
master
Choose a base branch
from
getsentry
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Swatinem
pushed a commit
that referenced
this pull request
Sep 10, 2020
__builtin_trap uses ud2 on x86_64, producing a SIGILL. On arm64, it uses brk #1, producing a SIGTRAP. Test expectations must be adjusted accordingly. Bug: crashpad:345 Test: crashpad_snapshot_test MachOImageAnnotationsReader.CrashModuleInitialization, crashpad_util_test ExcServerVariants.*,ExceptionPorts.* Change-Id: I22e75b7b48b8887031b1d95f1cea8a09733daf49 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2386464 Commit-Queue: Mark Mentovai <mark@chromium.org> Reviewed-by: Robert Sesek <rsesek@chromium.org>
supervacuus
pushed a commit
to supervacuus/crashpad
that referenced
this pull request
Dec 12, 2022
…Body This bug was found when trying to upgrading the MSAN bots from Ubuntu 18.04 (where this codepath was not hit) to 20.04. The following MSAN error is produced when running HTTPTransport/HTTPTransport.* ==3496553==WARNING: MemorySanitizer: use-of-uninitialized-value #0 0x5616c540ad7d in __is_long buildtools/third_party/libc++/trunk/include/string:1674:33 getsentry#1 0x5616c540ad7d in size buildtools/third_party/libc++/trunk/include/string:1069:17 getsentry#2 0x5616c540ad7d in crashpad::(anonymous namespace)::HTTPTransportLibcurl::WriteResponseBody(char*, unsigned long, unsigned long, void*) third_party/crashpad/crashpad/util/net/http_transport_libcurl.cc:528:50 ... SUMMARY: MemorySanitizer: use-of-uninitialized-value buildtools/third_party/libc++/trunk/include/string:1674:33 in __is_long ORIGIN: invalid (0). Might be a bug in MemorySanitizer origin tracking. The memory is initialized in http_transport_test.cc:293, but MSAN gets confused. Given the message output by MSAN (ORIGIN: invalid (0). Might be a bug in MemorySanitizer origin tracking), this appears to be a bug in MSAN, not crashpad, so this CL suppresses the error. Bug: chromium: 1260217 Change-Id: I2d6a46e3489816270cc1fee776793ffafe0147e4 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4015160 Reviewed-by: Joshua Peraza <jperaza@chromium.org> Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
fix: make sure we reuse already found libcurl
mingw compilation fixes
meta: update 2023-02-07
Bug: 1415371 Change-Id: I9e1bd902494a664d4f07829e686803712fa8e7a8 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4255568 Reviewed-by: Mark Mentovai <mark@chromium.org> Commit-Queue: Justin Cohen <justincohen@chromium.org>
The test BaseAnnotationShouldNotSupportSpinGuard assumed NDEBUG builds always disabled DCHECK()s, but DCHECK_ALWAYS_ON overrides this. This CL fixes the test for NDEDBUG + DCHECK_ALWAYS_ON builds by using the DCHECK_IS_ON() macro to skip the test when DCHECKs are enabled. Change-Id: I7b64729568c5d3139ca777e27462d81eba931834 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4255429 Reviewed-by: Mark Mentovai <mark@chromium.org> Commit-Queue: Ben Hamilton <benhamilton@google.com>
This is the only change needed to build crashpad against musl, yay! The reason this change is needed is that user_vfp is bionic-specific, and does not exist in glibc, dietlibc, uclibc, or musl. I have not (yet) tried running the tests against another libc. Bug: chromium:1380656 Change-Id: I2247352e1611a300dff995156d393508c8257039 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4255370 Reviewed-by: Mark Mentovai <mark@chromium.org> Commit-Queue: Elly Fong-Jones <ellyjones@chromium.org>
Change-Id: I5a29f690a4512252d0d5730492f7fd4cec16ffaa Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4262547 Commit-Queue: Justin Cohen <justincohen@chromium.org> Reviewed-by: Mark Mentovai <mark@chromium.org>
…RECORD The EXCEPTION_RECORD contains a NumberParameters field, which could store a value that exceeds the amount of space allocated for the ExceptionInformation array. Bug: chromium:1412658 Change-Id: Ibfed8eb6317e28d3addf9215cda7fffc32e1030d Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4284559 Reviewed-by: Alex Gough <ajgo@chromium.org> Commit-Queue: Robert Sesek <rsesek@chromium.org>
Adds the dump_minidump_annotations tool (modified from jperaza's WIP code). This works similarly to Breakpad's minidump_dump tool, but: 1. Is available on Windows 2. Only dumps simple/vectored annotations and annotation objects instead of the entire minidump contents. Current use case for this is to be able to get a minidump's process type on Windows without having to go through symbolization, but there may be other use cases in the future. Bug: chromium:1006331 Change-Id: I392024e230c10ea18673b3cf0d0ad4793d21f5eb Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4287994 Reviewed-by: Joshua Peraza <jperaza@chromium.org> Commit-Queue: Brian Sheedy <bsheedy@chromium.org>
Since we no longer use `http_transport_socket` on Linux there is no need to depend on OpenSSL directly anymore. We use whatever the present `libcurl` implementation uses as its TLS implementation. Also moved the dependency discovery for Android (which we currently do not use) to `crashpad-util` to isolate it to its usage.
In order to determine in crash_reporter whether a crash was fatal, we need the exception number (-1 is not an actual crash). BUG=b:269159625 TEST=deploy to DUT; chrome://crashdump; verify metadata present. Change-Id: I83d3c9cc839a685af2f50d143d627cf9fcfaf3ac Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4265253 Reviewed-by: Joshua Peraza <jperaza@chromium.org> Commit-Queue: Miriam Zimmerman <mutexlox@chromium.org>
It's not required that LC_SOURCE_VERSION be present in every module, and common for it to be missing. Suppress recording its absence. Fixed: crashpad:443 Change-Id: Iae10c38c78514e78af6c3176cc809d95a3ae3811 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4294861 Reviewed-by: Mark Mentovai <mark@chromium.org> Commit-Queue: Justin Cohen <justincohen@chromium.org>
fix: remove find_package(OpenSSL) for Linux builds
StringToInt(string_piece) works because base::StringPiece is in namespace base, but when it is switched to std::string_view, this won't work anymore. Use the idiomatic spelling. Bug: chromium:691162 Change-Id: Ic45e0d2729fa5fc7c3e7a56fe159957b1bdcdf94 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4298113 Commit-Queue: David Benjamin <davidben@chromium.org> Reviewed-by: Robert Sesek <rsesek@chromium.org>
Lacros can be up to 2 milestones ahead of ash (and consequently the platform code), so until the crash_reporter change has been in for 2 milestones, we need to manually check version compatibility. BUG=chromium:1420445 TEST=Build, deploy, check that flag is set only on right version Change-Id: Ic99d5ac58840814f7eeecd47c628ea0e8107f675 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4308129 Commit-Queue: Mark Mentovai <mark@chromium.org> Reviewed-by: Mark Mentovai <mark@chromium.org>
The windows property of UIApplication is unavailable in iOS15. Bug: 1406561 crashpad: Change-Id: I19642067a13801142cd3f24586bab6958a81635d Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4304398 Reviewed-by: Justin Cohen <justincohen@chromium.org> Commit-Queue: Joemer Ramos <joemerramos@chromium.org>
This also significantly simplifies the implementation, since we don't really need the ThreadLogMessagesMaster class at all. Bug: chromium:1416710 Change-Id: I85849230015f901dfbf084d140e639f14cb872a7 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4313281 Reviewed-by: Mark Mentovai <mark@chromium.org> Commit-Queue: Peter Kasting <pkasting@chromium.org>
ObjcExceptionPreprocessor is a 'reasonable effort' attempt to catch an NSException minidump at time the exception is thrown as opposed to when the application terminates due to the exception. If multiple exceptions are thrown at the same time, Crashpad should correctly report the final uncaught exception, but the minidump may not represent the full `caught-at-thrown` minidump. - Don't assume ObjcExceptionPreprocessor throws an NSException. - Don't retain/release the exception. Instead of calling isEqual, just use a simple pointer comparison. - Make last_exception atomic. Bug: crashpad: 445, 446 Change-Id: I9f2f2041e96aa9818c63937025e507487ae9d03d Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4317110 Reviewed-by: Ben Hamilton <benhamilton@google.com> Commit-Queue: Justin Cohen <justincohen@chromium.org> Reviewed-by: Robert Sesek <rsesek@chromium.org>
Missed this the first time around because it was Windows-only. Bug: chromium:691162 Change-Id: Ic98a5943957f77fbf17d92a93409eaa35910ae0e Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4297482 Commit-Queue: David Benjamin <davidben@chromium.org> Reviewed-by: Robert Sesek <rsesek@chromium.org>
The extra_memory cap in ProcessSnapshotTest.CrashpadInfoChild is not high enough to avoid test failures on all machines. The actual amount recorded has been seen to vary between 726,556 and 1,152,803. This change rases the limit from 1,000,000 to 1,200,000 to avoid the failures. The highest amount was seen on a 64-GB gWindows ThinkPad laptop. Instrumentation shows that the low and high cases both have 104 threads. The low case has 304 ExtraMemory() blocks, whereas the high case has 409. In both cases the sizes range from 384 to 6,024. Change-Id: I8873921fa913c31445384db34d4aa90200401a4a Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4348802 Reviewed-by: Mark Mentovai <mark@chromium.org> Commit-Queue: Bruce Dawson <brucedawson@chromium.org>
Several tests in filesystem_test.cc create symbol links. The privilege needed to do this is not enabled on all Windows systems so several of the tests check for the privilege and are skipped if it is not available. However, two tests that created symbol links were not doing this check and therefore failed on some Windows machines. This corrects those failures by adding the checks. Bug: chromium:1418165 Change-Id: I6621796b462b8db02271ad5a05e0c29ee047f648 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4348801 Reviewed-by: Mark Mentovai <mark@chromium.org> Commit-Queue: Bruce Dawson <brucedawson@chromium.org>
After https://reviews.llvm.org/D141222 exceptions call into __libcpp_verbose_abort, which Chromium sets to `brk 0` in release. Bug: 1425429 Change-Id: Ie00d1317bb03fcb1f15fb5c41ab69640dfb564b7 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4347775 Reviewed-by: Robert Sesek <rsesek@chromium.org> Commit-Queue: Justin Cohen <justincohen@chromium.org>
Pointer Authentication works by adding a signature to the top bits of an instruction or data pointer (only instruction pointers on the stack are currently signed in Chromium). This can confuse range checks, because they need to strip the top bits. Masking these bits during sanitization range checks prevents confusion. Test: Testing was done manually on a device with pointer authentication enabled. Bug: crashpad:364 Bug: 919548 Change-Id: I2e739cadb2844cfaf73a75596d664135aeb5faac Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4387271 Commit-Queue: Adam Walls <avvall@google.com> Reviewed-by: Joshua Peraza <jperaza@chromium.org> Reviewed-by: Ben Hamilton <benhamilton@google.com>
Always reset the file descriptor to -1, even if FlushWriteBuffer or RawLoggingCloseFile fails. Bug: 1431760 Change-Id: I193f526d65f477bba002dd9faf68996020e48a3b Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/4406657 Reviewed-by: Ben Hamilton <benhamilton@google.com> Commit-Queue: Justin Cohen <justincohen@chromium.org> Reviewed-by: Robert Sesek <rsesek@chromium.org>
feat: add socks proxy support
fix: add metadata pointer check
crashpad increasingly depends on C++20 features through its base-library `mini_chromium`. This change vendors a `mini_chromium` fork compatible with C++17 compilers and removes the dependency on `std::ranges` in the `crashpad` UUID utilities. * Update submodule * Provide UUID initializer for Windows and Linuxes * use fully-qualified names * Use base:byte_span_from_ref helper * Reset mini_chromium submodule to getsentry fork * Update mini_chromium ref to fork branch
* fix: update mini_chromium to remove a left-over <span> include * Introduce more Ubuntu versions to uncover breaking behavior on older compilers * now add clang runners * Disable attribute warning for crashpad_util * disable attribute errors for crashpad_compat too * disable warnings for tools and client * disable warnings at interface * further warnings in tools and client * disable ignored-attributes in handler * disable ignored-attributes in handler rather handler_lib * get rid of warnings compile options in targets that link interface * ignore pedantic around compat/linux/signal.h * remove ignored diagnostic from compat/linux/signal.h * update mini_chromium
feat: parse <empty> proxy on Linux
* fix: support building with clang-cl * fix: add clang-cl flags for MsBuild * chore: remove empty line * Fix or exclude further warnings * introduce x64 ClangCL build to CI * double-quote CMake defines in CI to not split generator by IFS * ci: quote generator * fix: escape and eval When expanding a variable with quotes, Bash will preserve the quotes and not "interpret" the them, thus eval is needed. --------- Co-authored-by: Mischan Toosarani-Hausberger <mischan@abovevacant.com>
* update ubuntu-20.4 -> 22.04 * update gcc version name * add gcc-14 runner * fix formatting
* enable retry for non-iOS builds * fix typo
* add wait for upload thread * pass through `wait_for_upload` option * ignore option on win/mac * cleanup if-endif * fix typo * fix merge typo
* fix: compilation errors with musl * ci: add Alpine Linux (musl)
* feat: wait-for-upload windows support * update `mini_chromium` after merge to fork's `getsentry` branch
* fix: auto-resolve CMAKE_OSX_SYSROOT for CMake 4.0 * check_and_fallback_sdk_path Co-authored-by: Mischan Toosarani-Hausberger <mischan@abovevacant.com>
* feat: ensure unique file names for attachments * fix build on windows 4096 ought to be enough...? * add missing include * ref: ensure unique attachment names internally * fix: windows * ref: sprinkle some consts * fix: windows - take 2 * revert accidental formatting change
A future libc++ revision will stop providing this include transitively. Bug: 376278210 Change-Id: I79460933ed915bc601278a6d75f2c2ced1130440 Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/6049220 Commit-Queue: Nico Weber <thakis@chromium.org> Reviewed-by: Mark Mentovai <mark@chromium.org> Co-authored-by: Nico Weber <thakis@chromium.org>
Co-authored-by: seer-by-sentry[bot] <157164994+seer-by-sentry[bot]@users.noreply.github.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains patches for Sentry. Do not merge.