Forum: Building VoltDB Applications

Post: "Mispartitioned Tuple in single-partition plan." in Hello World Sample

"Mispartitioned Tuple in single-partition plan." in Hello World Sample
TobiasBraeutigam
Aug 6, 2010
Dear all,

I receive an "Mispartitioned Tuple in single-partition plan." error in the Hello World Sample.
I copied the unmodified Hello World sources from the Getting Started Guide.
Logs enclosed below.

Environment:
-AMD x64 CPU, 1GB RAM VMWare *SX Server and Fedora 11
-Sun JDK (jdk-7-ea-bin-b103-linux-x64-29_jul_2010-rpm)
-VoltDB 1.1.01

Is the 1 GB RAM a bottleneck?

Thanks for Your help
Tobias

Logs
1. Server:
java -Djava.library.path=/opt/voltdb/voltdb org.voltdb.VoltDB catalog helloworld.jar deployment deployment.xml
No logging configuration supplied via -Dlog4j.configuration. Supplying default config that logs to INFO or higher to STDOUT
34 [main] INFO HOST - Loading...
_ __ ____ ____ ____
| | / /___ / / /_/ __ \/ __ )
| | / / __ \/ / __/ / / / __ |
| |/ / /_/ / / /_/ /_/ / /_/ /
|___/\____/_/\__/_____/_____/
Initialization Log Output:
--------------------------------
43 [main] INFO HOST - Build: 1.1.01 https://svn.voltdb.com/eng/trunk?revision=806
65 [main] INFO HOST - HTTP admin console unable to bind to port 8080
65 [main] INFO HOST - HTTP admin console listening on port 8081
65 [main] INFO HOST - Loading application catalog jarfile from /root/helloworld/helloworld.jar
184 [main] INFO HOST - URL of deployment info: deployment.xml
441 [main] INFO HOST - Catalog leader: localhost hosts, sites 1, 2
485 [main] INFO HOST - Creating host manager for 1 hosts using leader localhost/127.0.0.1
497 [Thread-4] INFO HOST - Connecting to VoltDB cluster as the leader...
497 [Thread-4] INFO HOST - Maximum clock/network skew is 0 milliseconds (according to leader)
544 [main] INFO HOST - Attempting to load native VoltDB library voltdb-1.1.01. Expect to see a confirmation following this upon success. If none appears then you may need to compile VoltDB for your platform or you may be running a 32-bit JVM.
547 [main] INFO HOST - Successfully loaded native VoltDB library voltdb-1.1.01.
Creating Execution Engine on clusterIndex=1, site_id = 2...
Creating Execution Engine on clusterIndex=1, site_id = 1...
863 [main] INFO HOST - Internal profiling is disabled on multi-partition hosts.
INITIALIZING INITIATOR ID: 1, SITEID: 0
924 [main] INFO HOST - Starting the network
930 [main] INFO HOST - --------------------------------
Server completed initialization.
[ERROR] [../../src/ee/executors/insertexecutor.cpp:170:p_execute()] 2010-08-06 15:17:57 - Mispartitioned Tuple in single-partition plan.
null
2. Client
java Client
No logging configuration supplied via -Dlog4j.configuration. Supplying default config that logs to INFO or higher to STDOUT
Exception in thread "main" org.voltdb.client.ProcCallException:
===============================================================================
VOLTDB ERROR: UNEXPECTED FAILURE:
Possible Null Pointer Exception (EEException)
at Insert.run(Insert.java:19)
===============================================================================
at org.voltdb.client.ClientImpl.callProcedure(ClientImpl.java:148)
at Client.main(Client.java:19)
Caused by: org.voltdb.exceptions.EEException:
at org.voltdb.exceptions.SerializableException$SerializableExceptions$2.deserializeException(SerializableException.java:59)
at org.voltdb.exceptions.SerializableException.deserializeFromBuffer(SerializableException.java:184)
at org.voltdb.ClientResponseImpl.readExternal(ClientResponseImpl.java:173)
at org.voltdb.messaging.FastDeserializer.readObject(FastDeserializer.java:114)
at org.voltdb.client.Distributer$NodeConnection.handleMessage(Distributer.java:205)
at org.voltdb.network.VoltPort.call(VoltPort.java:142)
at org.voltdb.network.VoltNetwork$3.run(VoltNetwork.java:464)
at org.voltdb.network.VoltNetwork.invokeCallbacks(VoltNetwork.java:497)
at org.voltdb.network.VoltNetwork.run(VoltNetwork.java:348)
at java.lang.Thread.run(Thread.java:717)
Tobias, A defect was reported
rbetts
Aug 6, 2010
Tobias,

A defect was reported against that example on the forums yesterday. I believe what you are seeing is a consequence of that error.

That defect is tracked here: https://issues.voltdb.com/browse/ENG-683

This should be fixed very shortly,

*--Ryan.
Next release
TobiasBraeutigam
Aug 6, 2010
Hi Ryan,

thanks for reponding virtually immediately.

I understand this is a defect of the sample code, right?

However, when is the next release scheduled,
where it will be available?

My best
Tobias
Yes, this is a programming
rbetts
Aug 6, 2010
Hi Ryan,

thanks for reponding virtually immediately.

I understand this is a defect of the sample code, right?

However, when is the next release scheduled,
where it will be available?

My best
Tobias




Yes, this is a programming error in the example. I think we will spin a new release with this fixed next week. When we do, we will post it to the downloads page. In the meantime, you can fix your copy of the example pretty easily by applying this diff to Insert.java. (the procedure should partition on its 3rd partition, not its first parameter. These partition parameters are 0-based.)

diff --git a/examples/helloworld/Insert.java b/examples/helloworld/Insert.java
index 7cbf713..2140be5 100644
--- a/examples/helloworld/Insert.java
+++ b/examples/helloworld/Insert.java
@@ -1,7 +1,7 @@
import org.voltdb.*;
@ProcInfo(
- partitionInfo = "HELLOWORLD.DIALECT: 0",
+ partitionInfo = "HELLOWORLD.DIALECT: 2",
singlePartition = true
)

I apologize for these errors in what should be a simple example and hope they haven't made exploring VoltDB difficult.

*--Ryan.
Architecture
TobiasBraeutigam
Aug 9, 2010
Yes, this is a programming error in the example. I think we will spin a new release with this fixed next week. When we do, we will post it to the downloads page. In the meantime, you can fix your copy of the example pretty easily by applying this diff to Insert.java. (the procedure should partition on its 3rd partition, not its first parameter. These partition parameters are 0-based.)..
*--Ryan.


Dear Ryan,

thanks for posting the solution. The sample works now!

We consider using VoltDB to replace a DWH, reliability is crucial.
In a production evironment, the client would have crashed_the_server.
Right?

Or would it have crashed _one server (or VoltDB node) only?
Some links to more info would be helpful.

Best Regards
Tobias
http://twitter.com/syntegris
Tobias, Errors like this
rbetts
Aug 9, 2010
Dear Ryan,

thanks for posting the solution. The sample works now!

We consider using VoltDB to replace a DWH, reliability is crucial.
In a production evironment, the client would have crashed_the_server.
Right?

Or would it have crashed _one server (or VoltDB node) only?
Some links to more info would be helpful.

Best Regards
Tobias
http://twitter.com/syntegris



Tobias,

Errors like this cause rollback of the failed transaction. Zero servers should crash or fail as a result. The stack trace in your original post is from the client, not a server database node.

If you did see a VoltDB server crash, please bring that to our attention so that we can find and fix any underlying defect.

Thank you,
*--Ryan.