-
-
Notifications
You must be signed in to change notification settings - Fork 200
feat: Sentry native crash backend #1433
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
mujacica
wants to merge
112
commits into
master
Choose a base branch
from
feat/sentry_native_backend
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
Changes from all commits
Commits
Show all changes
112 commits
Select commit
Hold shift + click to select a range
8f36d45
Initial implementation
mujacica 4ba6211
Update build structure and daemon
mujacica a930a41
Updates for Windows support
mujacica 71e9e69
Fix logging
mujacica 46a16bf
Fix MacOs builds
mujacica 296892d
Fix Warnings
mujacica 7ea0bd5
Test fixes
mujacica a345a0e
Fix linux builds
mujacica 2f578a7
Fix linux/mac modules
mujacica 25853ee
Fix concurency
mujacica b3be5d2
Fix build errors
mujacica dd7445c
Formatting
mujacica 709fccf
Fix 32bit builds
mujacica bcb3c73
Fix format
mujacica a0fd270
Fix some issues
mujacica e247fab
Native tests need http/transport
mujacica efafc14
Fix CMake
mujacica 497ac98
Fix build
mujacica f3428c6
Fix errors
mujacica 4b0a064
Fix format
mujacica 3c75eda
Fix style
mujacica e28cb12
Fix some of the issues
mujacica acdf436
Fix format
mujacica 16250d1
Moooore fixes
mujacica 77045f0
Debug CI
mujacica 02b631f
More debug
mujacica 8940639
More debug
mujacica 8720bf8
More debug
mujacica ced1e81
And more
mujacica 06c0dfb
More fixes
mujacica a16f18f
Linux fixes
mujacica a85ffe9
Fix i386 builds
mujacica c8e1163
More fixes
mujacica 1f4ea55
Fix more tests
mujacica bd768dc
More fixes
mujacica 32c6369
Fix native backend daemon discovery and resource leaks
mujacica b0be4cb
fix: use signal-safe memory operations in crash handler for TSAN/ASAN…
mujacica e5c79d3
Fix TSAN test failures and unused function warnings
mujacica b871293
Fix TSAN robustness for native crash HTTP tests
mujacica dff1b58
Fix native test failures under kcov and sanitizers
mujacica d51548a
Add run_crash helper to handle kcov exit code quirk
mujacica 4dfeca8
Fix Windows ClangCL build and improve signal handler robustness
mujacica 13f734e
Fix format
mujacica 7622382
Fix Windows ARM64 and macOS ASAN CI failures
mujacica 22ee98c
Fix tests
mujacica f0b219a
Fix Windows/ASAN CI failures and add crash reporting mode API
mujacica fa29b41
Fix Windows/ASAN CI failures and add crash reporting mode API
mujacica 902a142
Fix attachment handling in native crash daemon with native stacktrace…
mujacica 8969890
Fix attachment handling in native crash daemon with native stacktrace…
mujacica 381f820
Fix CI failures: Windows ClangCL build and resource leaks
mujacica 4eb8d96
Fix macOS minidump resource leaks and uninitialized state
mujacica 0f03bf2
Skip native backend tests on macOS ASAN
mujacica 48b3b31
Add E2E tests and fix thread duplication in native-with-minidump mode
mujacica 77362c0
Add debug symbol upload to E2E workflow for symbolication
mujacica 239f424
Fix debug_meta to use crashed process modules instead of daemon modules
mujacica c3dd4d5
Add missing sys/uio.h header and fix code style
mujacica 812c8d3
Fix Python formatting in E2E tests
mujacica 81796f9
Reduce thread count assertion from >= 3 to >= 1
mujacica 15554f3
Add Linux module capture from /proc/maps for debug_meta
mujacica 9172fd6
Remove debug symbol upload from E2E workflow
mujacica 7390b6b
Fix unused parameter warning on Windows
mujacica 419969b
Fix ELF debug_id byte swapping for Linux module capture
mujacica e38dc39
Add Linux thread enumeration from /proc/task for native mode
mujacica 1453412
Fix code style
mujacica 81a757d
Enable structured logs in E2E crash tests
mujacica 2f04d18
Fix Linux module capture and ARM64 stack unwinding
mujacica a930aa3
Fix Windows 32-bit compile warnings for uint64_t to size_t conversion
mujacica cc28f7f
Increase E2E test polling to 100 attempts with 6 second intervals
mujacica 9754b5c
Add PE code_id for Windows modules in native crash events
mujacica fcf219e
Improve Windows stack capture for frame pointer unwinding
mujacica db868f6
Use StackWalk64 for Windows stack unwinding in native backend
mujacica 7725cef
Fix Windows build: add forward declaration for walk_stack_with_dbghelp
mujacica d6c1e6d
Add module enrichment to stack frames and build stacktraces for all t…
mujacica 5e6da70
Fix empty frames and use per-thread context for Linux
mujacica 1390ab7
Fix unused variable warning on Windows ClangCL build
mujacica 19f22bd
Fix Linux module size calculation to span all memory mappings
mujacica d0eacbd
Fix GUID alignment issue when reading PDB debug info on Windows
mujacica 28b1ffb
Add diagnostic logging for Windows vs Linux debug_meta investigation
mujacica 7291034
Add diagnostic logging for Windows vs Linux debug_meta investigation
mujacica 81bfa19
Add debug_file and fix code_id format for Windows native backend
mujacica 291f8c3
Add debug_file and fix code_id format for Windows native backend
mujacica 6ec42f0
More windows fixes + PR fixes
mujacica d0ddc98
Fix minidump writer issues from PR review
mujacica b94ad9a
Fix minidump writer issues from PR review (part 2)
mujacica 3c93f3a
Fix shared memory corruption and ELF parsing infinite loop
mujacica c938d12
Add arch field for Windows PE modules and device context
mujacica 701f88a
Refactor duplicated sanitizer detection preprocessor logic
mujacica 21bf471
Fix tests/comments/changelog
mujacica 8f24654
Fix native stacktrace format to match minidump events
mujacica 28e2204
Fix PR review comments: E2E workflow and macOS thread_get_state
mujacica 9360f5c
Fix PR review comments: E2E workflow and macOS thread_get_state
mujacica e09c793
Refactor minidump writers and fix PR review comments
mujacica a48f5de
Fix Bugbot issues: overflow check, unused struct and constant
mujacica 6210908
Fix duplicate stacktrace in threads for envelope-only mode
mujacica c07cb2f
Ensure code_id uses uppercase hex digits
mujacica 52522c9
Fix integer overflow in ELF section header size calculation
mujacica b39975b
Fix async-signal-unsafe functions in crash signal handler
mujacica 40fe6e7
Fix Windows exception code sent as negative number
mujacica e343530
Fix UTF-8 to UTF-16LE conversion for non-ASCII characters
mujacica f9d5e25
Add Windows thread deduplication in native crash events
mujacica 3f38ed0
Capture Windows thread contexts for proper stack walking
mujacica eaae7df
Add defensive thread deduplication at event-building level
mujacica d75958d
Remove redundant memset in Linux IPC initialization
mujacica 1080f8b
Remove workaround deduplication and add diagnostic logging
mujacica 3511d9d
Fix unchecked lseek return values and formatting issues
mujacica ec910bc
Add diagnostic logging for thread duplication investigation
mujacica f94a9a1
Add thread duplication detection and daemon log printing to E2E tests
mujacica e01adfe
Fix format
mujacica f4f5bc2
Add detailed thread debugging to E2E tests
mujacica 070953c
Fix PR comment
mujacica e75452b
Speed up linux tests
mujacica 34022b6
Fix register usages
mujacica File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,58 @@ | ||
| name: E2E Integration Tests | ||
|
|
||
| on: | ||
| push: | ||
| branches: | ||
| - master | ||
| - "release/**" | ||
| pull_request: | ||
|
|
||
| concurrency: | ||
| group: e2e-${{ github.workflow }}-${{ github.ref }} | ||
| cancel-in-progress: true | ||
|
|
||
| jobs: | ||
| e2e-test: | ||
| name: E2E Test (${{ matrix.os }}) | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| os: [ubuntu-latest, windows-latest, macos-latest] | ||
|
|
||
| runs-on: ${{ matrix.os }} | ||
|
|
||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| with: | ||
| submodules: recursive | ||
|
|
||
| - name: Install dependencies (Linux) | ||
| if: runner.os == 'Linux' | ||
| run: | | ||
| sudo apt update | ||
| sudo apt install -y cmake libcurl4-openssl-dev | ||
|
|
||
| - name: Set up Python | ||
| uses: actions/setup-python@v5 | ||
| with: | ||
| python-version: "3.12" | ||
|
|
||
| - name: Install test dependencies | ||
| run: pip install -r tests/requirements.txt | ||
|
|
||
| - name: Add hosts entry (Linux/macOS) | ||
| if: runner.os != 'Windows' | ||
| run: sudo sh -c 'echo "127.0.0.1 sentry.native.test" >> /etc/hosts' | ||
|
|
||
| - name: Add hosts entry (Windows) | ||
| if: runner.os == 'Windows' | ||
| shell: pwsh | ||
| run: Add-Content C:\Windows\System32\drivers\etc\hosts "127.0.0.1 sentry.native.test" | ||
|
|
||
| - name: Run E2E tests | ||
| env: | ||
| SENTRY_E2E_DSN: ${{ secrets.SENTRY_E2E_DSN }} | ||
| SENTRY_E2E_AUTH_TOKEN: ${{ secrets.SENTRY_E2E_AUTH_TOKEN }} | ||
| SENTRY_E2E_ORG: ${{ secrets.SENTRY_E2E_ORG }} | ||
| SENTRY_E2E_PROJECT: ${{ secrets.SENTRY_E2E_PROJECT }} | ||
| run: pytest --capture=no --verbose tests/test_e2e_sentry.py | ||
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
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
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
Oops, something went wrong.
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.