Periodical "Connection reset by peer"

These are old archives. They are kept for historic purposes only.
Post Reply
Rhino Cracker
Posts: 6
Joined: Wed Apr 23, 2014 10:37 am

Periodical "Connection reset by peer"

Post by Rhino Cracker »

This is my first post in this forum, so: Hi everyone!

I have a problem with my UnrealIrcD 3.2.10.2.
I think it is related to Ping timeouts every 10 mins or so.

I've set it up on my home PC (which has a pretty good connection for a home line, 100MBit/s down, 5MBit/s up) and everything works fine excepting for 2 of 10 clients connecting.
2 of my Users are disconnecting very periodically, one of them every 7 minutes, the other one every 9 minutes, but only when they are idling!
The disconnected user sees "*10* Software caused connection abort*" while th other users see "*(Connection reset by peer)".

They are the only users who have problems, so it made me think it's a problem on their side.
I'm the only "server" they have problems with, so it made me think it's a problem on my side. :)
This is how it looks like:

Code: Select all

[23:12:03] * user1 (user1@provider1) Quit (Connection reset by peer)
[23:13:50] * user1 (user1@provider1) has joined #test
[23:20:48] * user1 (user1@provider1) Quit (Connection reset by peer)
[23:21:41] * user1 (user1@provider1) has joined #test
[23:28:42] * user1 (user1@provider1) Quit (Connection reset by peer)
[23:29:37] * user1 (user1@provider1) has joined #test
[23:36:41] * user1 (user1@provider1) Quit (Connection reset by peer)
[23:37:28] * user1 (user1@provider1) has joined #test
[23:44:30] * user1 (user1@provider1) Quit (Connection reset by peer)
[23:45:21] * user1 (user1@provider1) has joined #test
[23:52:20] * user1 (user1@provider1) Quit (Connection reset by peer)
[23:53:13] * user1 (user1@provider1) has joined #test
[00:00:12] * user1 (user1@provider1) Quit (Connection reset by peer)
[00:01:05] * user1 (user1@provider1) has joined #test
[00:07:51] * user1 (user1@provider1) Quit (Connection reset by peer)
[00:08:20] * user1 (user1@provider1) has joined #test
[00:15:23] * user1 (user1@provider1) Quit (Connection reset by peer)
[00:16:15] * user1 (user1@provider1) has joined #test
[00:39:35] * user1 (user1@provider1) Quit (Connection reset by peer)
[00:40:02] * user1 (user1@provider1) has joined #test
[00:47:03] * user1 (user1@provider1) Quit (Connection reset by peer)
[00:47:57] * user1 (user1@provider1) has joined #test
[01:11:13] * user1 (user1@provider1) Quit (Connection reset by peer)
[01:12:07] * user1 (user1@provider1) has joined #test
[01:19:06] * user1 (user1@provider1) Quit (Connection reset by peer)
[01:19:59] * user1 (user1@provider1) has joined #test
[01:46:51] * user1 (user1@provider1) Quit (Connection reset by peer)
[01:47:43] * user1 (user1@provider1) has joined #test
[01:54:46] * user1 (user1@provider1) Quit (Connection reset by peer)
[01:55:38] * user1 (user1@provider1) has joined #test
[02:02:37] * user1 (user1@provider1) Quit (Connection reset by peer)
[02:03:29] * user1 (user1@provider1) has joined #test
[02:10:33] * user1 (user1@provider1) Quit (Connection reset by peer)
[02:11:19] * user1 (user1@provider1) has joined #test
[02:18:22] * user1 (user1@provider1) Quit (Connection reset by peer)
[02:19:14] * user1 (user1@provider1) has joined #test
[02:26:07] * user1 (user1@provider1) Quit (Connection reset by peer)
[02:27:01] * user1 (user1@provider1) has joined #test
[02:48:27] * user1 (user1@provider1) Quit (Connection reset by peer)
[02:49:22] * user1 (user1@provider1) has joined #test
[02:56:03] * user1 (user1@provider1) Quit (Connection reset by peer)
[02:56:34] * user1 (user1@provider1) has joined #test
[03:03:34] * user1 (user1@provider1) Quit (Connection reset by peer)
[03:04:27] * user1 (user1@provider1) has joined #test
[03:11:18] * user1 (user1@provider1) Quit (Connection reset by peer)
[03:12:13] * user1 (user1@provider1) has joined #test
[03:19:13] * user1 (user1@provider1) Quit (Connection reset by peer)
[03:20:02] * user1 (user1@provider1) has joined #test
[03:26:44] * user1 (user1@provider1) Quit (Connection reset by peer)
[03:27:20] * user1 (user1@provider1) has joined #test
[03:50:19] * user1 (user1@provider1) Quit (Connection reset by peer)
[03:50:47] * user1 (user1@provider1) has joined #test
[03:57:47] * user1 (user1@provider1) Quit (Connection reset by peer)
[03:58:35] * user1 (user1@provider1) has joined #test
[04:05:28] * user1 (user1@provider1) Quit (Connection reset by peer)
[04:06:21] * user1 (user1@provider1) has joined #test
[04:13:17] * user1 (user1@provider1) Quit (Connection reset by peer)
[04:14:10] * user1 (user1@provider1) has joined #test
[04:21:11] * user1 (user1@provider1) Quit (Connection reset by peer)
[04:21:58] * user1 (user1@provider1) has joined #test
[04:32:10] * user1 (user1@provider1) Quit (Connection reset by peer)
[04:33:01] * user1 (user1@provider1) has joined #test
[04:40:04] * user1 (user1@provider1) Quit (Connection reset by peer)
[04:40:57] * user1 (user1@provider1) has joined #test
[05:04:35] * user1 (user1@provider1) Quit (Connection reset by peer)
[05:05:26] * user1 (user1@provider1) has joined #test
[05:32:15] * user1 (user1@provider1) Quit (Connection reset by peer)
[05:33:02] * user1 (user1@provider1) has joined #test
[05:40:02] * user1 (user1@provider1) Quit (Connection reset by peer)
[05:40:55] * user1 (user1@provider1) has joined #test
[05:47:54] * user1 (user1@provider1) Quit (Connection reset by peer)
[05:48:47] * user1 (user1@provider1) has joined #test
[06:28:31] * user1 (user1@provider1) Quit (Connection reset by peer)
[06:29:24] * user1 (user1@provider1) has joined #test
[06:36:24] * user1 (user1@provider1) Quit (Connection reset by peer)
[06:37:18] * user1 (user1@provider1) has joined #test
[07:50:21] * user1 (user1@provider1) Quit (Connection reset by peer)
[07:51:13] * user1 (user1@provider1) has joined #test
[07:58:21] * user1 (user1@provider1) Quit (Connection reset by peer)
[07:59:07] * user1 (user1@provider1) has joined #test
[08:06:07] * user1 (user1@provider1) Quit (Connection reset by peer)
[08:07:01] * user1 (user1@provider1) has joined #test
[08:17:39] * user1 (user1@provider1) Quit (Connection reset by peer)
[09:25:42] * user1 (user1@provider1) has joined #test
Please notice that there were 4 other users connected durin that time, 2 from LAN, 2 from WAN, one of them with a BNC.
No one of them had a single disconnect.

For one of the clients, I've found a work-around: If he periodically sends an unknown raw command to the server, which it replies by "unklnown command <command>", the disconnects stopped for him.
He managed this by .timerLag -io 0 10 .scid -at1 .lagtime. $!+ $!ticks (in an mrc script), which sends ".lagtime.<cpu-ticks>" to the server and could hide the server-replies by raw 421:*:/halt.
It also prevents him from disconnecting, when I use /ctcp <user> PING every few seconds/minutes.

For the other client, /ctcp <user> PING wasn't enough, it seemed like I needed to do something that triggers a reply by his client, so /ctcp <user> version did the job. (He didn't test the lagtime-timer yet).
At first it seemed like this worked, but now he's disconnecting again, but not so periodically:

Code: Select all

[02:50:01] * user2 (ident2@provider2) Quit (Connection reset by peer)
[02:56:58] * user2 (ident2@provider2) has joined #test
[11:30:02] * user2 (ident2@provider2) Quit (Connection reset by peer)
[11:37:07] * user2 (ident2@provider2) has joined #test
[12:50:02] * user2 (ident2@provider2) Quit (Connection reset by peer)
[12:57:06] * user2 (ident2@provider2) has joined #test
[13:50:09] * user2 (ident2@provider2) Quit (Connection reset by peer)
[13:56:57] * user2 (ident2@provider2) has joined #test
[15:00:16] * user2 (ident2@provider2) Quit (Connection reset by peer)
[15:07:00] * user2 (ident2@provider2) has joined #test
I've already tried to ping user1's IP to see if there are any packet drops --> not a single one.
Stealth
Head of Support
Posts: 2085
Joined: Tue Jun 15, 2004 8:50 pm
Location: Chino Hills, CA, US
Contact:

Re: Periodical "Connection reset by peer"

Post by Stealth »

There are many things that could be happening here, and being just a couple users this is happening to it is likely something with those users connection or network hardware. The following come to mind off the top of my head:
  • The user's router disconnects idle connections after X minutes - in this case the router is not detecting an IRC PING as enough information transfer to keep the connection alive. You may not see the same interval because the IRCd will time the user out using pingfreq x 2 + 1, so the IRCd is receiving the ping data, but the router is still disconnecting in such a case.
  • There is something going on with that particular computer's connection on this user's internal network to the router. You can send ICMP PING requests all day long, but the router is responding rather than the computer and you'll most likely always receive a reply. A problem with the user's LAN will not result in lost information in this case.
  • There could be a firewall on the user's computer doing the same as the first thing I mentioned.
  • mIRC could be sucking. Try a different client.
  • If the user is using a wireless internet connection there could be almost anything causing the signal to drop out periodically causing disconnections (solar flares, clouds, lack of clouds, ghosts, radiation, alien communications, people moving, cell phone activity, sun spots, etc). Try a hard wired network connection.
I am fairly certain it would be the first thing I mentioned, where there is simply not enough information being transferred for the router(s) to care to keep the connection open. There are so many things that could be going wrong (or right, depending on settings in various places) that it will be impossible to pinpoint without being on the user's network. I would suggest contacting a network professional that could run an analysis on the user networks and correct any issues.
Post Reply