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

Teiid does not handle failover correctly

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • 7.1.1, 7.3
    • 7.1
    • Server
    • None

    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

      Attachments

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

        Activity

          People

            rhn-engineering-shawkins Steven Hawkins
            bbelovic_jira Boris Belovic (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: