Skip to content

AbortSignal.timeout does nothing in fetch when the host drops all packets #18536

@uxmaster

Description

@uxmaster

What version of Bun is running?

1.2.7+5c0fa6dc2

What platform is your computer?

Darwin 24.3.0 x86_64 i386

What steps can reproduce the bug?

const timeout = setTimeout(() => {
        console.error('Signal failed!');
        process.exit();
}, 2e3);

try {
        console.log(await fetch('http://github.com:4567', { signal: AbortSignal.timeout(1e3) }));
}
catch (e) {
        clearTimeout(timeout);
        if (e.name === 'TimeoutError') console.log('Signal worked!');
        else console.error(e);
}

What is the expected behavior?

Output Signal worked! after 1 second.

What do you see instead?

Output Signal failed! after 2 seconds.

Additional information

I get the same behavior on Linux 5.15.0-135-generic x86_64 x86_64.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions