Skip to content

No end event is emitted when aborting http/https request #31630

@masnagam

Description

@masnagam
  • Version: v13.7.0
  • Platform:
    • Linux (node Docker container running on macOS)
    • macOS Catalina 10.15.3 (Darwin Kernel Version 19.3.0)
  • Subsystem: http, https

I'm not sure if this is intended, but I found a difference between v12 and v13 regarding the end event.

// test.js
'use strict';

// The same issue occurs with `http`, too.
const https = require('https');

const req = https.request('https://nodejs.org/dist/v13.7.0/node-v13.7.0.tar.gz');
req.on('response', (res) => {
  res
    .on('end', () => console.log('end'))
    .on('close', () => console.log('close'))
    .on('aborted', () => console.log('aborted'))
    .on('error', (err) => console.log(err));

  setTimeout(() => {
    console.log('abort');
    req.abort();
  }, 500);
});
req.end();

Node.js v12:

$ docker run --rm -it node:12-buster-slim -v
v12.14.1

$ docker run --rm -it -v $(pwd)/test.js:/test.js node:12-buster-slim test.js
abort
aborted
end
close

Node.js v13:

$ docker run --rm -it -v $(pwd)/test.js:/test.js node:13-buster-slim -v
v13.7.0

$ docker run --rm -it -v $(pwd)/test.js:/test.js node:13-buster-slim test.js
abort
aborted
close

This issue might be related to:

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions