Bug 1025765

Summary: EBADF from select() cause TransportExceptions in client
Product: [JBoss] JBoss Data Grid 6 Reporter: Radim Vansa <rvansa>
Component: CPP ClientAssignee: Tristan Tarrant <ttarrant>
Status: VERIFIED --- QA Contact: Alan Field <afield>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 6.2.0CC: mgencur, sjacobs
Target Milestone: CR2   
Target Release: 6.2.1   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Known Issue
Doc Text:
When more than several hundred Hot Rod client instances are created within a single process, TransportExceptions are thrown due to problems with connecting socket to the server. Mileage may vary depending on the OS configuration.
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Radim Vansa 2013-11-01 13:50:59 UTC
During stress testing, when about 200-300 clients per node are spawned, some of the sys::Socket::connect() attempts fail with TransportException.

This is preceded by the ::connect() call returning failing with EINPROGRESS, followed by ::select() failing with EBADF. However, even after the failure ::fnctl() reports the socket to be O_RDWR | O_NONBLOCK (as it should be) without error.

I had a suspicion that this may be related to the number of file descriptors, but ulimit -n shows that the limits are high above that.

Comment 2 Martin Gencur 2014-03-27 09:00:09 UTC
This was fixed a long time ago. Setting ON_QA

Comment 3 Alan Field 2014-03-31 14:45:40 UTC
Verified with JDG 6.2.1 CR3