8000 Isolated Processes 19: Integrate remote backend by marti4d · Pull Request #219 · rust-minidump/minidump-writer · GitHub
[go: up one dir, main page]

Skip to content

Isolated Processes 19: Integrate remote backend - #219

Merged
marti4d merged 3 commits into
mainfrom
isolated_process/19-integrate-remote-backend
Sep 9, 2026
Merged

marti4d merged 3 commits into
mainfrom
isolated_process/19-integrate-remote-backend

Conversation

@marti4d
@marti4d marti4d commented Aug 24, 2026
Copy link
Copy Markdown
Collaborator

No description provided.

@marti4d
marti4d force-pushed the isolated_process/19-integrate-remote-backend branch from d36199c to 2ddadbc Compare August 24, 2026 20:23
@marti4d
marti4d force-pushed the isolated_process/18-remote-backend branch from f6d6bff to b82c28d Compare August 26, 2026 22:09
@marti4d
marti4d force-pushed the isolated_process/19-integrate-remote-backend branch from 2ddadbc to 16c1eff Compare August 26, 2026 22:09
@marti4d
marti4d force-pushed the isolated_process/18-remote-backend branch from b82c28d to 42b9b3a Compare August 27, 2026 19:53
@marti4d
marti4d force-pushed the isolated_process/19-integrate-remote-backend branch from 16c1eff to cc0216b Compare August 27, 2026 19:53
@marti4d
marti4d force-pushed the isolated_process/18-remote-backend branch from 42b9b3a to 98012cf Compare September 1, 2026 20:19
@marti4d
marti4d force-pushed the isolated_process/19-integrate-remote-backend branch 2 times, most recently from cc0216b to bd97207 Compare September 1, 2026 20:19
@marti4d
marti4d force-pushed the isolated_process/18-remote-backend branch 2 times, most recently from ec39115 to acce18a Compare September 2, 2026 21:23
@marti4d
marti4d force-pushed the isolated_process/19-integrate-remote-backend branch from bd97207 to 091d71f Compare September 2, 2026 21:24
@marti4d
marti4d force-pushed the isolated_process/18-remote-backend branch from acce18a to f5a0634 Compare September 8, 2026 17:37
@marti4d
marti4d force-pushed the isolated_process/19-integrate-remote-backend branch from 091d71f to f432734 Compare September 8, 2026 17:43
Base automatically changed from isolated_process/18-remote-backend to main September 8, 2026 17:44
@marti4d
marti4d commented Sep 8, 2026
Copy link
Copy Markdown
Collaborator Author

@gabrielesvelto I made the changes to the testing that I said I would. I think you'll agree this is a lot better. Should be good to review now!

@gabrielesvelto gabrielesvelto left a comment
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM overall but there's something I may be missing: having replaced most configurations with those generated via remote_mw_config() aren't we only testing the remote path now? Shouldn't we run the tests both with and without a remote executor?

Comment on lines 971 to +973
) -> Result<Vec<u8>, CopyFromProcessError> {
let length =
std::num::NonZeroUsize::new(length).ok_or(CopyFromProcessError::InvalidArgument)?;
let mem = process_inspector.process_reader();
mem.read_to_vec(src, length)
mem.read_all_to_vec(src, length)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this may have spilled over from another commit (part 9 maybe?), anyway no big deal.

@marti4d marti4d Sep 9, 2026 •
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You'd think, but no -- As it turns out, this is actually a bug! There are several pieces of code that call copy_from_process() that basically don't work if it only returns a partial read -- It seems that the assumed contract for copy_for_process() is that it's all-or-nothing -- It's just that partial reads never practically occurred until IO buffering entered the fold.

Comment thread src/linux/minidump_writer/mod.rs Resolved
@marti4d
marti4d commented Sep 9, 2026 •
Copy link
Copy Markdown
Collaborator Author

LGTM overall but there's something I may be missing: having replaced most configurations with those generated via remote_mw_config() aren't we only testing the remote path now? Shouldn't we run the tests both with and without a remote executor?

We could, but TBH I was a bit on the fence about it -- Simply because the remote path necessarily tests the local path as part of the entire chain. The executor uses the local backend within its own process to execute the remote requests.

So I don't know... I get that there's value in testing the different combinations of things sometimes, but there's also value in not having a unit testing suite that takes a long time to execute because it tests everything twice...

@marti4d
marti4d merged commit 71999b7 into main Sep 9, 2026
16 checks passed
@marti4d
marti4d deleted the isolated_process/19-integrate-remote-backend branch September 9, 2026 19:31
@gabrielesvelto
Copy link
Copy Markdown
Contributor

We could, but TBH I was a bit on the fence about it -- Simply because the remote path necessarily tests the local path as part of the entire chain. The executor uses the local backend within its own process to execute the remote requests.

So I don't know... I get that there's value in testing the different combinations of things sometimes, but there's also value in not having a unit testing suite that takes a long time to execute because it tests everything twice...

That's true. In fact, once the integration is done, I was considering adding some tests in Firefox automation that would test the remote path on regular Linux rather than Android, to exercise this code even before the mobile team merges the isolated process support.

@marti4d
marti4d commented Sep 10, 2026
Copy link
Copy Markdown
Collaborator Author

That's true. In fact, once the integration is done, I was considering adding some tests in Firefox automation that would test the remote path on regular Linux rather than Android, to exercise this code even before the mobile team merges the isolated process support.

That seems like a good idea! There probably should be some end-to-end testing for this. I think it would just be a pref anyway to run the crash reporter with the remote executor. It definitely works, because I do most of the testing on desktop Linux before I test on Android.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

0