Re: [bdbxml] DbXml::QueryPlanFunction::getUriArg unexpected throw.
John Snelson <[email protected]> Tue, 23 Aug 2005 16:40:24 +0100
| Newsgroups | gmane.comp.db.dbxml.general |
|---|---|
| Message-ID | <[email protected]> |
Hi Tom,
I found and fixed this bug recently. The "#" characters are not valid in
a URI, but DB XML wasn't catching the exception that caused properly.
The fix will be present in the next release,
John
Tom McCubbin wrote:
> Ok, first let me preface this email: this report is slightly bogus from
> the 'unlikely to happen in the real world' category of bugs. However,
> in our unit tests, which continue to grow for nxqd we have experienced
> the following 'strange behavior'.
>
> Here's the synopsis in pseudo code:
>
> createContainer( 'db#824948458663#641948458648' );
> query ( 'collection("db#824948458663#641948458648")//Node3' );
>
> This core dumps. However, if the # signs are removed from the container
> name, all is well.
>
> Here is a back trace from gdb at the server side:
>
> #0 0xb7ff8402 in __kernel_vsyscall ()
> #1 0x00a607d5 in raise () from /lib/tls/libc.so.6
> #2 0x00a62149 in abort () from /lib/tls/libc.so.6
> #3 0x009861db in __gnu_cxx::__verbose_terminate_handler () from
> /usr/lib/libstdc++.so.6
> #4 0x00983ef1 in __cxa_call_unexpected () from /usr/lib/libstdc++.so.6
> #5 0x00983f26 in std::terminate () from /usr/lib/libstdc++.so.6
> #6 0x0098406f in __cxa_throw () from /usr/lib/libstdc++.so.6
> #7 0xb790fac7 in DbXml::QueryPlanFunction::getUriArg (this=0x0,
> context=0x8a0c608) at XStr.hpp:24
> #8 0xb7911bbb in DbXml::QueryPlanFunction::generateQueryPlan
> (this=0x8a1cb08, mgr=@0x8a0ca94, txn=0x0, qp=0x8a1cbb4,
> context=0x8a0c608) at QueryPlanFunction.cpp:143
> #9 0xb7916a92 in DbXml::QueryPlanGenerator::generateRawQueryPlans
> (this=0x8a1bd80) at stl_iterator.h:614
> #10 0xb791d106 in DbXml::QueryPlanGenerator::optimize (this=0x8a1bd80,
> query=0x8a1c390) at QueryPlanGenerator.cpp:200
> #11 0xb7914605 in DbXml::Optimizer::startOptimize (this=0x8a1bd80,
> query=0x8a1c390) at Optimizer.cpp:45
> #12 0xb786cb2b in DbXml::QueryExpression::init (this=0x8a0c9e0, txn=0x0)
> at scoped_ptr.hpp:64
> #13 0xb786d6ae in DatabaseQueryExpression (this=0x8a0c9e0,
> query=@0x89e2370, context=@0xb753d2c0, txn=0x0)
> at QueryExpression.cpp:132
> #14 0xb78b20f0 in DbXml::XmlManager::prepare (this=0x89d8338,
> xquery=@0x89e2370, context=@0xb753d2c0) at XmlManager.cpp:414
> #15 0xb78b21d7 in DbXml::XmlManager::query (this=0x89d8338,
> xquery=@0x89e2370, context=@0xb753d2c0, flags=3075723776)
> at XmlManager.cpp:429
> #16 0x08050c5b in org::nxqd::server::query (this=0xbfff54f0,
> query=0x89e2370, namespacePrefix=0x0, namespaceURI=0x0,
> result=@0xb753d350) at server.hpp:275
> #17 0x08050f28 in nxqd__query (soap=0x0, query=0x89e2370,
> namespacePrefix=0x0, namespaceURI=0x0, result=@0xb753d350)
> at server.cpp:333
> #18 0x080658e1 in soap_serve_nxqd__query (soap=0x89e2390) at
> soapServer.cpp:113
> #19 0x08067111 in soap_serve_request (soap=0x89e2390) at soapServer.cpp:74
> #20 0x08067371 in soap_serve (soap=0x89e2390) at soapServer.cpp:49
> #21 0x0804e385 in org::nxqd::server::process_queue (this=0xbfff54f0,
> soap=0x89e2390) at server.cpp:555
> #22 0x0804e3e9 in org::nxqd::server::process_queue (soap=0x89e2390) at
> server.cpp:529
> #23 0x00c80341 in start_thread () from /lib/tls/libpthread.so.0
> #24 0x00afffee in clone () from /lib/tls/libc.so.6
>
> Never mind that i haven't registered to catch unexpected throws for a
> clean shutdown - that's being added now :)
>
> thanks for a great product...hopefully we will be able to offer
> something to aid in a broader DB XML adoption!
>
> -tom mccubbin
>
>
>
> ------------------------------------------
> To remove yourself from this list, send an
> email to [email protected]
>
--
John Snelson, Berkeley DB XML Engineer
Sleepycat Software, Inc
http://www.sleepycat.com
Contracted to Sleepycat through Parthenon Computing Ltd
http://blog.parthcomp.com/dbxml
------------------------------------------
To remove yourself from this list, send an
email to [email protected]