mirror of
https://github.com/pewdiepie-archdaemon/odysseus.git
synced 2026-11-02 11:12:21 +01:00
fix(effects): open the effect journal in binary mode on Windows (#6811)
Raw os.open() is text-mode on Windows unless O_BINARY is set, so each \n written by the journal became \r\n. The log tracks byte offsets, so the next append read the extra byte as a corrupt tail and every tool call after the first in a turn failed with 'Effect claim could not be persisted durably'. OR O_BINARY (0 on POSIX) into the journal and launch-reservation opens. Co-authored-by: Alexandre Teixeira <general@alexandreteixeira.dev>
This commit is contained in:
co-authored by
Alexandre Teixeira
parent
8450793fe6
commit
1de3c72140
@@ -344,3 +344,13 @@ def test_hardlinked_effect_state_is_control_plane_without_scanning_the_store(tmp
|
||||
elsewhere.write_text("y")
|
||||
os.link(elsewhere, workspace / "pnpm-style.txt")
|
||||
assert resources._control_plane_path(str(workspace / "pnpm-style.txt")) is True
|
||||
|
||||
|
||||
def test_consecutive_claims_write_lf_only_records(tmp_path, target):
|
||||
# Raw os.open() is text-mode on Windows unless O_BINARY is set; the \r\n it
|
||||
# wrote made the next append read a stray empty line as a corrupt tail.
|
||||
log = EffectLog(RUN, directory=tmp_path / "fx")
|
||||
claim(log, target, "e1", "act-1")
|
||||
claim(log, target, "e2", "act-2")
|
||||
assert b"\r" not in log.path.read_bytes()
|
||||
assert len(records(log.path)) == 2
|
||||
|
||||
Reference in New Issue
Block a user