Mantis - Resin
Viewing Issue Advanced Details
3460 minor always 04-27-09 14:17 08-06-09 09:27
ferg  
ferg  
normal  
closed 3.1.9  
fixed  
none    
none 4.0.1  
0003460: cluster session inconsistency
(rep by Takahiro Fukuda)



Two Resin starts.(named "App-A" and "App-B")
The following are set to both.
--------------------------------
<server id="App-A" host="192.168.0.1" port="6802"/>
<server id="App-B" host="192.168.0.2" port="6802"/>

<persistent-store type="cluster">
<init path="cluster"/>
</persistent-store>
.
.
.
<web-app xmlns="http://caucho.com/ns/resin"> [^]
<session-config>
  <use-persistent-store="true"/>
</session-config>
</web-app>
--------------------------------

The following processing sequences are executed.
--------------------------------
1: Request1 is transmitted from BrowserX.
 1-1: It is processed with App-A.
 1-2: Execute Session#setAttribute("key", "value_1-2").

2: App-A is stopped.

3: Request2 is transmitted from BrowserX.
 3-1: It is processed with App-B (Because App-A has been downed).
<== OK: It's expected
 3-2: Session#getAttribute("key") returns "Value_1-2".
<== OK: It's expected
 3-3: Execute Session#setAttribute("key", "value_3-3").

4. Start beginning of App-A

5: Request3 is transmitted from BrowserX.
 5-1: It is processed with App-B (Because App-A is starting). <==
OK: It's expected
 5-2: Session#getAttribute("key") returns "Value_3-3". <==
OK: It's expected
 5-3: Execute Session#setAttribute("key", "value_5-3").

6. The start of App-A is completed.

7: Request3 is transmitted from BrowserX.
 7-1: It is processed with App-A (Because the start of App-A was
completed). <== OK: It's expected
 7-2: Session#getAttribute("key") returns
"Value_3-3". <== ****** NG ******
--------------------------------

In 7-2, "Value_3-3" is returned though it is necessary to return
"Value_5-3".
Is this correct operation?

It was confirmed on Resin3.1.6, 3.1.8 and 3.1.9.
(It is unconfirmed whether a similar problem occurs by Resin3.0.x)


Notes
(0004117)
ferg   
08-06-09 09:27   
The fixes require the extra startup support of 4.0.1.