Skip to content

The proxy-calls check traces each proxy alone, so no call of the tests' own is read as the proxy's - #514

Merged
DevomB merged 2 commits into
mainfrom
proxy-calls-traced-alone
Oct 15, 2026
Merged

DevomB merged 2 commits into
mainfrom
proxy-calls-traced-alone

Conversation

@DevomB

@DevomB DevomB commented Oct 15, 2026

Copy link
Copy Markdown
Owner

#180's Compartment layer (run 38700873721, job 116308465874, main 395d3de) failed on setsockopt: in trace.3685 it followed the proxy's last sendmsg with no "+++ exited/killed" line between, ending <unfinished ...>, at an address of the tests'. The proxy's source has no setsockopt; live.rs sets read and write timeouts on every connection (204-205, 221-222). Whatever lets a test thread's call into a proxy's file under strace -f -ff over the whole test run (an id reused, or otherwise), tracing the tests at all is what makes it possible.

  • live.rs: proxy_command() starts the proxy as before, or, when KRYPTIK_PROXY_TRACE names a directory, under strace -f -q -s 256 -o DIR/proxy.<test pid>.<n> --: one file a start, holding the proxy's calls alone. proxy_pid() gives the proxy's own pid (strace's one child under the check), which Drop kills first, so strace ends with it, and which the descriptor test reads its limits from.
  • proxy-calls.sh: runs the live tests with KRYPTIK_PROXY_TRACE set and no outer strace, and reads proxy.*; both awks drop a [pid N] prefix should the proxy ever start a thread. The rest (runs, the daemon's runs, the call list, the argument rules, where a missing call was first made) is unchanged.
  • Unset, the live tests run as before.

…s' own is read as the proxy's

Traced whole under strace -ff, the live tests left a call of their own in a
proxy's file now and then: in one run, a setsockopt(SO_SNDTIMEO) the tests make
when they connect followed the proxy's last sendmsg in its file, with no exit
line between, though the proxy has no such call. With KRYPTIK_PROXY_TRACE set,
the tests start each proxy under a strace of its own, one file a start, and the
check reads only those. A test's Drop kills the proxy first, so its strace ends
with it, and the descriptor test reads the proxy's own limits.
…s before each in a file

strace -f -o FILE puts each line after its task's id, so no line began with the proxy's execve and no run was counted. Both forms are dropped, the file's and the terminal's [pid N], and one file a start stays, so a thread the proxy may one day start is read with it.
@DevomB
DevomB marked this pull request as ready for review October 15, 2026 12:31
@DevomB
DevomB merged commit 12edbbe into main Oct 15, 2026
11 checks passed
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.

1 participant