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

Jason Huynh updated GEODE-2205:
-------------------------------
    Description: 
ConcurrentSerialGatewayEventSenderProcessor spins up the individual 
SerialGatewayEventSenderProcessors.  During this time, the individual 
processors will call waitForPrimary on the GatewaySenderAdvisor.  The advisor 
uses the stopped flag from ConcurrentSerialGatewayEventSenderProcessor, which 
starts off as false (only set to true after all Serial processors are started). 
 

This is where the timing issue arises.  If the serial processors start up and 
the GatewaySenderAdvisor uses the flag from the Concurrent processor, the 
serial senders will breaks out of the loop for waitingForPrimary and then tries 
to handle failover.  The Concurrent processor eventually sets it's flag to true 
and everything continues to run.

If the serial processor was not a primary, it stays as a secondary and is in a 
weird state where anything enqueued will throw an assert error.

This issue began due to  changes in GEODE-2107: 
c4ae846aa1689e2c5659b6ecc17e38689dd93976 

  was:
ConcurrentSerialGatewayEventSenderProcessor spins up the individual 
SerialGatewayEventSenderProcessors.  During this time, the individual 
processors will call waitForPrimary on the GatewaySenderAdvisor.  The advisor 
uses the stopped flag from ConcurrentSerialGatewayEventSenderProcessor, which 
starts off as false (only set to true after all Serial processors are started). 
 

This is where the timing issue arises.  If the serial processors start up and 
the GatewaySenderAdvisor uses the flag from the Concurrent processor, the 
serial senders will breaks out of the loop for waitingForPrimary and then tries 
to handle failover.  The Concurrent processor eventually sets it's flag to true 
and everything continues to run.

If the serial processor was not a primary, it stays as a secondary and is in a 
weird state where anything enqueued will throw an assert error.

This issue began due to  changes in c4ae846aa1689e2c5659b6ecc17e38689dd93976 


> Race condition in startup of ConcurrentSerialGatewaySenderProcessor
> -------------------------------------------------------------------
>
>                 Key: GEODE-2205
>                 URL: https://issues.apache.org/jira/browse/GEODE-2205
>             Project: Geode
>          Issue Type: Bug
>          Components: wan
>            Reporter: Jason Huynh
>            Assignee: Jason Huynh
>
> ConcurrentSerialGatewayEventSenderProcessor spins up the individual 
> SerialGatewayEventSenderProcessors.  During this time, the individual 
> processors will call waitForPrimary on the GatewaySenderAdvisor.  The advisor 
> uses the stopped flag from ConcurrentSerialGatewayEventSenderProcessor, which 
> starts off as false (only set to true after all Serial processors are 
> started).  
> This is where the timing issue arises.  If the serial processors start up and 
> the GatewaySenderAdvisor uses the flag from the Concurrent processor, the 
> serial senders will breaks out of the loop for waitingForPrimary and then 
> tries to handle failover.  The Concurrent processor eventually sets it's flag 
> to true and everything continues to run.
> If the serial processor was not a primary, it stays as a secondary and is in 
> a weird state where anything enqueued will throw an assert error.
> This issue began due to  changes in GEODE-2107: 
> c4ae846aa1689e2c5659b6ecc17e38689dd93976 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to