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

Failover does not work correctly when server nodes are behind proxy

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Won't Do
    • Icon: Major Major
    • None
    • 7.1.1
    • Server
    • None

      I wrote simple proxy which simply send data from one port to another. I've put 2 node cluster behind this proxy.
      Proxy works like this: Client connects to the interface of a proxy and then proxy send all data to cluster. When I stop the proxy, the proxy stops sending data from client to server - this is used as a simulation of cluster node failure.

      Then I ran this scenario:

      1. Query data from cluster, data retrieved without any problems.
      2. Then, on the proxy I tried to turn off (block access to) each node of a cluster.

      When I stop the proxy I've got following exception:

      May 16, 2011 1:50:04 PM org.teiid.jdbc.StatementImpl executeSql
      [testng] WARNING: Error trying to execute a statement SELECT name, CLUSTER_NAME FROM ClusterTable OPTION NOCACHE.
      [testng] org.teiid.jdbc.TeiidSQLException: [SingleInstanceCommunicationException]
      [testng] 1 [EOFException]
      [testng] at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:109)
      [testng] at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:69)
      [testng] at org.teiid.jdbc.StatementImpl.sendRequestMessageAndWait(StatementImpl.java:917)
      [testng] at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:479)
      [testng] at org.teiid.jdbc.StatementImpl.executeQuery(StatementImpl.java:324)
      [testng] at org.jboss.soa.clustering.teiid.TeiidClusteringTest.select(TeiidClusteringTest.java:141)
      [testng] at org.jboss.soa.clustering.teiid.TeiidClusteringTest.testFailover(TeiidClusteringTest.java:72)
      [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.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:641)
      [testng] at org.testng.internal.Invoker.invokeMethod(Invoker.java:677)
      [testng] at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:850)
      [testng] at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1154)
      [testng] at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:137)
      [testng] at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:121)
      [testng] at org.testng.TestRunner.runWorkers(TestRunner.java:1108)
      [testng] at org.testng.TestRunner.privateRun(TestRunner.java:737)
      [testng] at org.testng.TestRunner.run(TestRunner.java:596)
      [testng] at org.testng.SuiteRunner.runTest(SuiteRunner.java:315)
      [testng] at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:310)
      [testng] at org.testng.SuiteRunner.privateRun(SuiteRunner.java:272)
      [testng] at org.testng.SuiteRunner.run(SuiteRunner.java:221)
      [testng] at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
      [testng] at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
      [testng] at org.testng.TestNG.runSuitesSequentially(TestNG.java:1027)
      [testng] at org.testng.TestNG.runSuitesLocally(TestNG.java:964)
      [testng] at org.testng.TestNG.run(TestNG.java:896)
      [testng] at org.testng.TestNG.privateMain(TestNG.java:1193)
      [testng] at org.testng.TestNG.main(TestNG.java:1153)
      [testng] Caused by: java.util.concurrent.ExecutionException: [SingleInstanceCommunicationException]
      [testng] 1 [EOFException]
      [testng] at org.teiid.client.util.ResultsFuture.convertResult(ResultsFuture.java:100)
      [testng] at org.teiid.net.socket.SocketServerInstanceImpl$RemoteInvocationHandler$1.convertResult(SocketServerInstanceImpl.java:317)
      [testng] at org.teiid.client.util.ResultsFuture.get(ResultsFuture.java:116)
      [testng] at org.teiid.net.socket.SocketServerInstanceImpl$RemoteInvocationHandler$1.get(SocketServerInstanceImpl.java:348)
      [testng] at org.teiid.jdbc.StatementImpl.sendRequestMessageAndWait(StatementImpl.java:915)
      [testng] ... 28 more
      [testng] Caused by: [SingleInstanceCommunicationException]
      [testng] 1 [EOFException]
      [testng] at org.teiid.net.socket.SocketServerInstanceImpl.exceptionOccurred(SocketServerInstanceImpl.java:199)
      [testng] at org.teiid.net.socket.SocketServerInstanceImpl.read(SocketServerInstanceImpl.java:257)
      [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.net.socket.SocketServerConnectionFactory$ShutdownHandler.invoke(SocketServerConnectionFactory.java:107)
      [testng] at $Proxy12.read(Unknown Source)
      [testng] at org.teiid.net.socket.SocketServerInstanceImpl$RemoteInvocationHandler$1.get(SocketServerInstanceImpl.java:347)
      [testng] ... 29 more
      [testng] Caused by: java.io.EOFException
      [testng] at org.teiid.netty.handler.codec.serialization.ObjectDecoderInputStream.fillBuffer(ObjectDecoderInputStream.java:166)
      [testng] at org.teiid.netty.handler.codec.serialization.ObjectDecoderInputStream.findLength(ObjectDecoderInputStream.java:147)
      [testng] at org.teiid.netty.handler.codec.serialization.ObjectDecoderInputStream.readObjectOverride(ObjectDecoderInputStream.java:81)
      [testng] at java.io.ObjectInputStream.readObject(ObjectInputStream.java:344)
      [testng] at org.teiid.net.socket.OioOjbectChannelFactory$OioObjectChannel.read(OioOjbectChannelFactory.java:114)
      [testng] at org.teiid.net.socket.SocketServerInstanceImpl.read(SocketServerInstanceImpl.java:253)
      [testng] ... 36 more
      [testng] org.teiid.jdbc.TeiidSQLException: Error trying to execute a statement SELECT name, CLUSTER_NAME FROM ClusterTable OPTION NOCACHE.
      [testng] at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:102)
      [testng] at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:483)
      [testng] at org.teiid.jdbc.StatementImpl.executeQuery(StatementImpl.java:324)
      [testng] at org.jboss.soa.clustering.teiid.TeiidClusteringTest.select(TeiidClusteringTest.java:141)
      [testng] at org.jboss.soa.clustering.teiid.TeiidClusteringTest.testFailover(TeiidClusteringTest.java:72)
      [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.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:641)
      [testng] at org.testng.internal.Invoker.invokeMethod(Invoker.java:677)
      [testng] at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:850)
      [testng] at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1154)
      [testng] at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:137)
      [testng] at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:121)
      [testng] at org.testng.TestRunner.runWorkers(TestRunner.java:1108)
      [testng] at org.testng.TestRunner.privateRun(TestRunner.java:737)
      [testng] at org.testng.TestRunner.run(TestRunner.java:596)
      [testng] at org.testng.SuiteRunner.runTest(SuiteRunner.java:315)
      [testng] at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:310)
      [testng] at org.testng.SuiteRunner.privateRun(SuiteRunner.java:272)
      [testng] at org.testng.SuiteRunner.run(SuiteRunner.java:221)
      [testng] at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
      [testng] at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
      [testng] at org.testng.TestNG.runSuitesSequentially(TestNG.java:1027)
      [testng] at org.testng.TestNG.runSuitesLocally(TestNG.java:964)
      [testng] at org.testng.TestNG.run(TestNG.java:896)
      [testng] at org.testng.TestNG.privateMain(TestNG.java:1193)
      [testng] at org.testng.TestNG.main(TestNG.java:1153)
      [testng] Caused by: org.teiid.jdbc.TeiidSQLException: [SingleInstanceCommunicationException]
      [testng] 1 [EOFException]
      [testng] at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:109)
      [testng] at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:69)
      [testng] at org.teiid.jdbc.StatementImpl.sendRequestMessageAndWait(StatementImpl.java:917)
      [testng] at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:479)
      [testng] ... 27 more
      [testng] Caused by: java.util.concurrent.ExecutionException: [SingleInstanceCommunicationException]
      [testng] 1 [EOFException]
      [testng] at org.teiid.client.util.ResultsFuture.convertResult(ResultsFuture.java:100)
      [testng] at org.teiid.net.socket.SocketServerInstanceImpl$RemoteInvocationHandler$1.convertResult(SocketServerInstanceImpl.java:317)
      [testng] at org.teiid.client.util.ResultsFuture.get(ResultsFuture.java:116)
      [testng] at org.teiid.net.socket.SocketServerInstanceImpl$RemoteInvocationHandler$1.get(SocketServerInstanceImpl.java:348)
      [testng] at org.teiid.jdbc.StatementImpl.sendRequestMessageAndWait(StatementImpl.java:915)
      [testng] ... 28 more
      [testng] Caused by: [SingleInstanceCommunicationException]
      [testng] 1 [EOFException]
      [testng] at org.teiid.net.socket.SocketServerInstanceImpl.exceptionOccurred(SocketServerInstanceImpl.java:199)
      [testng] at org.teiid.net.socket.SocketServerInstanceImpl.read(SocketServerInstanceImpl.java:257)
      [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.net.socket.SocketServerConnectionFactory$ShutdownHandler.invoke(SocketServerConnectionFactory.java:107)
      [testng] at $Proxy12.read(Unknown Source)
      [testng] at org.teiid.net.socket.SocketServerInstanceImpl$RemoteInvocationHandler$1.get(SocketServerInstanceImpl.java:347)
      [testng] ... 29 more
      [testng] Caused by: java.io.EOFException
      [testng] at org.teiid.netty.handler.codec.serialization.ObjectDecoderInputStream.fillBuffer(ObjectDecoderInputStream.java:166)
      [testng] at org.teiid.netty.handler.codec.serialization.ObjectDecoderInputStream.findLength(ObjectDecoderInputStream.java:147)
      [testng] at org.teiid.netty.handler.codec.serialization.ObjectDecoderInputStream.readObjectOverride(ObjectDecoderInputStream.java:81)
      [testng] at java.io.ObjectInputStream.readObject(ObjectInputStream.java:344)
      [testng] at org.teiid.net.socket.OioOjbectChannelFactory$OioObjectChannel.read(OioOjbectChannelFactory.java:114)
      [testng] at org.teiid.net.socket.SocketServerInstanceImpl.read(SocketServerInstanceImpl.java:253)
      [testng] ... 36 more
      [testng] @@ Message: Error trying to execute a statement SELECT name, CLUSTER_NAME FROM ClusterTable OPTION NOCACHE.

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

              Created:
              Updated:
              Resolved: