test: deflake fastutf8stream destroy and reopen tests · nodejs/node@6f99474 · GitHub
Skip to content

Commit 6f99474

Browse files
christianaurichzmaduh95
authored andcommitted
test: deflake fastutf8stream destroy and reopen tests
Both tests read the destination file with no ordering guarantee against the fs.write() that Utf8Stream still has in flight, so under load the read can observe an empty file. In test-fastutf8stream-destroy the read is issued right after destroy(). In test-fastutf8stream-reopen it is ordered on 'drain', documented as emitted when the buffer has drained enough to allow continued writing, which says nothing about the bytes being observable in the file. The reopen path also emits a 'drain' of its own from a nextTick before the write has landed. Order both reads on 'write' instead, documented as emitted when a write operation has completed and emitted from #release() once the underlying write returned. In sync mode it is emitted from within write(), so the listener is attached before the write call. No data is lost by Utf8Stream here: re-reading the file after a failed assertion shows the expected content. This corrects an expectation of the tests, not the runtime. Signed-off-by: Christian Aurich <christian.aurichzm@gmail.com> PR-URL: #65554 Refs: https://github.com/nodejs/reliability/blob/main/reports/2026-08-20.md Refs: https://github.com/nodejs/reliability/blob/main/reports/2026-08-26.md Reviewed-By: Shelley Vohr <shelley.vohr@gmail.com> Reviewed-By: Filip Skokan <panva.ip@gmail.com>
1 parent 34b3823 commit 6f99474

2 files changed

Lines changed: 14 additions & 8 deletions

File tree

‎test/parallel/test-fastutf8stream-destroy.js‎

Lines changed: 5 additions & 2 deletions

‎test/parallel/test-fastutf8stream-reopen.js‎

Lines changed: 9 additions & 6 deletions

0 commit comments

Comments
 (0)