Skip to content

attempting to use a readstream to read a specific size of bytes no longer works properly with Node 10 #29933

Closed
@BrianFreedman

Description

@BrianFreedman

Here's my OS info:
Edition: Windows 10
Version: 1903
OS Build: 18362.356

Here's the output from Node 10.16.3 x64

c:\code\temp>node -v
v10.16.3

c:\code\temp>node readBytes.js
size > bufferSize : true
null segment: true
null segment: true

Here's the output from Node 8.15.1 x64

c:\code\temp>node -v
v8.15.1

c:\code\temp>node readBytes.js
size > bufferSize : true
null segment: true
null segment: true
null segment: false
null segment: true
null segment: false
null segment: true
null segment: false
null segment: true
done! 3 chunks

here's the contents of readBytes.js which illustrates the problem

const fs = require('fs');
const filepath = 'C:/code/temp/21_MB_File';
const bufferSize = 10 * 1024 * 1024;

const chunks = [];
const stats = fs.statSync(filepath);
console.log(`size > bufferSize : ${stats.size > bufferSize}`);

const readableStream = fs.createReadStream(filepath);
let segmentIndex = 1;
readableStream.on('readable', () => {
	let segment = readableStream.read(bufferSize);
	console.log(`null segment: ${segment === null}`);
	while (segment !== null) {
		chunks.push({ index: segmentIndex++, body: segment });
		segment = readableStream.read(bufferSize);
		console.log(`null segment: ${segment === null}`);
	}
});
readableStream.on('end', () => {
	console.log(`done! ${chunks.length} chunks`);
});

Metadata

Metadata

Assignees

No one assigned

    Labels

    confirmed-bugIssues with confirmed bugs.fsIssues and PRs related to the fs subsystem / file system.streamIssues and PRs related to the stream subsystem.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions