Skip to content

possible libuv issue with macos 10.15: empty udp message not registering #30030

Closed
@daviehh

Description

@daviehh
  • Version:
    v12.12.0
  • Platform:
    macos catalina/10.15 (19A602)
  • Subsystem:
    n/a

When sending an empty udp message, the message will not be received until another non-empty udp message is received.

Example/Reproduce: (may only affect macos 10.15?)

file server.js

var PORT = 33333;
var HOST = '127.0.0.1';

var dgram = require('dgram');
var server = dgram.createSocket('udp4');

server.on('listening', function() {
  var address = server.address();
 console.log('UDP Server listening on ' + address.address + ':' + address.port);
});

server.on('message', function(message, remote) {
 console.log(remote.address + ':' + remote.port +' - ' + message);
});

server.bind(PORT, HOST);

file client_test.js

var PORT = 33333;
var HOST = '127.0.0.1';

var dgram = require('dgram');


var client = dgram.createSocket('udp4');
var message = Buffer.from('abc');

client.send(message, 0, message.length, PORT, HOST, function(err, bytes) {
  if (err) throw err;
  console.log('UDP message sent to ' + HOST +':'+ PORT);
  client.close();
});

file client_0.js

var PORT = 33333;
var HOST = '127.0.0.1';

var dgram = require('dgram');


var client = dgram.createSocket('udp4');
var message = Buffer.from('');

client.send(message, 0, message.length, PORT, HOST, function(err, bytes) {
  if (err) throw err;
  console.log('UDP message sent to ' + HOST +':'+ PORT);
  client.close();
});

run the server code, then run the client_0.js: no response in server.
followed by running client_test.js: server got empty and the "abc" message.

Metadata

Metadata

Assignees

No one assigned

    Labels

    confirmed-bugIssues with confirmed bugs.dgramIssues and PRs related to the dgram subsystem / UDP.macosIssues and PRs related to the macOS platform / OSX.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions