Threads are blocked by 'DualStackPlainSocketImpl.waitForConnect'

bomkang April 19, 2021

Hi, When the method 'DualStackPlainSocketImpl.waitForConnect' is running all the time, more and more threads('ldap.pool.Connections.get') will become blocked, and it will fill up all threads for a long time. If it is not released , it will cause Jira service hang up. Only when this method is finished can the block be released. Where is the timeout of socket connection set? Does this happen because timeout is set to null? 

Any advice would be appreciated!

 

Environment: Jira Data Centre 7.13, Windows Server 2012

User Directories: Microsoft Active Directory 

Directory configuration summary:

"ldap.connection.timeout": "30000"
"ldap.external.id": "objectGUID"
"ldap.filter.expiredUsers": "false"
"ldap.group.description": "description"
"ldap.group.dn": ""
"ldap.group.filter": "(objectCategory=noGroup)"
"ldap.group.name": "cn"
"ldap.group.objectclass": "group"
"ldap.group.usernames": "member"
"ldap.local.groups": "true"
"ldap.nestedgroups.disabled": "true"
"ldap.pagedresults": "true"
"ldap.pagedresults.size": "1000"
"ldap.password": ********
"ldap.pool.initsize": "null"
"ldap.pool.maxsize": "null"
"ldap.pool.prefsize": "null"
"ldap.pool.timeout": "0"
"ldap.propogate.changes": "false"
"ldap.read.timeout": "180000"
"ldap.referral": "true"
"ldap.relaxed.dn.standardisation": "true"
"ldap.roles.disabled": "true"
"ldap.search.timelimit": "60000"
"ldap.secure": "false"

 

Threads dump summary:

http-nio-80-exec-464yes5BLOCKEDBLOCKEDcom.sun.jndi.ldap.pool.Connections.get(Connections.java:139)
http-nio-80-exec-482yes5BLOCKEDBLOCKEDcom.sun.jndi.ldap.pool.Connections.releasePooledConnection(Connections.java:219)
http-nio-80-exec-495yes5BLOCKEDBLOCKEDcom.sun.jndi.ldap.pool.Connections.get(Connections.java:139)
http-nio-80-exec-503yes5BLOCKEDBLOCKEDcom.sun.jndi.ldap.pool.Connections.get(Connections.java:139)
http-nio-80-exec-525yes5BLOCKEDBLOCKEDcom.sun.jndi.ldap.pool.Connections.get(Connections.java:139)
http-nio-80-exec-530yes5BLOCKEDBLOCKEDcom.sun.jndi.ldap.pool.Connections.get(Connections.java:139)
http-nio-80-exec-542yes5BLOCKEDBLOCKEDcom.sun.jndi.ldap.pool.Connections.get(Connections.java:139)
http-nio-80-exec-545yes5BLOCKEDBLOCKEDcom.sun.jndi.ldap.pool.Connections.get(Connections.java:139)
http-nio-80-exec-546yes5BLOCKEDBLOCKEDcom.sun.jndi.ldap.pool.Connections.get(Connections.java:139)
http-nio-80-exec-548yes5BLOCKEDBLOCKEDcom.sun.jndi.ldap.pool.Connections.get(Connections.java:139)
http-nio-80-exec-550yes5BLOCKEDBLOCKEDcom.sun.jndi.ldap.pool.Connections.get(Connections.java:139)
http-nio-80-exec-551yes5BLOCKEDBLOCKEDcom.sun.jndi.ldap.pool.Connections.get(Connections.java:139)
http-nio-80-exec-553yes5BLOCKEDBLOCKEDcom.sun.jndi.ldap.pool.Connections.get(Connections.java:139)
http-nio-80-exec-555yes5RUNNABLERUNNABLEjava.lang.Thread.dumpThreads(Native Method)
http-nio-80-exec-556yes5BLOCKEDBLOCKEDcom.sun.jndi.ldap.pool.Connections.get(Connections.java:139)
http-nio-80-exec-557yes5BLOCKEDBLOCKEDcom.sun.jndi.ldap.pool.Connections.get(Connections.java:139)
http-nio-80-exec-559yes5BLOCKEDBLOCKEDcom.sun.jndi.ldap.pool.Connections.get(Connections.java:139)
http-nio-80-exec-561yes5BLOCKEDBLOCKEDcom.sun.jndi.ldap.pool.Connections.get(Connections.java:139)
http-nio-80-exec-562yes5BLOCKEDBLOCKEDcom.sun.jndi.ldap.pool.Connections.get(Connections.java:139)
http-nio-80-exec-568yes5BLOCKEDBLOCKEDcom.sun.jndi.ldap.pool.Connections.get(Connections.java:139)
http-nio-80-exec-569yes5BLOCKEDBLOCKEDcom.sun.jndi.ldap.pool.Connections.get(Connections.java:139)
http-nio-80-exec-571yes5BLOCKEDBLOCKEDcom.sun.jndi.ldap.pool.Connections.get(Connections.java:139)
http-nio-80-exec-573yes5RUNNABLERUNNABLEjava.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
http-nio-80-exec-579yes5BLOCKEDBLOCKEDcom.sun.jndi.ldap.pool.Connections.get(Connections.java:139)
http-nio-80-exec-580yes5BLOCKEDBLOCKEDcom.sun.jndi.ldap.pool.Connections.get(Connections.java:139)

0 answers

Suggest an answer

Log in or Sign up to answer