Skip to content

Setting large either sendBufferSize or recvBufferSize causes UDP socket throwing EINVAL #30486

@kienhg96

Description

@kienhg96

Version: Deno 2.4.5
OS: MacOS 14.4.1 Intel

I have tried an example of UDP sockets with large recvBufferSize and sendBufferSize like bellow:

import dgram from 'node:dgram';

const server = dgram.createSocket({
    type: 'udp4',
    reuseAddr: true,
    recvBufferSize: 4194304,
    sendBufferSize: 4194304,
});

server.bind(41234);

After running, the program threw this error:

error: Uncaught SystemError: Could not get or set buffer size: uv_recv_buffer_size returned EINVAL (invalid argument)
    at __node_internal_captureLargerStackTrace (ext:deno_node/internal/errors.ts:90:3)
    at new NodeSystemError (ext:deno_node/internal/errors.ts:321:5)
    at new ERR_SOCKET_BUFFER_SIZE (ext:deno_node/internal/errors.ts:1414:5)
    at bufferSize (node:dgram:730:11)
    at startListening (node:dgram:704:5)
    at node:dgram:279:7
    at Array.processTicksAndRejections (ext:deno_node/_next_tick.ts:39:15)
    at eventLoopTick (ext:core/01_core.js:176:29)

NodeJS does not throw this error with that code.

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions