Indeed, something is amiss. I checked the code. As Brian points out, the "memory" error is misleading and we will substitute something better. Indeed, the error is that the incoming file descriptor is still assigned to an existing socket. The code doesn't appear to have any race conditions. There are two "close socket" paths but both appear to hold on to the file descriptor while the file descriptor is unassigned and only then closes the socket to free up the file descriptor. So, the question is why is accept() returning a file descriptor that is ostensibly still in use.

Still outstanding: a) what version of xrootd are you using? b) could you provide access to the config file (likely a bad idea to post it here), c) what is the file descriptor limit for the process, d) is this running in a container, vm, or bare hardware? We really need this information to start diagnosing the issue and will likely have follow-up questions.


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

[ { "@context": "http://schema.org", "@type": "EmailMessage", "potentialAction": { "@type": "ViewAction", "target": "https://github.com/xrootd/xrootd/issues/1266#issuecomment-666797178", "url": "https://github.com/xrootd/xrootd/issues/1266#issuecomment-666797178", "name": "View Issue" }, "description": "View this Issue on GitHub", "publisher": { "@type": "Organization", "name": "GitHub", "url": "https://github.com" } } ]

Use REPLY-ALL to reply to list

To unsubscribe from the XROOTD-DEV list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-DEV&A=1