[jira] [Updated] (GEODE-3637) configureClientSSLSocket call can block Acceptor thread

2017-12-01 Thread Dan Smith (JIRA)

 [ 
https://issues.apache.org/jira/browse/GEODE-3637?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Smith updated GEODE-3637:
-
Fix Version/s: (was: 1.4.0)

> configureClientSSLSocket call can block Acceptor thread
> ---
>
> Key: GEODE-3637
> URL: https://issues.apache.org/jira/browse/GEODE-3637
> Project: Geode
>  Issue Type: Bug
>  Components: client/server
>Affects Versions: 1.1.0, 1.2.0
>Reporter: Vahram Aharonyan
>Assignee: Udo Kohlmeyer
>Priority: Critical
>
> org.apache.geode.internal.net.SocketCreator#configureClientSSLSocket timeout 
> for Socket is being configured before starting SSL handshake only if passed 
> "timeout" argument is larger than 0.
> Having sslSocket.startHandshake issued without setting timeout can result to 
> the blocking of caller thread as in GEODE-2898, GEODE-3023.
> Below is the example of Handshaker thread stack-trace that got stacked:
> "Handshaker /10.124.195.100:1 Thread 183" Id=526300 in RUNNABLE (running 
> in native)
> Total blocked: 4   Total waited: 884
>   java.net.SocketInputStream.socketRead0(Native Method)
>   java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
>   java.net.SocketInputStream.read(SocketInputStream.java:171)
>   java.net.SocketInputStream.read(SocketInputStream.java:141)
>   sun.security.ssl.InputRecord.readFully(InputRecord.java:465)
>   sun.security.ssl.InputRecord.read(InputRecord.java:503)
>   sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973)
>   
> sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375)
>   sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403)
>   sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387)
>   
> org.apache.geode.internal.net.SocketCreator.configureClientSSLSocket(SocketCreator.java:1088)
>   org.apache.geode.internal.net.SocketCreator.connect(SocketCreator.java:967)
>   org.apache.geode.internal.net.SocketCreator.connect(SocketCreator.java:929)
>   
> org.apache.geode.internal.net.SocketCreator.connectForServer(SocketCreator.java:908)
>   org.apache.geode.internal.tcp.Connection.(Connection.java:1306)
>   org.apache.geode.internal.tcp.Connection.createSender(Connection.java:1094)
>   
> org.apache.geode.internal.tcp.ConnectionTable.getOrderedAndOwned(ConnectionTable.java:553)
>   org.apache.geode.internal.tcp.ConnectionTable.get(ConnectionTable.java:664)
>   org.apache.geode.internal.tcp.TCPConduit.getConnection(TCPConduit.java:1037)
>   
> org.apache.geode.distributed.internal.direct.DirectChannel.getConnections(DirectChannel.java:543)
>   
> org.apache.geode.distributed.internal.direct.DirectChannel.sendToMany(DirectChannel.java:319)
>   
> org.apache.geode.distributed.internal.direct.DirectChannel.send(DirectChannel.java:605)
>   
> org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.directChannelSend(GMSMembershipManager.java:1684)
>   
> org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.send(GMSMembershipManager.java:1875)
>   
> org.apache.geode.distributed.internal.DistributionChannel.send(DistributionChannel.java:82)
>   
> org.apache.geode.distributed.internal.DistributionManager.sendOutgoing(DistributionManager.java:3416)
>   
> org.apache.geode.distributed.internal.DistributionManager.sendMessage(DistributionManager.java:3453)
>   
> org.apache.geode.distributed.internal.DistributionManager.putOutgoing(DistributionManager.java:1832)
>   
> org.apache.geode.internal.cache.UpdateAttributesProcessor.sendProfileUpdate(UpdateAttributesProcessor.java:162)
>   
> org.apache.geode.internal.cache.UpdateAttributesProcessor.distribute(UpdateAttributesProcessor.java:97)
>   
> org.apache.geode.internal.cache.DistributedRegion.initialized(DistributedRegion.java:1128)
>   
> org.apache.geode.internal.cache.LocalRegion.initialize(LocalRegion.java:2413)
>   
> org.apache.geode.internal.cache.DistributedRegion.initialize(DistributedRegion.java:1117)
>   org.apache.geode.internal.cache.HARegion.initialize(HARegion.java:345)
>   
> org.apache.geode.internal.cache.GemFireCacheImpl.createVMRegion(GemFireCacheImpl.java:3308)
>   org.apache.geode.internal.cache.HARegion.getInstance(HARegion.java:265)
>   
> org.apache.geode.internal.cache.ha.HARegionQueue.createHARegion(HARegionQueue.java:348)
>   
> org.apache.geode.internal.cache.ha.HARegionQueue.(HARegionQueue.java:328)
>   
> org.apache.geode.internal.cache.ha.HARegionQueue$BlockingHARegionQueue.(HARegionQueue.java:2199)
>   
> org.apache.geode.internal.cache.ha.HARegionQueue$DurableHARegionQueue.(HARegionQueue.java:2450)
>   
> org.apache.geode.internal.cache.ha.HARegionQueue.getHARegionQueueInstance(HARegionQueue.java:2030)
>   
> 

[jira] [Updated] (GEODE-3637) configureClientSSLSocket call can block Acceptor thread

2017-10-02 Thread Brian Baynes (JIRA)

 [ 
https://issues.apache.org/jira/browse/GEODE-3637?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Brian Baynes updated GEODE-3637:

Fix Version/s: (was: 1.3.0)

> configureClientSSLSocket call can block Acceptor thread
> ---
>
> Key: GEODE-3637
> URL: https://issues.apache.org/jira/browse/GEODE-3637
> Project: Geode
>  Issue Type: Bug
>  Components: client/server
>Affects Versions: 1.1.0, 1.2.0
>Reporter: Vahram Aharonyan
>Priority: Critical
>
> org.apache.geode.internal.net.SocketCreator#configureClientSSLSocket timeout 
> for Socket is being configured before starting SSL handshake only if passed 
> "timeout" argument is larger than 0.
> Having sslSocket.startHandshake issued without setting timeout can result to 
> the blocking of caller thread as in GEODE-2898, GEODE-3023.
> Below is the example of Handshaker thread stack-trace that got stacked:
> "Handshaker /10.124.195.100:1 Thread 183" Id=526300 in RUNNABLE (running 
> in native)
> Total blocked: 4   Total waited: 884
>   java.net.SocketInputStream.socketRead0(Native Method)
>   java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
>   java.net.SocketInputStream.read(SocketInputStream.java:171)
>   java.net.SocketInputStream.read(SocketInputStream.java:141)
>   sun.security.ssl.InputRecord.readFully(InputRecord.java:465)
>   sun.security.ssl.InputRecord.read(InputRecord.java:503)
>   sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973)
>   
> sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375)
>   sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403)
>   sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387)
>   
> org.apache.geode.internal.net.SocketCreator.configureClientSSLSocket(SocketCreator.java:1088)
>   org.apache.geode.internal.net.SocketCreator.connect(SocketCreator.java:967)
>   org.apache.geode.internal.net.SocketCreator.connect(SocketCreator.java:929)
>   
> org.apache.geode.internal.net.SocketCreator.connectForServer(SocketCreator.java:908)
>   org.apache.geode.internal.tcp.Connection.(Connection.java:1306)
>   org.apache.geode.internal.tcp.Connection.createSender(Connection.java:1094)
>   
> org.apache.geode.internal.tcp.ConnectionTable.getOrderedAndOwned(ConnectionTable.java:553)
>   org.apache.geode.internal.tcp.ConnectionTable.get(ConnectionTable.java:664)
>   org.apache.geode.internal.tcp.TCPConduit.getConnection(TCPConduit.java:1037)
>   
> org.apache.geode.distributed.internal.direct.DirectChannel.getConnections(DirectChannel.java:543)
>   
> org.apache.geode.distributed.internal.direct.DirectChannel.sendToMany(DirectChannel.java:319)
>   
> org.apache.geode.distributed.internal.direct.DirectChannel.send(DirectChannel.java:605)
>   
> org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.directChannelSend(GMSMembershipManager.java:1684)
>   
> org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.send(GMSMembershipManager.java:1875)
>   
> org.apache.geode.distributed.internal.DistributionChannel.send(DistributionChannel.java:82)
>   
> org.apache.geode.distributed.internal.DistributionManager.sendOutgoing(DistributionManager.java:3416)
>   
> org.apache.geode.distributed.internal.DistributionManager.sendMessage(DistributionManager.java:3453)
>   
> org.apache.geode.distributed.internal.DistributionManager.putOutgoing(DistributionManager.java:1832)
>   
> org.apache.geode.internal.cache.UpdateAttributesProcessor.sendProfileUpdate(UpdateAttributesProcessor.java:162)
>   
> org.apache.geode.internal.cache.UpdateAttributesProcessor.distribute(UpdateAttributesProcessor.java:97)
>   
> org.apache.geode.internal.cache.DistributedRegion.initialized(DistributedRegion.java:1128)
>   
> org.apache.geode.internal.cache.LocalRegion.initialize(LocalRegion.java:2413)
>   
> org.apache.geode.internal.cache.DistributedRegion.initialize(DistributedRegion.java:1117)
>   org.apache.geode.internal.cache.HARegion.initialize(HARegion.java:345)
>   
> org.apache.geode.internal.cache.GemFireCacheImpl.createVMRegion(GemFireCacheImpl.java:3308)
>   org.apache.geode.internal.cache.HARegion.getInstance(HARegion.java:265)
>   
> org.apache.geode.internal.cache.ha.HARegionQueue.createHARegion(HARegionQueue.java:348)
>   
> org.apache.geode.internal.cache.ha.HARegionQueue.(HARegionQueue.java:328)
>   
> org.apache.geode.internal.cache.ha.HARegionQueue$BlockingHARegionQueue.(HARegionQueue.java:2199)
>   
> org.apache.geode.internal.cache.ha.HARegionQueue$DurableHARegionQueue.(HARegionQueue.java:2450)
>   
> org.apache.geode.internal.cache.ha.HARegionQueue.getHARegionQueueInstance(HARegionQueue.java:2030)
>   
> org.apache.geode.internal.cache.tier.sockets.CacheClientProxy$MessageDispatcher.(CacheClientProxy.java:2315)

[jira] [Updated] (GEODE-3637) configureClientSSLSocket call can block Acceptor thread

2017-09-18 Thread Vahram Aharonyan (JIRA)

 [ 
https://issues.apache.org/jira/browse/GEODE-3637?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vahram Aharonyan updated GEODE-3637:

Affects Version/s: 1.1.0
   1.2.0

> configureClientSSLSocket call can block Acceptor thread
> ---
>
> Key: GEODE-3637
> URL: https://issues.apache.org/jira/browse/GEODE-3637
> Project: Geode
>  Issue Type: Bug
>  Components: client/server
>Affects Versions: 1.1.0, 1.2.0
>Reporter: Vahram Aharonyan
>Priority: Critical
> Fix For: 1.3.0
>
>
> org.apache.geode.internal.net.SocketCreator#configureClientSSLSocket timeout 
> for Socket is being configured before starting SSL handshake only if passed 
> "timeout" argument is larger than 0.
> Having sslSocket.startHandshake issued without setting timeout can result to 
> the blocking of caller thread as in GEODE-2898, GEODE-3023.
> Below is the example of Handshaker thread stack-trace that got stacked:
> "Handshaker /10.124.195.100:1 Thread 183" Id=526300 in RUNNABLE (running 
> in native)
> Total blocked: 4   Total waited: 884
>   java.net.SocketInputStream.socketRead0(Native Method)
>   java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
>   java.net.SocketInputStream.read(SocketInputStream.java:171)
>   java.net.SocketInputStream.read(SocketInputStream.java:141)
>   sun.security.ssl.InputRecord.readFully(InputRecord.java:465)
>   sun.security.ssl.InputRecord.read(InputRecord.java:503)
>   sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973)
>   
> sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375)
>   sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403)
>   sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387)
>   
> org.apache.geode.internal.net.SocketCreator.configureClientSSLSocket(SocketCreator.java:1088)
>   org.apache.geode.internal.net.SocketCreator.connect(SocketCreator.java:967)
>   org.apache.geode.internal.net.SocketCreator.connect(SocketCreator.java:929)
>   
> org.apache.geode.internal.net.SocketCreator.connectForServer(SocketCreator.java:908)
>   org.apache.geode.internal.tcp.Connection.(Connection.java:1306)
>   org.apache.geode.internal.tcp.Connection.createSender(Connection.java:1094)
>   
> org.apache.geode.internal.tcp.ConnectionTable.getOrderedAndOwned(ConnectionTable.java:553)
>   org.apache.geode.internal.tcp.ConnectionTable.get(ConnectionTable.java:664)
>   org.apache.geode.internal.tcp.TCPConduit.getConnection(TCPConduit.java:1037)
>   
> org.apache.geode.distributed.internal.direct.DirectChannel.getConnections(DirectChannel.java:543)
>   
> org.apache.geode.distributed.internal.direct.DirectChannel.sendToMany(DirectChannel.java:319)
>   
> org.apache.geode.distributed.internal.direct.DirectChannel.send(DirectChannel.java:605)
>   
> org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.directChannelSend(GMSMembershipManager.java:1684)
>   
> org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.send(GMSMembershipManager.java:1875)
>   
> org.apache.geode.distributed.internal.DistributionChannel.send(DistributionChannel.java:82)
>   
> org.apache.geode.distributed.internal.DistributionManager.sendOutgoing(DistributionManager.java:3416)
>   
> org.apache.geode.distributed.internal.DistributionManager.sendMessage(DistributionManager.java:3453)
>   
> org.apache.geode.distributed.internal.DistributionManager.putOutgoing(DistributionManager.java:1832)
>   
> org.apache.geode.internal.cache.UpdateAttributesProcessor.sendProfileUpdate(UpdateAttributesProcessor.java:162)
>   
> org.apache.geode.internal.cache.UpdateAttributesProcessor.distribute(UpdateAttributesProcessor.java:97)
>   
> org.apache.geode.internal.cache.DistributedRegion.initialized(DistributedRegion.java:1128)
>   
> org.apache.geode.internal.cache.LocalRegion.initialize(LocalRegion.java:2413)
>   
> org.apache.geode.internal.cache.DistributedRegion.initialize(DistributedRegion.java:1117)
>   org.apache.geode.internal.cache.HARegion.initialize(HARegion.java:345)
>   
> org.apache.geode.internal.cache.GemFireCacheImpl.createVMRegion(GemFireCacheImpl.java:3308)
>   org.apache.geode.internal.cache.HARegion.getInstance(HARegion.java:265)
>   
> org.apache.geode.internal.cache.ha.HARegionQueue.createHARegion(HARegionQueue.java:348)
>   
> org.apache.geode.internal.cache.ha.HARegionQueue.(HARegionQueue.java:328)
>   
> org.apache.geode.internal.cache.ha.HARegionQueue$BlockingHARegionQueue.(HARegionQueue.java:2199)
>   
> org.apache.geode.internal.cache.ha.HARegionQueue$DurableHARegionQueue.(HARegionQueue.java:2450)
>   
> org.apache.geode.internal.cache.ha.HARegionQueue.getHARegionQueueInstance(HARegionQueue.java:2030)
>   
> 

[jira] [Updated] (GEODE-3637) configureClientSSLSocket call can block Acceptor thread

2017-09-18 Thread Vahram Aharonyan (JIRA)

 [ 
https://issues.apache.org/jira/browse/GEODE-3637?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vahram Aharonyan updated GEODE-3637:

Priority: Critical  (was: Major)

> configureClientSSLSocket call can block Acceptor thread
> ---
>
> Key: GEODE-3637
> URL: https://issues.apache.org/jira/browse/GEODE-3637
> Project: Geode
>  Issue Type: Bug
>  Components: client/server
>Reporter: Vahram Aharonyan
>Priority: Critical
> Fix For: 1.3.0
>
>
> org.apache.geode.internal.net.SocketCreator#configureClientSSLSocket timeout 
> for Socket is being configured before starting SSL handshake only if passed 
> "timeout" argument is larger than 0.
> Having sslSocket.startHandshake issued without setting timeout can result to 
> the blocking of caller thread as in GEODE-2898, GEODE-3023.
> Below is the example of Handshaker thread stack-trace that got stacked:
> "Handshaker /10.124.195.100:1 Thread 183" Id=526300 in RUNNABLE (running 
> in native)
> Total blocked: 4   Total waited: 884
>   java.net.SocketInputStream.socketRead0(Native Method)
>   java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
>   java.net.SocketInputStream.read(SocketInputStream.java:171)
>   java.net.SocketInputStream.read(SocketInputStream.java:141)
>   sun.security.ssl.InputRecord.readFully(InputRecord.java:465)
>   sun.security.ssl.InputRecord.read(InputRecord.java:503)
>   sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973)
>   
> sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375)
>   sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403)
>   sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387)
>   
> org.apache.geode.internal.net.SocketCreator.configureClientSSLSocket(SocketCreator.java:1088)
>   org.apache.geode.internal.net.SocketCreator.connect(SocketCreator.java:967)
>   org.apache.geode.internal.net.SocketCreator.connect(SocketCreator.java:929)
>   
> org.apache.geode.internal.net.SocketCreator.connectForServer(SocketCreator.java:908)
>   org.apache.geode.internal.tcp.Connection.(Connection.java:1306)
>   org.apache.geode.internal.tcp.Connection.createSender(Connection.java:1094)
>   
> org.apache.geode.internal.tcp.ConnectionTable.getOrderedAndOwned(ConnectionTable.java:553)
>   org.apache.geode.internal.tcp.ConnectionTable.get(ConnectionTable.java:664)
>   org.apache.geode.internal.tcp.TCPConduit.getConnection(TCPConduit.java:1037)
>   
> org.apache.geode.distributed.internal.direct.DirectChannel.getConnections(DirectChannel.java:543)
>   
> org.apache.geode.distributed.internal.direct.DirectChannel.sendToMany(DirectChannel.java:319)
>   
> org.apache.geode.distributed.internal.direct.DirectChannel.send(DirectChannel.java:605)
>   
> org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.directChannelSend(GMSMembershipManager.java:1684)
>   
> org.apache.geode.distributed.internal.membership.gms.mgr.GMSMembershipManager.send(GMSMembershipManager.java:1875)
>   
> org.apache.geode.distributed.internal.DistributionChannel.send(DistributionChannel.java:82)
>   
> org.apache.geode.distributed.internal.DistributionManager.sendOutgoing(DistributionManager.java:3416)
>   
> org.apache.geode.distributed.internal.DistributionManager.sendMessage(DistributionManager.java:3453)
>   
> org.apache.geode.distributed.internal.DistributionManager.putOutgoing(DistributionManager.java:1832)
>   
> org.apache.geode.internal.cache.UpdateAttributesProcessor.sendProfileUpdate(UpdateAttributesProcessor.java:162)
>   
> org.apache.geode.internal.cache.UpdateAttributesProcessor.distribute(UpdateAttributesProcessor.java:97)
>   
> org.apache.geode.internal.cache.DistributedRegion.initialized(DistributedRegion.java:1128)
>   
> org.apache.geode.internal.cache.LocalRegion.initialize(LocalRegion.java:2413)
>   
> org.apache.geode.internal.cache.DistributedRegion.initialize(DistributedRegion.java:1117)
>   org.apache.geode.internal.cache.HARegion.initialize(HARegion.java:345)
>   
> org.apache.geode.internal.cache.GemFireCacheImpl.createVMRegion(GemFireCacheImpl.java:3308)
>   org.apache.geode.internal.cache.HARegion.getInstance(HARegion.java:265)
>   
> org.apache.geode.internal.cache.ha.HARegionQueue.createHARegion(HARegionQueue.java:348)
>   
> org.apache.geode.internal.cache.ha.HARegionQueue.(HARegionQueue.java:328)
>   
> org.apache.geode.internal.cache.ha.HARegionQueue$BlockingHARegionQueue.(HARegionQueue.java:2199)
>   
> org.apache.geode.internal.cache.ha.HARegionQueue$DurableHARegionQueue.(HARegionQueue.java:2450)
>   
> org.apache.geode.internal.cache.ha.HARegionQueue.getHARegionQueueInstance(HARegionQueue.java:2030)
>   
>