-
Notifications
You must be signed in to change notification settings - Fork 605
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Make memory checksums work with syscallbuf ABORT_COMMITs by avoiding …
…issues with `syscallbuf_record::ret` and `syscallbuf_hdr::notify_on_syscall_hook_exit` For `syscallbuf_record::ret` we can just record an early update to the field so that it has the correct value immediately during replay. For `syscallbuf_hdr::notify_on_syscall_hook_exit`, recording the write performed by`is_safe_to_deliver_signal` is really painful because that write can end up in unexpected places, e.g. a FLUSH_SYSCALLBUF event, where it gets mistaken for the syscall buffer data. We could add metadata to fix that but it's quite complicated and adds a little of overhead for practially no gain. Instead, let's just wipe that flag out when we sanitize the syscallbuf data for checksumming. This fixes a very rare intermittent where a stray deschedule in a checksumming test would trigger an ABORT_COMMIT which triggered a checksum failure. I've added a deterministic test for ABORT_COMMIT with checksums.
- Loading branch information
1 parent
ff9ac5d
commit 368c7a2
Showing
5 changed files
with
29 additions
and
10 deletions.
There are no files selected for viewing
This file contains 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 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 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 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,5 @@ | ||
source `dirname $0`/util.sh | ||
GLOBAL_OPTIONS="$GLOBAL_OPTIONS --checksum=on-all-events" | ||
record block_open$bitness | ||
replay | ||
check EXIT-SUCCESS |
This file contains 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