Open
Conversation
Adds a new Settings flag that, when set, causes the upload thread to leave pending reports in the pending state instead of uploading or skipping them. Intended for consumers that transiently revoke upload consent and want reports preserved for later upload once the pause is cleared. The flag is independent of UploadsEnabled and is checked at the top of ProcessPendingReports. While paused, the known-pending queue is left untouched and no database scan is performed, so reports are retried on the next pass once the pause is cleared. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
f03626b to
50e6aac
Compare
50e6aac to
df19552
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit df19552. Configure here.
… thread
Allows clients to request an immediate retry of pending report uploads
rather than waiting for the handler's periodic scan. Useful after state
changes (for example, clearing UploadsPaused) that should take effect
without delay.
Adds a new client -> handler IPC message on all three out-of-process
platforms, piggybacking on each platform's existing channel:
* Windows: new kRequestRetry type in ClientToServerMessage, sent via
SendToCrashHandlerServer() on the existing named pipe.
* Linux: new kTypeRequestRetry type in
ExceptionHandlerProtocol::ClientToServerMessage, sent via
UnixCredentialSocket over the existing handler socket.
* macOS: new kRequestRetry type in ClientToServerMessage, sent via
SendClientToServerMessage() to the existing exception Mach port
and dispatched by a dedicated MachMessageServer::Interface
registered alongside the exception and no-senders handlers. The
struct, enum, and send/receive helpers live in a new
util/mach/exception_handler_protocol.{h,cc} shared by client and
handler, mirroring the Linux and Windows layouts.
On the handler side, each platform's Delegate gains a RequestRetry /
ExceptionHandlerServerRetryRequested / HandleClientToServerMessage
entry point that forwards to CrashReportUploadThread::RetryPending(),
a new method that wakes the worker thread without enqueuing a specific
UUID.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
df19552 to
207af63
Compare
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 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.

Adds two features for consumers that transiently revoke upload consent and want reports preserved for later upload:
UploadsPausedsetting — when set,ProcessPendingReportsleaves pending reports untouched (no upload, no skip, no database scan). Independent ofUploadsEnabled; reports retry on the next pass once the pause is cleared.CrashpadClient::RequestRetry()— wakes the handler's upload thread immediately instead of waiting for the periodic scan. Implemented as a client→handler IPC message on all three out-of-process platforms, piggybacking on each platform's existing channel. Handler side forwards to a newCrashReportUploadThread::RetryPending().On macOS, the new message uses a shared
ClientToServerMessageprotocol inutil/mach/exception_handler_protocol.{h,cc}(FourCC'CPad'message ID, typed payload), mirroring the Linux and Windows layouts.See also: