dynamobi/dynamobi — Issue #471: [FNL-37] crash in BTreeVerifier during analyze table
Author: dynamobi-build
Created: 2011-12-30 03:28:31+00:00
State: closed
Labels: BTree, FNL

[reporter="elin", created="Wed, 10 May 2006 14:33:41 -0500 (GMT-05:00)"]
Note: "strict" flag will need to be turned on in order to reproduce this.

---------------------------------

To reproduce:

For a debug build and with raksha mapped,

under /open/luciddb/test/sql/pge2/ run

ant test -Dbh.test-names=pge2.analyze

---------------------------------

Here's the backtrace:

[bh] [test-suite-call] [May 10, 2006 2:19:57 PM PDT] BEGIN pge2.analyze.testSql com.lucidera.luciddb.test.SqlTest

[bh] java: BTreeVerifier.cpp:85: fennel::PageId fennel::BTreeVerifier::verifyNode(fennel::OpaqueInteger): Assertion `node.rightSibling == getRightSibling(pageId)' failed.

[bh] *** CAUGHT SIGNAL 6; BACKTRACE:

[bh] /home/elin/open/fennel/libfennel/.libs/libfennel_common-0.5.0.so(fennel::AutoBacktrace::signal_handler(int)+0x37) [0x170c7]

[bh] [0xffffe420]

[bh] [0xffffe410]

[bh] /lib/tls/i686/cmov/libc.so.6(gsignal+0x51) [0xb7e8b9d1]

[bh] /lib/tls/i686/cmov/libc.so.6(abort+0xe9) [0xb7e8d2e9]

[bh] /lib/tls/i686/cmov/libc.so.6(__assert_fail+0x101) [0x21f71]

[bh] /home/elin/open/fennel/libfennel/.libs/libfennel_btree-0.5.0.so(fennel::BTreeVerifier::verifyNode(fennel::OpaqueInteger)+0x4a8) [0x26b68]

[bh] /home/elin/open/fennel/libfennel/.libs/libfennel_btree-0.5.0.so(fennel::BTreeVerifier::verify(bool, bool, bool)+0x125) [0x26675]

[bh] /home/elin/open/fennel/farrago/.libs/libfarrago-0.5.0.so(fennel::CmdInterpreter::visit(fennel::ProxyCmdVerifyIndex&)+0x322) [0x7cbe2]

[bh] /home/elin/open/fennel/farrago/.libs/libfarrago-0.5.0.so(fennel::JniProxyVisitTable::VisitorMethodImpl::execute(fennel::JniProxyVisitor&, fennel::JniProxy&)+0x77) [0xd41e7]

[bh] /home/elin/open/fennel/farrago/.libs/libfarrago-0.5.0.so(fennel::CmdInterpreter::executeCommand(fennel::ProxyCmd&)+0xca) [0x781ca]

[bh] /home/elin/open/fennel/farrago/.libs/libfarrago-0.5.0.so(Java_net_sf_farrago_fennel_FennelStorage_executeJavaCmd+0xa3) [0xb0cf0923]

[bh] [0xb270441b]

[bh] [0xb2aec118]

[bh] [0xb26fe9fa]

[bh] [0xb26fed81]

[bh] [0xb26fed81]

[bh] [0xb26fea7b]

[bh] [0xb26fed81]

[bh] [0xb26fed81]

[bh] [0xb26fea7b]

[bh] [0xb26fe9a4]

[bh] [0xb26fe9a4]

[bh] [0xb26fed81]

[bh] [0xb2a44b2a]

[bh] [0xb2767cc0]

[bh] [0xb26fe923]

[bh] [0xb26fe923]

[bh] [0xb26fe923]

[bh] [0xb26fea7b]

[bh] [0xb26fea7b]

[bh] [0xb26fc157]

BUILD FAILED

/home/elin/open/luciddb/test/sql/pge2/build.xml:135: The following error occurred while executing this line:

/home/elin/open/farrago/buildMacros.xml:408: Java returned: 134

Total time: 4 minutes 4 seconds

elin@nagina:~/open/luciddb/test/sql/pge2$

---------------------------------

[semi-relevant email snippet]

This assert indicates inconsistency in the redundant PageId chain we store for use by prefetch. Most likely it's a bug in the BTree split code somewhere.

Recommendations:

1) John, pass false for the "strict" flag for now so that tests will pass. (I don't think we'll actually use the redundant information until we implement prefetch. We'll see if there's any other inconsistency.)

2) Liz, create an issue noting that the person investigating it will need to turn the "strict" flag back on in order to reproduce it.

The reason Liz wasn't able to reproduce it is that she used a --with-optimization build, which defaults to --without-debug. But Fan's optimized builds use --with-optimization --with-debug, which leaves asserts enabled. I have logged FNL-36 because we want the asserts disabled for optimized builds. Fan's command-line is correct, because we want debug info; it's fennel/configure.in that needs to change.