[MDEV-494] Cassandra: terminate called after throwing an instance of 'apache::thrift::transport::TTransportException' or a phantom row after big INSERT or LOAD Created: 2012-08-28 Updated: 2012-09-14 Resolved: 2012-09-14 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | 10.0.0 |
| Type: | Bug | Priority: | Major |
| Reporter: | Elena Stepanova | Assignee: | Sergei Petrunia |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Issue Links: |
|
||||||||
| Description |
|
When the test case is executed for the first time after Cassandra is started, it passes, but shows that after the INSERT which was supposed to insert 10,000 rows the table contains 10,001 rows. When the very same test case is run for the second time without restarting Cassandra, SELECT COUNT The second SELECT (with GROUP BY) is not necessary for the test case, it just shows that the extra record is for real. Test case:
First run result:
Cassandra exception after the second run:
Server stack trace:
bzr version-info
|
| Comments |
| Comment by Sergei Petrunia [ 2012-08-28 ] |
|
It seems to be easy to get an extra row. I've compared outputs and see that the extra row returned has the same rowkey value as some other row. This means that:
|
| Comment by Sergei Petrunia [ 2012-08-28 ] |
|
Pushed the fix for the part with phantom row. |
| Comment by Sergei Petrunia [ 2012-08-29 ] |
|
Assuming closed. |
| Comment by Sergei Petrunia [ 2012-08-29 ] |
|
We need to also look at why does throwing Exception from Thrift crashed the server. This should not have happened. |
| Comment by Elena Stepanova [ 2012-08-29 ] |
|
In regard to the thrift exception itself, I installed the same versions of thrift, cassandra and server on another machine, also openSUSE 11.3, mimicked the command line, but still didn't get the crash, which is reliably reproducible on the first machine; so I guess it's limited to the configuration. For the record, it was thrift 0.8.0, cassandra 1.1.4, command line /usr/lib/jvm/java/bin/java -ea -XX:+UseThreadPriorities -XX:ThreadPriorityPolicy=42 -Xms629M -Xmx629M -Xmn100M -XX:+HeapDumpOnOutOfMemoryError -Xss128k -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=1 -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -Djava.net.preferIPv4Stack=true -Dcom.sun.management.jmxremote.port=7199 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dlog4j.configuration=log4j-server.properties -Dlog4j.defaultInitOverride=true -Dcassandra-foreground=yes -cp bin/../conf:bin/../build/classes/main:bin/../build/classes/thrift:bin/../lib/antlr-3.2.jar:bin/../lib/apache-cassandra-1.1.4.jar:bin/../lib/apache-cassandra-clientutil-1.1.4.jar:bin/../lib/apache-cassandra-thrift-1.1.4.jar:bin/../lib/avro-1.4.0-fixes.jar:bin/../lib/avro-1.4.0-sources-fixes.jar:bin/../lib/commons-cli-1.1.jar:bin/../lib/commons-codec-1.2.jar:bin/../lib/commons-lang-2.4.jar:bin/../lib/compress-lzf-0.8.4.jar:bin/../lib/concurrentlinkedhashmap-lru-1.3.jar:bin/../lib/guava-r08.jar:bin/../lib/high-scale-lib-1.1.2.jar:bin/../lib/jackson-core-asl-1.9.2.jar:bin/../lib/jackson-mapper-asl-1.9.2.jar:bin/../lib/jamm-0.2.5.jar:bin/../lib/jline-0.9.94.jar:bin/../lib/json-simple-1.1.jar:bin/../lib/libthrift-0.7.0.jar:bin/../lib/log4j-1.2.16.jar:bin/../lib/metrics-core-2.0.3.jar:bin/../lib/servlet-api-2.5-20081211.jar:bin/../lib/slf4j-api-1.6.1.jar:bin/../lib/slf4j-log4j12-1.6.1.jar:bin/../lib/snakeyaml-1.6.jar:bin/../lib/snappy-java-1.0.4.1.jar:bin/../lib/snaptree-0.1.jar org.apache.cassandra.thrift.CassandraDaemon |
| Comment by Sergei Petrunia [ 2012-09-14 ] |
|
Added handling for generic Thrift exceptions, and arbitrary exceptions that might be thrown by Thrift API calls. |