Skip to content

[BUG] node.js v20.16.0 has bugs connecting to some ipv4/6 irc server addresses #74

@yakau

Description

@yakau

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

I was having trouble connecting to a small number of my IRC networks (3 out of 17), including irc.libera.chat:6697 - it would sometimes connect, and usually reject. For Google's sake, the errors in various logs were:

NetTransport socketError()
NetTransport socketClose()
Socket closed. was_connected=false safely_registered=false requested_disconnect=false
AggregateError [ETIMEDOUT]
Error: connect ETIMEDOUT

Connection closed unexpectedly: Aggregate Error

TheLounge devs have seen this error before, and they gave me a ipv4-only Libera irc server address to test against (irc.ipv4.libera.chat:6697). That worked perfectly. IPv4-only server address is good. An IPv4/6 server address on same network is not connectable.

They link it to these two bugs in node.js v20.x nodejs/node#52075 and nodejs/node#47822

They recommended changing node.js to v18, 22, or 24.

I migrated from the LSIO image of TheLounge (node.js v20.16.0) to TL's official docker image (node.js v18.20.8) and all of my connection problems with those irc networks went away.

Can you please change your node.js version for your TheLounge to a non-v20?

Expected Behavior

I should be able to connect to irc.libera.chat:6697 every time. I could only connect 10% of the time. The other 2 irc networks I was having trouble with could never connect. 0% success rate.

Steps To Reproduce

  1. On ProxmoxVE 9.0.11 with an unprivileged Debian 13 LXC and then the lsio TheLounge docker container in the LXC
  2. The container is connected to a docker network with ipv6 disabled.
  3. IRC server address allows both ipv4 and ipv6 connections.

Environment

- OS: ProxmoxVE 9.0.11
- How docker service was installed: on Debian 13 LXC

CPU architecture

x86-64

Docker creation

I don't have the old yaml infront of me, but reconstructing it, it looked like this:

services:
  thelounge:
    image: lscr.io/linuxserver/thelounge:latest
    container_name: thelounge
    hostname: thelounge.internal
    networks:
      - rstlna
    ports:
      - 9000:9000
    environment:
      - PUID=${PUID}
      - PGID=${PGID}
      - TZ=${TZ}
    volumes:
      - /opt/appdata/thelounge/config:/config
    restart: unless-stopped

Container logs

[DEBUG] [redacted] Connection.setEncoding() encoding=utf8
[DEBUG] [redacted] NetTransport connect()
[DEBUG] [redacted] NetTransport disposeSocket() connected=false
[DEBUG] [redacted] NetTransport Connection.setEncoding() encoding=utf8
[DEBUG] [redacted] NetTransport Connecting socket..
[DEBUG] [redacted] NetTransport Socket created!
[DEBUG] [redacted] NetTransport socketError() 
[DEBUG] [redacted] NetTransport socketClose()
[DEBUG] [redacted] Socket closed. was_connected=false safely_registered=false requested_disconnect=false

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions