znc socket read error. znc disconnects continously #791

Closed
opened 2026-10-05 04:44:33 +02:00 by adam · 8 comments
Owner

Hello,

my znc server disconnects quiete often since maybe a year, but since a few days it's disconnecting even more.

It seems to be an znc issue, because I run irssi on the same server where znc is running and irssi doesn't disconnect, only znc does.

znc -D output shows a "Read Error". Not sure if this is a socket bug or maybe IPV6 issue? My server isn't configured to work with ipv6


[2017-10-03 21:43:25.942264] (znc_admin_username/freenode) IRC -> ZNC [:tolkien.freenode.net 315 my_nickname ##fix_your_connection :End of /WHO list.]
[2017-10-03 21:43:25.942338] (znc_admin_username/freenode) ZNC -> CLI [:tolkien.freenode.net 315 my_nickname ##fix_your_connection :End of /WHO list.]
[2017-10-03 21:43:49.596587] (znc_admin_username/freenode) IRC -> ZNC [:my_nickname!~seven-ele@unaffiliated/my_nickname QUIT :Read error: Connection timed out]
[2017-10-03 21:43:49.596672] (znc_admin_username/freenode) ZNC -> CLI [:*status!znc@znc.in PRIVMSG my_nickname :You quit [Read error: Connection timed out]]
[2017-10-03 21:43:49.596835] (znc_admin_username/freenode) IRC -> ZNC [ERROR :Closing Link: unaffiliated/my_nickname (Read error: Connection timed out)]
[2017-10-03 21:43:49.596984] (znc_admin_username/freenode) ZNC -> CLI [:*status!znc@znc.in PRIVMSG my_nickname :Error from Server [Closing Link: unaffiliated/my_nickname (Read error: Connection timed out)]]
[2017-10-03 21:43:49.597331] IRC::znc_admin_username::freenode == Disconnected()
[2017-10-03 21:43:49.597367] (znc_admin_username/freenode) ZNC -> CLI [:*status!znc@znc.in PRIVMSG my_nickname :Disconnected from IRC. Reconnecting...]
[2017-10-03 21:43:49.597477] (znc_admin_username/freenode) ZNC -> CLI [:my_nickname!~my_nickname@my_hostname.com MODE my_nickname :-Zi]
[2017-10-03 21:43:49.597686] (znc_admin_username/freenode) ZNC -> IRC [QUIT :ZNC - http://znc.in]
[2017-10-03 21:43:49.598081] Connecting user/network [znc_admin_username/freenode]
[2017-10-03 21:43:49.598130] TDNS: initiating resolving of [chat.freenode.net] and bindhost []
[2017-10-03 21:43:49.598156] ConnectQueueTimer done
[2017-10-03 21:43:49.621535] TDNS: IRC::znc_admin_username::freenode, connecting to [2001:708:40:2001::f5ee:d0de] using bindhost []
[2017-10-03 21:43:49.621633] src/Csocket.cpp:1180 Connect Failed. ERRNO [101] FD [7]
[2017-10-03 21:43:49.621671] IRC::znc_admin_username::freenode == SockError(101 Network is unreachable)
[2017-10-03 21:43:49.621703] (znc_admin_username/freenode) ZNC -> CLI [:*status!znc@znc.in PRIVMSG my_nickname :Cannot connect to IRC (Network is unreachable). Retrying...]
[2017-10-03 21:44:19.744604] Connecting user/network [znc_admin_username/freenode]
[2017-10-03 21:44:19.744665] TDNS: initiating resolving of [chat.freenode.net] and bindhost []
[2017-10-03 21:44:19.744705] ConnectQueueTimer done
[2017-10-03 21:44:19.745495] TDNS: IRC::znc_admin_username::freenode, connecting to [2a02:2f0d:bff0:1:81:18:73:123] using bindhost []
[2017-10-03 21:44:19.745590] src/Csocket.cpp:1180 Connect Failed. ERRNO [101] FD [7]
[2017-10-03 21:44:19.745619] IRC::znc_admin_username::freenode == SockError(101 Network is unreachable)
[2017-10-03 21:44:19.745642] (znc_admin_username/freenode) ZNC -> CLI [:*status!znc@znc.in PRIVMSG my_nickname :Cannot connect to IRC (Network is unreachable). Retrying...]
[2017-10-03 21:44:25.675262] (znc_admin_username/freenode) CLI -> ZNC [WHO ##fix_your_connection %chtsunfra,152]
[2017-10-03 21:44:49.868478] Connecting user/network [znc_admin_username/freenode]
[2017-10-03 21:44:49.868534] TDNS: initiating resolving of [chat.freenode.net] and bindhost []
[2017-10-03 21:44:49.868561] ConnectQueueTimer done
[2017-10-03 21:44:49.869294] TDNS: IRC::znc_admin_username::freenode, connecting to [2a02:2f0d:bff0:1:81:18:73:123] using bindhost []
[2017-10-03 21:44:49.869388] src/Csocket.cpp:1180 Connect Failed. ERRNO [101] FD [7]
[2017-10-03 21:44:49.869417] IRC::znc_admin_username::freenode == SockError(101 Network is unreachable)
[2017-10-03 21:44:49.869442] (znc_admin_username/freenode) ZNC -> CLI [:*status!znc@znc.in PRIVMSG my_nickname :Cannot connect to IRC (Network is unreachable). Retrying...]


Hello, my znc server disconnects quiete often since maybe a year, but since a few days it's disconnecting even more. It seems to be an znc issue, because I run irssi on the same server where znc is running and irssi doesn't disconnect, only znc does. `znc -D` output shows a "Read Error". Not sure if this is a socket bug or maybe IPV6 issue? My server isn't configured to work with ipv6 ``` [2017-10-03 21:43:25.942264] (znc_admin_username/freenode) IRC -> ZNC [:tolkien.freenode.net 315 my_nickname ##fix_your_connection :End of /WHO list.] [2017-10-03 21:43:25.942338] (znc_admin_username/freenode) ZNC -> CLI [:tolkien.freenode.net 315 my_nickname ##fix_your_connection :End of /WHO list.] [2017-10-03 21:43:49.596587] (znc_admin_username/freenode) IRC -> ZNC [:my_nickname!~seven-ele@unaffiliated/my_nickname QUIT :Read error: Connection timed out] [2017-10-03 21:43:49.596672] (znc_admin_username/freenode) ZNC -> CLI [:*status!znc@znc.in PRIVMSG my_nickname :You quit [Read error: Connection timed out]] [2017-10-03 21:43:49.596835] (znc_admin_username/freenode) IRC -> ZNC [ERROR :Closing Link: unaffiliated/my_nickname (Read error: Connection timed out)] [2017-10-03 21:43:49.596984] (znc_admin_username/freenode) ZNC -> CLI [:*status!znc@znc.in PRIVMSG my_nickname :Error from Server [Closing Link: unaffiliated/my_nickname (Read error: Connection timed out)]] [2017-10-03 21:43:49.597331] IRC::znc_admin_username::freenode == Disconnected() [2017-10-03 21:43:49.597367] (znc_admin_username/freenode) ZNC -> CLI [:*status!znc@znc.in PRIVMSG my_nickname :Disconnected from IRC. Reconnecting...] [2017-10-03 21:43:49.597477] (znc_admin_username/freenode) ZNC -> CLI [:my_nickname!~my_nickname@my_hostname.com MODE my_nickname :-Zi] [2017-10-03 21:43:49.597686] (znc_admin_username/freenode) ZNC -> IRC [QUIT :ZNC - http://znc.in] [2017-10-03 21:43:49.598081] Connecting user/network [znc_admin_username/freenode] [2017-10-03 21:43:49.598130] TDNS: initiating resolving of [chat.freenode.net] and bindhost [] [2017-10-03 21:43:49.598156] ConnectQueueTimer done [2017-10-03 21:43:49.621535] TDNS: IRC::znc_admin_username::freenode, connecting to [2001:708:40:2001::f5ee:d0de] using bindhost [] [2017-10-03 21:43:49.621633] src/Csocket.cpp:1180 Connect Failed. ERRNO [101] FD [7] [2017-10-03 21:43:49.621671] IRC::znc_admin_username::freenode == SockError(101 Network is unreachable) [2017-10-03 21:43:49.621703] (znc_admin_username/freenode) ZNC -> CLI [:*status!znc@znc.in PRIVMSG my_nickname :Cannot connect to IRC (Network is unreachable). Retrying...] [2017-10-03 21:44:19.744604] Connecting user/network [znc_admin_username/freenode] [2017-10-03 21:44:19.744665] TDNS: initiating resolving of [chat.freenode.net] and bindhost [] [2017-10-03 21:44:19.744705] ConnectQueueTimer done [2017-10-03 21:44:19.745495] TDNS: IRC::znc_admin_username::freenode, connecting to [2a02:2f0d:bff0:1:81:18:73:123] using bindhost [] [2017-10-03 21:44:19.745590] src/Csocket.cpp:1180 Connect Failed. ERRNO [101] FD [7] [2017-10-03 21:44:19.745619] IRC::znc_admin_username::freenode == SockError(101 Network is unreachable) [2017-10-03 21:44:19.745642] (znc_admin_username/freenode) ZNC -> CLI [:*status!znc@znc.in PRIVMSG my_nickname :Cannot connect to IRC (Network is unreachable). Retrying...] [2017-10-03 21:44:25.675262] (znc_admin_username/freenode) CLI -> ZNC [WHO ##fix_your_connection %chtsunfra,152] [2017-10-03 21:44:49.868478] Connecting user/network [znc_admin_username/freenode] [2017-10-03 21:44:49.868534] TDNS: initiating resolving of [chat.freenode.net] and bindhost [] [2017-10-03 21:44:49.868561] ConnectQueueTimer done [2017-10-03 21:44:49.869294] TDNS: IRC::znc_admin_username::freenode, connecting to [2a02:2f0d:bff0:1:81:18:73:123] using bindhost [] [2017-10-03 21:44:49.869388] src/Csocket.cpp:1180 Connect Failed. ERRNO [101] FD [7] [2017-10-03 21:44:49.869417] IRC::znc_admin_username::freenode == SockError(101 Network is unreachable) [2017-10-03 21:44:49.869442] (znc_admin_username/freenode) ZNC -> CLI [:*status!znc@znc.in PRIVMSG my_nickname :Cannot connect to IRC (Network is unreachable). Retrying...] ``` <!-- github-sync-id:262566249 -->
adam closed this issue 2026-10-05 04:44:33 +02:00
Author
Owner
  1. Are you behind NAT? If so, this is fixed in 1.7 (git)
  2. Even though your server isn't configured to work with IPv6, it tells ZNC that it has a working IPv6, which causes ZNC to connect not only via IPv4, but also via non-working IPv6. How exactly is IPv6 configured (or rather, not configured)?
1. Are you behind NAT? If so, this is fixed in 1.7 (git) 2. Even though your server isn't configured to work with IPv6, it tells ZNC that it has a working IPv6, which causes ZNC to connect not only via IPv4, but also via non-working IPv6. How exactly is IPv6 configured (or rather, not configured)? <!-- github-comment-id:334040706 -->
Author
Owner
  1. Yes, I'm behind my ISP NAT router. I'll try 1.7 (dev-version) from git.
  2. IPV6 was enabled in the kernel settings, so znc thought I've a working IPV6. I disabled it now in the kernel settings and the IPV6 error is gone.

After disableing IPV6 it still disconnected, so I should try 1.7 as you suggested. It's related to this bug I reckon https://github.com/znc/znc/issues/487.

So it disconnects when ZNC tries to ping itself. See:


[2017-10-04 06:16:53.157760] (znc-admin-username/freenode) IRC -> ZNC [:hcpl!~hcpl@185.12.8.13 JOIN ##fix_your_connection]
[2017-10-04 06:18:09.311190] (znc-admin-username/freenode) IRC -> ZNC [PING :tolkien.freenode.net]
[2017-10-04 06:18:09.311252] (znc-admin-username/freenode) ZNC -> IRC [PONG :tolkien.freenode.net]
[2017-10-04 06:20:17.311341] (znc-admin-username/freenode) IRC -> ZNC [PING :tolkien.freenode.net]
[2017-10-04 06:20:17.311403] (znc-admin-username/freenode) ZNC -> IRC [PONG :tolkien.freenode.net]
**[2017-10-04 06:25:07.331939] (znc-admin-username/freenode) ZNC -> IRC [PING :ZNC]**
[2017-10-04 06:25:07.464493] IRC::znc-admin-username::freenode == SockError(104 Connection reset by peer)
[2017-10-04 06:25:07.464745] IRC::znc-admin-username::freenode == Disconnected()
[2017-10-04 06:25:07.464851] (znc-admin-username/freenode) ZNC -> IRC [QUIT :ZNC - http://znc.in]
[2017-10-04 06:25:07.465107] Connecting user/network [znc-admin-username/freenode]
[2017-10-04 06:25:07.465145] TDNS: initiating resolving of [chat.freenode.net] and bindhost []
[2017-10-04 06:25:07.465182] ConnectQueueTimer done
[2017-10-04 06:25:07.544931] TDNS: IRC::znc-admin-username::freenode, connecting to [71.11.84.232] using bindhost []
[2017-10-04 06:25:07.677441] IRC::znc-admin-username::freenode == Connected()
[2017-10-04 06:25:07.677505] (znc-admin-username/freenode) ZNC -> IRC [CAP LS]
[2017-10-04 06:25:07.677551] (znc-admin-username/freenode) ZNC -> IRC [NICK my-irc-username]
[2017-10-04 06:25:07.677586] (znc-admin-username/freenode) ZNC -> IRC [USER my-irc-username "my-irc-username" "my-irc-username" : ]
[2017-10-04 06:25:07.991032] SSLVerifyHost: checking chat.freenode.net
[2017-10-04 06:25:07.991149] SSLVerifyHost: Found SAN chat.au.freenode.com
[2017-10-04 06:25:07.991177] SSLVerifyHost: Found SAN chat.au.freenode.net
1. Yes, I'm behind my ISP NAT router. I'll try 1.7 (dev-version) from git. 2. IPV6 was enabled in the kernel settings, so znc thought I've a working IPV6. I disabled it now in the kernel settings and the IPV6 error is gone. After disableing IPV6 it still disconnected, so I should try 1.7 as you suggested. It's related to this bug I reckon https://github.com/znc/znc/issues/487. So it disconnects when ZNC tries to ping itself. See: ``` [2017-10-04 06:16:53.157760] (znc-admin-username/freenode) IRC -> ZNC [:hcpl!~hcpl@185.12.8.13 JOIN ##fix_your_connection] [2017-10-04 06:18:09.311190] (znc-admin-username/freenode) IRC -> ZNC [PING :tolkien.freenode.net] [2017-10-04 06:18:09.311252] (znc-admin-username/freenode) ZNC -> IRC [PONG :tolkien.freenode.net] [2017-10-04 06:20:17.311341] (znc-admin-username/freenode) IRC -> ZNC [PING :tolkien.freenode.net] [2017-10-04 06:20:17.311403] (znc-admin-username/freenode) ZNC -> IRC [PONG :tolkien.freenode.net] **[2017-10-04 06:25:07.331939] (znc-admin-username/freenode) ZNC -> IRC [PING :ZNC]** [2017-10-04 06:25:07.464493] IRC::znc-admin-username::freenode == SockError(104 Connection reset by peer) [2017-10-04 06:25:07.464745] IRC::znc-admin-username::freenode == Disconnected() [2017-10-04 06:25:07.464851] (znc-admin-username/freenode) ZNC -> IRC [QUIT :ZNC - http://znc.in] [2017-10-04 06:25:07.465107] Connecting user/network [znc-admin-username/freenode] [2017-10-04 06:25:07.465145] TDNS: initiating resolving of [chat.freenode.net] and bindhost [] [2017-10-04 06:25:07.465182] ConnectQueueTimer done [2017-10-04 06:25:07.544931] TDNS: IRC::znc-admin-username::freenode, connecting to [71.11.84.232] using bindhost [] [2017-10-04 06:25:07.677441] IRC::znc-admin-username::freenode == Connected() [2017-10-04 06:25:07.677505] (znc-admin-username/freenode) ZNC -> IRC [CAP LS] [2017-10-04 06:25:07.677551] (znc-admin-username/freenode) ZNC -> IRC [NICK my-irc-username] [2017-10-04 06:25:07.677586] (znc-admin-username/freenode) ZNC -> IRC [USER my-irc-username "my-irc-username" "my-irc-username" : ] [2017-10-04 06:25:07.991032] SSLVerifyHost: checking chat.freenode.net [2017-10-04 06:25:07.991149] SSLVerifyHost: Found SAN chat.au.freenode.com [2017-10-04 06:25:07.991177] SSLVerifyHost: Found SAN chat.au.freenode.net ``` <!-- github-comment-id:334054139 -->
Author
Owner
[2017-10-03 21:43:49.596587] (znc_admin_username/freenode) IRC -> ZNC [:my_nickname!~seven-ele@unaffiliated/my_nickname QUIT :Read error: Connection timed out]
[2017-10-03 21:43:49.596672] (znc_admin_username/freenode) ZNC -> CLI [:*status!znc@znc.in PRIVMSG my_nickname :You quit [Read error: Connection timed out]]
[2017-10-03 21:43:49.596835] (znc_admin_username/freenode) IRC -> ZNC [ERROR :Closing Link: unaffiliated/my_nickname (Read error: Connection timed out)]
[2017-10-03 21:43:49.596984] (znc_admin_username/freenode) ZNC -> CLI [:*status!znc@znc.in PRIVMSG my_nickname :Error from Server [Closing Link: unaffiliated/my_nickname (Read error: Connection timed out)]]
[2017-10-03 21:43:49.597331] IRC::znc_admin_username::freenode == Disconnected()

This "read error: connection timed out" comes from the IRC server. That's not ZNC's doing. Why it is doing this, I have no idea. Shouldn't it have sent a PING before?
Anyway, the IRC server is disconnecting ZNC, not ZNC is doing something.

[2017-10-04 06:20:17.311341] (znc-admin-username/freenode) IRC -> ZNC [PING :tolkien.freenode.net]
[2017-10-04 06:20:17.311403] (znc-admin-username/freenode) ZNC -> IRC [PONG :tolkien.freenode.net]
**[2017-10-04 06:25:07.331939] (znc-admin-username/freenode) ZNC -> IRC [PING :ZNC]**
[2017-10-04 06:25:07.464493] IRC::znc-admin-username::freenode == SockError(104 Connection reset by peer)
[2017-10-04 06:25:07.464745] IRC::znc-admin-username::freenode == Disconnected()

This looks more like a NAT. So at 6:20 the connection still works and ZNC replies to a PING from tolkien. But five minutes later, ZNC tries to send a PING to tolkien and the kernel tells ZNC that the other end reset the connection (tcp packet with the RST flag set). So... something went wrong in this time frame? The other end thought it already closed the connection and hence is confused about the PING and sends a RST?

``` [2017-10-03 21:43:49.596587] (znc_admin_username/freenode) IRC -> ZNC [:my_nickname!~seven-ele@unaffiliated/my_nickname QUIT :Read error: Connection timed out] [2017-10-03 21:43:49.596672] (znc_admin_username/freenode) ZNC -> CLI [:*status!znc@znc.in PRIVMSG my_nickname :You quit [Read error: Connection timed out]] [2017-10-03 21:43:49.596835] (znc_admin_username/freenode) IRC -> ZNC [ERROR :Closing Link: unaffiliated/my_nickname (Read error: Connection timed out)] [2017-10-03 21:43:49.596984] (znc_admin_username/freenode) ZNC -> CLI [:*status!znc@znc.in PRIVMSG my_nickname :Error from Server [Closing Link: unaffiliated/my_nickname (Read error: Connection timed out)]] [2017-10-03 21:43:49.597331] IRC::znc_admin_username::freenode == Disconnected() ``` This "read error: connection timed out" comes from the IRC server. That's not ZNC's doing. Why it is doing this, I have no idea. Shouldn't it have sent a PING before? Anyway, the IRC server is disconnecting ZNC, not ZNC is doing something. ``` [2017-10-04 06:20:17.311341] (znc-admin-username/freenode) IRC -> ZNC [PING :tolkien.freenode.net] [2017-10-04 06:20:17.311403] (znc-admin-username/freenode) ZNC -> IRC [PONG :tolkien.freenode.net] **[2017-10-04 06:25:07.331939] (znc-admin-username/freenode) ZNC -> IRC [PING :ZNC]** [2017-10-04 06:25:07.464493] IRC::znc-admin-username::freenode == SockError(104 Connection reset by peer) [2017-10-04 06:25:07.464745] IRC::znc-admin-username::freenode == Disconnected() ``` This looks more like a NAT. So at 6:20 the connection still works and ZNC replies to a PING from tolkien. But five minutes later, ZNC tries to send a PING to tolkien and the kernel tells ZNC that the other end reset the connection (tcp packet with the RST flag set). So... something went wrong in this time frame? The other end thought it already closed the connection and hence is confused about the PING and sends a RST? <!-- github-comment-id:334063006 -->
Author
Owner

Using the latest github version of znc fixed it for me. Not sure why not more people are affected. Maybe this bug only occures when several scenarios are met. I'm using ubuntu 16.0.4.3. Closing this issue, because the new release has the fix.

Using the latest github version of znc fixed it for me. Not sure why not more people are affected. Maybe this bug only occures when several scenarios are met. I'm using ubuntu 16.0.4.3. Closing this issue, because the new release has the fix. <!-- github-comment-id:334913510 -->
Author
Owner

Not sure why not more people are affected. Maybe this bug only occures when several scenarios are met.

Not many people put their ZNC behind NAT.

> Not sure why not more people are affected. Maybe this bug only occures when several scenarios are met. Not many people put their ZNC behind NAT. <!-- github-comment-id:334914595 -->
Author
Owner

the latest release znc-1.6.5 still has that issue for me, and master does not compile. which version did you use @eayin2 ?

the latest release znc-1.6.5 still has that issue for me, and master does not compile. which version did you use @eayin2 ? <!-- github-comment-id:339250401 -->
Author
Owner

@aep I used the master, that is git clone https://github.com/znc/znc.git

@aep I used the master, that is `git clone https://github.com/znc/znc.git` <!-- github-comment-id:339288693 -->
Author
Owner
@aep Master is tested on Travis https://travis-ci.org/znc/znc/builds/291293044?utm_source=github_status&utm_medium=notification, Jenkins https://jenkins.znc.in/job/znc/job/znc/job/master/39/, and https://ci.appveyor.com/project/DarthGandalf/znc/build/0.0.0.0.1-branch-master-build-1000. The AppVeyor build failed for some non-znc-related reason and the other two succeeded. <!-- github-comment-id:339296899 -->
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: adam/znc#791