Draft
Conversation
…0cb-97f7-4e73-a753-e07735d71935 Release v3.18.0
When Nix execs another program (like in `nix run` or `nix develop`), Sentry's crashpad_handler remains running. Sentry doesn't seem to have an API to cause crashpad_handler to quit. On Linux, this isn't a problem. However, macOS uses Mach exception ports to communicate crashes to crashpad_handler, and these remain valid across exec() and are inherited by child processes. So this causes Sentry crash reports for non-Nix processes. The workaround is to reset the exception ports to their default state.
The chroot helper only works if there are no other threads, but Sentry creates a worker thread. So don't start Sentry in the chroot helper.
Fix chroot helper with Sentry
Tagging release 2.33.4
upload-debug-info-to-sentry.py: Add missing dependencies
restoreProcessContext(): Reset Mach exception ports
Sync with upstream 2.33.4
Note: this only include the command/subcommand (e.g. `nix flake update`), but no other command-line arguments.
sentry: Log the Nix command / subcommand
…f47-24cd-4fd6-81f2-cf83b74724eb Release v3.18.1
Use `statusOk`/`statusToString` consistently when checking child process wait statuses, so that failures produce human-readable messages (e.g. "exited with code 2") rather than raw integer comparisons or nothing at all. Also give distinct exit codes to each failure path in the `fchmodatTryNoFollow` test for easier debugging. Note that `status == 0` and `statusOk(status)` do not do the same thing, because the latter does not check all the bits. So by changing the code from the former to the latter, we are technically changing behavior. However, it is not really proper to check the other bits, rather than use the macros which (essentially) parse a discriminated union. The other bits are probably guaranteed to be 0 in practice, but in theory, they are reserved for future use, and we should not guessing that that future use is / what the bits mean in that case.
Sync with upstream 2.34.6
This was used in only one place (the daemon implementation) and it hard-coded a protocol version, so let's get rid of it.
This makes `nix copy` from ssh-ng to the daemon preserve provenance, because in combination with the previous commits, RemoteStore::addToStoreMultiple() now sends provenance if the daemon supports it. Fixes #369.
Preserve provenance while copying paths to the daemon
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
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Motivation
Not intended to be merged directly. This PR is a convenience to show the diff between upstream Nix and Determinate Nix (the
mainbranch).Continuation of #4.