After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 662623 - connection failures on heavily loaded systems
connection failures on heavily loaded systems
Status: RESOLVED FIXED
Product: ORBit2
Classification: Deprecated
Component: general
unspecified
Other Linux
: Normal normal
: ---
Assigned To: ORBit maintainers
ORBit maintainers
Depends on:
Blocks:
 
 
Reported: 2011-10-24 16:16 UTC by Dan Winship
Modified: 2013-05-14 11:54 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Dan Winship 2011-10-24 16:16:49 UTC
from a downstream bug...

Apparently connect() on an AF_UNIX socket can return EAGAIN, if the server side of the socket has too much of un-accept()ed connections. This means that if you try to log in to a heavily-loaded machine, some clients may fail to connect to gconfd, because they're all trying to connect at once, and gconfd isn't getting enough cycles to accept all of them, and ORBit's connection code doesn't deal with EAGAIN.

The proposed patch downstream was:

+retry:
 	LINK_TEMP_FAILURE_RETRY_SOCKET (connect (fd, saddr, saddr_len), rv);
+	if (rv == -1L && errno == EAGAIN) {
+		g_usleep (10000);
+		goto retry;
+	}

(in linc2/src/linc-connection.c:link_connection_do_initiate)

given ORBit's deprecation, maybe it's not worth trying to come up with anything better? (This patch was verified to fix the original reporter's problems.)
Comment 1 Michael Meeks 2011-10-25 10:00:52 UTC
Hi Dan; sounds like you have a nicely loaded terminal server / SPICE farm: sexy :-) Of course I trust your work implicitly, commit what you like to ORBit2 - though if you want a release that is more difficult - I've rather lost track with that. Oh, and the patch looks good too.
Thanks !
Comment 2 Dan Winship 2011-10-25 12:38:02 UTC
Oh, it's not my patch. Some support guy wrote it. :)

I was mostly submitting it to see if you thought it was completely insane, and/or if you thought there was some better fix. I don't think it matters much if it gets committed to master... the problem only manifests if you have lots of clients connecting to the same server at once, and now that GConf uses D-Bus, I don't think that's really going to happen anywhere...

Feel free to (a) apply the patch, (b) close the bug as OBSOLETE, (c) leave the bug open in case anyone else runs into the problem.
Comment 3 Kjartan Maraas 2013-05-14 11:54:16 UTC
I commited the patch. Closing here.