You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Changed
R-30 closed as cannot-reproduce; repro pinned as the r30_reopen live
scenario (#49). The reported symptom (READ answering an empty body with STATUS_OK after CREATE/WRITE/CLOSE + re-open) does not reproduce on the
claimed-failing commit d791d4d nor on main (dialects 2.1/3.0/3.1.1,
impacket 0.13.1); the exact sequence is committed as tests/live scenario r30_reopen so it can't silently regress. Past-EOF READ semantics
tracked under R-11.
EOF READ semantics pinned as the r11_eof live scenario with the Samba
4.19.5 golden (#50). rssmb already matches smbd byte-for-byte on all six
probed sequences (READ at/past EOF with length > 0 → STATUS_END_OF_FILE + 0 B; a window crossing EOF → STATUS_OK +
partial; length 0 at any offset → STATUS_OK + 0 B), and on the
shrink-while-open probe; the golden capture (tests/live/golden-r11-eof.json)
and the scenario keep it that way.
WORKING-METHOD rule 11: evidence discipline. A roadmap entry claiming
a bug must carry a committed repro script or a captured log ("observed
once in a sandbox" is not evidence); every result row in a report must
come from a command run in that session, anything else marked [inferred].
Performance
R-07a: mimalloc is the global allocator for release/Docker builds
(musl), feature-gated and on by default. Identical-build A/B
(kernel CIFS mount 3.1.1, fio r16 bs=1M direct, 30 s ×3 per cell,
1000-file create/list/delete loop ×3 in a fresh tree; medians, tests/perf/build-ab.sh reproduces all three binaries with identical
flags): unsealed read bandwidth 378 → 2480 MiB/s (6.6×, ≈1.9× the
glibc baseline of 1262), sealed 327 → 942 MiB/s (2.9×, ≈1.7× glibc's
523); small-file loop: list 31 → 16 ms, create 560 → 455 ms,
delete ≈2.1 s both. Idle RSS +8 MB (43 → 51 MB), binary size +6%.
Attribution of the remaining musl/glibc gap: not profiled in-sandbox.
Data integrity verified (fio verify=crc32c 2 GiB write+read-back
sealed and unsealed, 2 GiB random file sha256 round-trip through the
mount); full uncapped smbtorture baseline on the mimalloc binary is
identical to tests/conformance/results.md (0 main→mimalloc delta,
same harness invocation, same day). An earlier session's
AES-128-GMAC signing-negotiation and lock-21 claims are retracted as
counting artifacts of the old harness formula.
Fixed
smbtorture harness: a client panic or nonzero exit code now FAILs
the suite, never PASSes (#56). smbtorture can die mid-suite (e.g.
SIGSEGV) having printed zero failure: lines, and the old tally
(total - fail) then counted every started subtest as passed. Both run-smbtorture.sh and run-smbtorture-poc.sh now fail the suite
on any panic marker (smb_panic|PANIC|Segmentation fault) in the
log — the tally is suppressed as unreliable — and on any nonzero
exit status (not just the timeout cases). Known client-side trigger:
smbtorture 4.19.5 SIGSEGVs on smb2.compound.related1 when the
server negotiates no cipher (smb2cli_session_set_id_and_flags
NULL deref) — reproduced identically against unmodified smbd
4.19.5 with smb encrypt = off; run the test server with encryption = "desired".