[
https://issues.jboss.org/browse/TEIID-1451?page=com.atlassian.jira.plugin...
]
Steven Hawkins commented on TEIID-1451:
---------------------------------------
So when the first instance comes back online it rejects the original session token, which
it should since it has lost all sessions in the restart. However the client is not
appropriately responding to that rejection - it should immediately reauthenticate.
Instead the failover will not happen until the failover test interval has been reached (1
second) or a new server instance is requested.
Teiid does not handle failover correctly
----------------------------------------
Key: TEIID-1451
URL:
https://issues.jboss.org/browse/TEIID-1451
Project: Teiid
Issue Type: Bug
Components: Server
Affects Versions: 7.1
Environment: soaperf07 machine -
soaperf07.mw.lab.eng.bos.redhat.com
JDK 1.6
RHEL 5
Reporter: Boris Belovic
Assignee: Steven Hawkins
Attachments: logs.tar.bz2, TeiidClusteringTest.java, test.log
I tried to simulate failover with Teiid. I have two SOA-P (ER7 build) nodes. When I
killed first node, client correctly switched to second node. Then I re-started first node
and killed second node. Client failed with the exception and did not switch back to first
node.
Client was very simple - querying VDB in infinite loop and printing result to stdout.
What I did was:
1) I started both nodes, the started a client
2) Killed node no.1 with 'CTRL+Z' and 'kill -9 %1'
3) Client switched to node2
4) Re-started node no.1
5)Killed node no2 with 'CTRL+Z' and 'kill -9 %1'
6)Client failed with exception:
1 [InvalidSessionException]The specified session ID "null" is invalid. It
cannot be found in the userbase.
[testng] at
org.teiid.client.util.ExceptionUtil.convertException(ExceptionUtil.java:66)
[testng] at
org.teiid.jboss.deployers.RuntimeEngineDeployer$2.invoke(RuntimeEngineDeployer.java:309)
[testng] at $Proxy294.executeRequest(Unknown Source)
[testng] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[testng] at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[testng] at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[testng] at java.lang.reflect.Method.invoke(Method.java:597)
[testng] at org.teiid.transport.ServerWorkItem.run(ServerWorkItem.java:81)
[testng] at
org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:188)
[testng] at
org.teiid.transport.SocketClientInstance.processMessagePacket(SocketClientInstance.java:160)
[testng] at
org.teiid.transport.SocketClientInstance.receivedMessage(SocketClientInstance.java:149)
[testng] at
org.teiid.transport.SSLAwareChannelHandler.messageReceived(SSLAwareChannelHandler.java:210)
[testng] at
org.jboss.netty.channel.SimpleChannelHandler.handleUpstream(SimpleChannelHandler.java:100)
[testng] at
org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:545)
[testng] at
org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:754)
[testng] at
org.jboss.netty.handler.stream.ChunkedWriteHandler.handleUpstream(ChunkedWriteHandler.java:144)
[testng] at
org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:545)
[testng] at
org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:754)
[testng] at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:302)
[testng] at
org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:317)
[testng] at
org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:299)
[testng] at
org.jboss.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:216)
[testng] at
org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:80)
[testng] at
org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:545)
[testng] at
org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:540)
[testng] at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:274)
[testng] at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:261)
[testng] at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:349)
[testng] at
org.jboss.netty.channel.socket.nio.NioWorker.processSelectedKeys(NioWorker.java:281)
[testng] at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:201)
[testng] at
org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
[testng] at
org.jboss.netty.util.internal.IoWorkerRunnable.run(IoWorkerRunnable.java:46)
[testng] at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
[testng] at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
[testng] at java.lang.Thread.run(Thread.java:619)
[testng] Caused by: [InvalidSessionException]The specified session ID "null"
is invalid. It cannot be found in the userbase.
[testng] at
org.teiid.services.SessionServiceImpl.getSessionInfo(SessionServiceImpl.java:307)
[testng] at
org.teiid.services.SessionServiceImpl.validateSession(SessionServiceImpl.java:300)
[testng] at
org.teiid.jboss.deployers.RuntimeEngineDeployer$2.invoke(RuntimeEngineDeployer.java:302)
[testng] ... 33 more
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira