Uploaded image for project: 'Teiid'
  1. Teiid
  2. TEIID-1451

Teiid does not handle failover correctly

    Details

    • Type: Bug
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Done
    • Affects Version/s: 7.1
    • Fix Version/s: 7.1.1, 7.3
    • Component/s: Server
    • Labels:
      None
    • Environment:

      soaperf07 machine - soaperf07.mw.lab.eng.bos.redhat.com
      JDK 1.6
      RHEL 5

      Description

      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

        Gliffy Diagrams

          Attachments

          1. TeiidClusteringTest.java
            10 kB
          2. logs.tar.bz2
            139 kB
          3. test.log
            20 kB

            Issue Links

              Activity

                People

                • Assignee:
                  shawkins Steven Hawkins
                  Reporter:
                  bbelovic Boris Belovic
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  3 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: