Comment 3 for bug 1160730

Revision history for this message
Alvin Peng (pengalvin) wrote :

Hi Andrei,

In my testing environment. I have two logical nodes on the same phisical node:
xdb.nodecount=2
xdb.node.1.dbhost=127.0.0.1
xdb.node.2.dbhost=127.0.0.1

####1 xdb.use_load_for_step=false ; NOT using XDBAgents

Stado -> select * from a,b;
+---------------+
| x | y | x | y |
+---------------+
| 1 | 1 | 1 | 3 |
| 1 | 2 | 1 | 3 |
| 1 | 1 | 1 | 4 |
| 1 | 2 | 1 | 4 |
+---------------+
4 row(s).

Stado -> update sf_commercerecord set status=integraltype
Stado -> where exists (
Stado -> select * from sf_wofcust201205
Stado -> where
Stado -> sf_commercerecord.mobileno=sf_wofcust201205.mobileno
Stado -> and sf_commercerecord.feecode=sf_wofcust201205.feecode
Stado -> );
SQLException: ERROR: UNEXPECTED_MESSAGE_RECIEVED (GOT, EXPECTED) :(1 , 41 )

In PostgreSQL's log, there is error like: "ERROR: portal "C_49" does not exist"

####2 xdb.use_load_for_step=true; NOT using XDBAgents

Stado -> select * from a,b;
+---------------+
| x | y | x | y |
+---------------+
| 1 | 1 | 1 | 3 |
| 1 | 2 | 1 | 3 |
| 1 | 1 | 1 | 4 |
| 1 | 2 | 1 | 4 |
+---------------+
4 row(s).

Stado -> update sf_commercerecord set status=integraltype
Stado -> where exists (
Stado -> select * from sf_wofcust201205
Stado -> where
Stado -> sf_commercerecord.mobileno=sf_wofcust201205.mobileno
Stado -> and sf_commercerecord.feecode=sf_wofcust201205.feecode
Stado -> );
SQLException: ERROR: UNEXPECTED_MESSAGE_RECIEVED (GOT, EXPECTED) :(1 , 41 )

If Using XDBAgents, I have below configuration:

# config with different ports, otherwise agent init failed
xdb.node.1.port=6455
xdb.node.1.host=172.17.0.14
xdb.node.2.port=6456
xdb.node.2.host=172.17.0.14

# coordinator and agents are on the same server, but starts separately
xdb.coordinator.host=172.17.0.14
xdb.coordinator.port=6454

xdb.connector.0.1=1
xdb.connector.1.0=1
xdb.connector.0.2=1
xdb.connector.2.0=1

## starts the agents
./gs-server.sh -a
./gs-agent.sh -n 1 2

####3 xdb.use_load_for_step=true; Using XDBAgents:

Stado -> select * from a,b;
+---------------+
| x | y | x | y |
+---------------+
| 1 | 1 | 1 | 3 |
| 1 | 2 | 1 | 3 |
| 1 | 1 | 1 | 4 |
| 1 | 2 | 1 | 4 |
+---------------+
4 row(s).

Stado -> update sf_commercerecord set status=integraltype
Stado -> where exists (
Stado -> select * from sf_wofcust201205
Stado -> where
Stado -> sf_commercerecord.mobileno=sf_wofcust201205.mobileno
Stado -> and sf_commercerecord.feecode=sf_wofcust201205.feecode
Stado -> );
SQLException: ERROR: UNEXPECTED_MESSAGE_RECIEVED (GOT, EXPECTED) :(1 , 41 )

####4 xdb.use_load_for_step=false; Using XDBAgents:

Stado -> select * from a,b;
SQLException: ERROR: Node 1 has aborted execution, cause is: org.postgresql.stado.exception.XDBServerException : Insert Failed :

Stado -> select * from a,b;
SQLException: ERROR: Node 1 has aborted execution, cause is: org.postgresql.stado.exception.XDBServerException : Insert Failed :

Stado -> select * from a,b;
+---------------+
| x | y | x | y |
+---------------+
| 1 | 1 | 1 | 3 |
| 1 | 2 | 1 | 3 |
| 1 | 1 | 1 | 4 |
| 1 | 2 | 1 | 4 |
+---------------+
4 row(s).

Stado -> select * from a,b;
SQLException: ERROR: Node 1 has aborted execution, cause is: org.postgresql.stado.exception.XDBServerException : Insert Failed :

Stado -> select * from a,b;
SQLException: ERROR: Node 1 has aborted execution, cause is: org.postgresql.stado.exception.XDBServerException : Insert Failed :

Stado -> select * from a,b;
+---------------+
| x | y | x | y |
+---------------+
| 1 | 1 | 1 | 3 |
| 1 | 2 | 1 | 3 |
| 1 | 1 | 1 | 4 |
| 1 | 2 | 1 | 4 |
+---------------+
4 row(s).

Stado -> select * from a,b;
SQLException: ERROR: Node 1 has aborted execution, cause is: org.postgresql.stado.exception.XDBServerException : Insert Failed :

It seems to be unstable, and gets ERROR most of the time.