Some strange disconnect error on Unreal running on windows..

These are old archives. They are kept for historic purposes only.
Post Reply
]Godlike[
Posts: 17
Joined: Sat Jan 15, 2005 10:27 pm

Some strange disconnect error on Unreal running on windows..

Post by ]Godlike[ »

It jst happens from time to time and alot of users get disconected at once or one by one. Error is "Operation would block". IRCD is running on windows xp sp2, and with ssl.

I have no ideer what this could be, it never happend when running ircd on linux, with same config ...

Somebody could explain me what this error means and if it can be fixed.


thx.
nate
Posts: 148
Joined: Fri Jul 29, 2005 10:12 am
Location: Johnstown, Pa
Contact:

Post by nate »

I'm not fully sure what the Operation would Block is, however that sounds like something which might be Firewall related, possibly even SP2 related, I personally don't use SP2, but i've heard horror storries about it and its networking aspect, especially with how many connections it permits regardless of some settings.

Does this happen everytime you start getting a certain amount of connections to that particular server, or just random?
]Godlike[
Posts: 17
Joined: Sat Jan 15, 2005 10:27 pm

Post by ]Godlike[ »

Hehe. I knew it is windows related and it`s stupid networking. The one leaf on linux works great, and the windows one is giving a minute based errors, and booting down users. :)

There is like 100+ connections on it, and then it cleans it down to few 10 :)

Then it just boots off a random number of users every few mins :) and so on ...

Getting me a big headache :)

Probably nothing to do about it, or am i wrong ?
Jason
Posts: 570
Joined: Mon Jun 14, 2004 5:09 pm

Post by Jason »

It doesnt seem to me to be a firewall issue. It looks like something was going on with blocking socket operations.

* Jason pokes around the source

This diagnosis of non-firewall issue is supported by the following GREP output on the IRCd's source:

Code: Select all

s_bsd.c:            WSAGetLastError() != WSAEWOULDBLOCK)
socket.c:               if (retval < 0 && (WSAGetLastError() == WSAEWOULDBLOCK ||
support.c: { WSAEWOULDBLOCK,        "Operation would block" },
AFAIK, it usually isnt so easy as a error code from a write? to determine that you were blocked by a firewall, and each firewall works differently. A firewall is more likely to return a peer, a ping, a i/o error, or something like that

It is a windows only problem though aparently: socket.c shows that the code throwing that error is windows only:

Code: Select all

# ifndef _WIN32
...
# else
                if (retval < 0 && (WSAGetLastError() == WSAEWOULDBLOCK ||
                    WSAGetLastError() == WSAENOBUFS))
# endif
NOTE: I am not a C coder, so I could be wrong, and cant tell much more about what was going on.
Why the hell can't my signature be empty?
"Your message contains too few characters."
Stealth
Head of Support
Posts: 2085
Joined: Tue Jun 15, 2004 8:50 pm
Location: Chino Hills, CA, US
Contact:

Post by Stealth »

Keep in mind that even though it is Windows XP, you might be running out of available sockets. Does this happe every time you reach a certain amount of users + unknown connections?

If this happens every time the server gets 100 connections, that may be the system limit. To fix this, you would put the maxclients settings in your class block to just below that number. (You need to allow a few sockets for unknown connections)
Post Reply