Skip to content

Commit 8750070

Browse files
kylo5abyrichardlau
authored andcommitted
stream: fix fd is null when calling clearBuffer
PR-URL: #50994Fixes: #50979 Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Raz Luvaton <rluvaton@gmail.com> Reviewed-By: Robert Nagy <ronagy@icloud.com>
1 parent bd528c7 commit 8750070

2 files changed

Lines changed: 30 additions & 1 deletion

File tree

‎lib/internal/streams/writable.js‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -733,7 +733,8 @@ function errorBuffer(state) {
733733

734734
// If there's something in the buffer waiting, then process it.
735735
functionclearBuffer(stream,state){
736-
if((state[kState]&(kDestroyed|kBufferProcessing|kCorked|kBuffered))!==kBuffered){
736+
if((state[kState]&(kDestroyed|kBufferProcessing|kCorked|kBuffered|kConstructed))!==
737+
(kBuffered|kConstructed)){
737738
return;
738739
}
739740

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
'use strict';
2+
3+
// Test 'uncork' for WritableStream.
4+
// Refs: https://github.com/nodejs/node/issues/50979
5+
6+
constcommon=require('../common');
7+
constfs=require('fs');
8+
constassert=require('assert');
9+
consttest=require('node:test');
10+
consttmpdir=require('../common/tmpdir');
11+
12+
constfilepath=tmpdir.resolve('write_stream.txt');
13+
tmpdir.refresh();
14+
15+
constdata='data';
16+
17+
test('writable stream uncork',()=>{
18+
constfileWriteStream=fs.createWriteStream(filepath);
19+
20+
fileWriteStream.on('finish',common.mustCall(()=>{
21+
constwrittenData=fs.readFileSync(filepath,'utf8');
22+
assert.strictEqual(writtenData,data);
23+
}));
24+
fileWriteStream.cork();
25+
fileWriteStream.write(data,common.mustCall());
26+
fileWriteStream.uncork();
27+
fileWriteStream.end();
28+
});

0 commit comments

Comments
 (0)