]
Van Halbert commented on TEIID-1588:
------------------------------------
Since the testing is on Fedora, it would be good to try HAProxy for failover and load
balancing.
Failover does not work correctly when server nodes are behind proxy
-------------------------------------------------------------------
Key: TEIID-1588
URL:
https://issues.jboss.org/browse/TEIID-1588
Project: Teiid
Issue Type: Bug
Components: Server
Affects Versions: 7.1.1
Environment: Fedora 14, JDK1.6
Reporter: Boris Belovic
Assignee: Steven Hawkins
Attachments: proxy.tar.bz2, TeiidClusteringTest.java
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.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: