-
-
Notifications
You must be signed in to change notification settings - Fork 939
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Broken with Node.js ≥ 13.10.0 #1107
Comments
Same behavior here but all got is affected not only streams : const got = require("got");
// ensure no exit before the timer was cleared
const interval = setInterval(() => {}, 60000);
(async () => {
console.log('step 1');
const result = await got("https://www.github.com/");
console.log(result);
console.log('step 2');
clearInterval(interval);
})(); This code never throws, exits or output results. It only display |
2 hours of debugging and searching for my mistake... 😄 |
@szmarczak Are there plans to backport the fix into a minor / patch release? This bug is fairly serious. Yarn 2 relies on Got, which causes builds to abort mid-sequence. |
It's gonna be a patch release. I'm working on this right now. |
LOL @nodejs messed up! const {PassThrough, pipeline} = require('stream');
const https = require('https');
const body = new PassThrough();
const request = https.request('https://example.com');
request.once('abort', () => {
console.log('The request has been aborted');
});
pipeline(
body,
request,
error => {
console.log(`Pipeline errored: ${!!error}`);
}
);
body.end(); gives
This is the culprit: https://github.com/nodejs/node/pull/31940/files#diff-eefad5e8051f1634964a3847b691ff84R36 It calls |
@szmarczak Are you sure |
I am sure. I see you haven't looked at Got source code. Few people do. |
Waiting for:
|
Node's team have released a new version (13.11.0) today that may fix this issue. Depending of your download source for node and your os, the release may not be available right now. For example, the ubuntu version is not available at this instant from nodesource. |
Tests are still failing on Node.js 13.11.0. I'll look at this later today. |
Updating to Node.js v13.11.0 has fixed the issue for me! |
Glad to hear this! But the tests are still failing, so there's some fixing needed to be done. I haven't looked at this yet, need to get some sleep... |
Same for me, node v13.11.0 fixes this issue for my usages. |
It's the first time I use this library, I haven't used nodejs for a long time so it took me a long time to even get here, not to mention that I did not read got's source code... I'm using node v13.11.0 and the bug is still there for me. How can this happen on an LTS release? This is my code: async function() {
try {
const response = await got.post(API_URI + '/Account/token');
console.log("hello"); //never reached
}
catch (e) {
// never reached
}
} Is there any workaround? |
Nose.js v13.x is not an LTS branch. |
Can you provide a reproducible example ? Your use case is too imprecise. I use got and node (v13.11.0) intensively and I have no problem other than #1096 which is not node version related and is similar to yours. |
All works with node v13.12.0
async function test() {
try {
const response = await got.get('https://google.com');
console.log(response); // ok
}
catch (err) {
console.error(err);
}
} async function testError() {
try {
const response = await got.get('https://google1.com');
console.log(response);
}
catch (err) {
console.error(err); // ok
}
} |
As of Node.js |
Describe the bug
got.stream
does not work with Node.js ≥ 13.10.0. Node.js 13.9.0 works fine.Actual behavior
When piped into a stream, the receiving stream receives no data.
Expected behavior
When piped into a stream, the receiving stream receives the entire HTTP response.
Code to reproduce
With Node.js < 13.9.0, output fills the screen. With ≥ 13.10.0, there is no console output.
Checklist
The text was updated successfully, but these errors were encountered: