Comment 14 for bug 1317976

Revision history for this message
Martin Gieseking (martin-gieseking) wrote :

Thank you again for looking into this. I really appreciate your help.

I just tried to build the sources from the gcc-4.9 branch. I'm sorry to tell that the resulting binary segfaults or aborts abnormally on more test queries than zorba 3.0.

Here is the valgrind output for val-inplace2.xq2.xq:

$ valgrind ./zorba ../../test/rbkt/Queries/zorba/schemas/val-inplace2.xq2.xq
==24657== Memcheck, a memory error detector
==24657== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
==24657== Using Valgrind-3.10.0.SVN and LibVEX; rerun with -h for copyright info
==24657== Command: ./zorba ../../test/rbkt/Queries/zorba/schemas/val-inplace2.xq
==24657==
<?xml version="1.0" encoding="UTF-8"?>
==24657== Invalid read of size 8
==24657== at 0x57E77A4: zorba::store::Item::removeReference() (item.h:125)
==24657== by 0x55BD903: zorba::ForVarState::~ForVarState() (item_handle.h:62)
==24657== by 0x55C0F0E: zorba::NoaryBaseIterator<zorba::ForVarIterator, zorba::ForVarState>::closeImpl(zorba::PlanState&) (plan_iterator.h:314)
==24657== by 0x5564FA7: zorba::UnaryBaseIterator<zorba::ApplyIterator, zorba::ApplyIteratorState>::closeImpl(zorba::PlanState&) (plan_iterator.h:441)
==24657== by 0x563AB09: zorba::TransformIterator::closeImpl(zorba::PlanState&) (plan_iterator.h:441)
==24657== by 0x5556B54: zorba::PlanWrapper::close() (plan_iterator.h:441)
==24657== by 0x505D731: zorba::XQueryImpl::dispose(zorba::rchandle<zorba::PlanWrapper> const&) (xqueryimpl.cpp:726)
==24657== by 0x50627E4: zorba::XQueryImpl::execute(std::ostream&, Zorba_SerializerOptions const*) (xqueryimpl.cpp:1145)
==24657== by 0x40D89B: compileAndExecute(zorba::Zorba*, zorba::SmartPtr<zorba::StaticContext>&, std::string const&, std::istream&, std::ostream&, Timers&) (zorbacmd.cpp:525)
==24657== by 0x40FD4A: main (zorbacmd.cpp:824)
==24657== Address 0xa9a90c0 is 16 bytes inside a block of size 432 free'd
==24657== at 0x4C2D103: operator delete(void*) (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==24657== by 0x58641F2: zorba::simplestore::PULImpl::~PULImpl() (simple_pul.cpp:152)
==24657== by 0x57E76C0: zorba::store::Item::free() (item.cpp:45)
==24657== by 0x57E7877: zorba::store::Item::removeReference() (item.cpp:207)
==24657== by 0x55BD903: zorba::ForVarState::~ForVarState() (item_handle.h:62)
==24657== by 0x55C0F0E: zorba::NoaryBaseIterator<zorba::ForVarIterator, zorba::ForVarState>::closeImpl(zorba::PlanState&) (plan_iterator.h:314)
==24657== by 0x563AAFC: zorba::TransformIterator::closeImpl(zorba::PlanState&) (plan_iterator.h:441)
==24657== by 0x5556B54: zorba::PlanWrapper::close() (plan_iterator.h:441)
==24657== by 0x505D731: zorba::XQueryImpl::dispose(zorba::rchandle<zorba::PlanWrapper> const&) (xqueryimpl.cpp:726)
==24657== by 0x50627E4: zorba::XQueryImpl::execute(std::ostream&, Zorba_SerializerOptions const*) (xqueryimpl.cpp:1145)
==24657== by 0x40D89B: compileAndExecute(zorba::Zorba*, zorba::SmartPtr<zorba::StaticContext>&, std::string const&, std::istream&, std::ostream&, Timers&) (zorbacmd.cpp:525)
==24657== by 0x40FD4A: main (zorbacmd.cpp:824)
==24657==
==24657== Invalid read of size 8
==24657== at 0x57E7861: zorba::store::Item::removeReference() (item.cpp:206)
==24657== by 0x55BD903: zorba::ForVarState::~ForVarState() (item_handle.h:62)
==24657== by 0x55C0F0E: zorba::NoaryBaseIterator<zorba::ForVarIterator, zorba::ForVarState>::closeImpl(zorba::PlanState&) (plan_iterator.h:314)
==24657== by 0x5564FA7: zorba::UnaryBaseIterator<zorba::ApplyIterator, zorba::ApplyIteratorState>::closeImpl(zorba::PlanState&) (plan_iterator.h:441)
==24657== by 0x563AB09: zorba::TransformIterator::closeImpl(zorba::PlanState&) (plan_iterator.h:441)
==24657== by 0x5556B54: zorba::PlanWrapper::close() (plan_iterator.h:441)
==24657== by 0x505D731: zorba::XQueryImpl::dispose(zorba::rchandle<zorba::PlanWrapper> const&) (xqueryimpl.cpp:726)
==24657== by 0x50627E4: zorba::XQueryImpl::execute(std::ostream&, Zorba_SerializerOptions const*) (xqueryimpl.cpp:1145)
==24657== by 0x40D89B: compileAndExecute(zorba::Zorba*, zorba::SmartPtr<zorba::StaticContext>&, std::string const&, std::istream&, std::ostream&, Timers&) (zorbacmd.cpp:525)
==24657== by 0x40FD4A: main (zorbacmd.cpp:824)
==24657== Address 0xa9a90b8 is 8 bytes inside a block of size 432 free'd
==24657== at 0x4C2D103: operator delete(void*) (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==24657== by 0x58641F2: zorba::simplestore::PULImpl::~PULImpl() (simple_pul.cpp:152)
==24657== by 0x57E76C0: zorba::store::Item::free() (item.cpp:45)
==24657== by 0x57E7877: zorba::store::Item::removeReference() (item.cpp:207)
==24657== by 0x55BD903: zorba::ForVarState::~ForVarState() (item_handle.h:62)
==24657== by 0x55C0F0E: zorba::NoaryBaseIterator<zorba::ForVarIterator, zorba::ForVarState>::closeImpl(zorba::PlanState&) (plan_iterator.h:314)
==24657== by 0x563AAFC: zorba::TransformIterator::closeImpl(zorba::PlanState&) (plan_iterator.h:441)
==24657== by 0x5556B54: zorba::PlanWrapper::close() (plan_iterator.h:441)
==24657== by 0x505D731: zorba::XQueryImpl::dispose(zorba::rchandle<zorba::PlanWrapper> const&) (xqueryimpl.cpp:726)
==24657== by 0x50627E4: zorba::XQueryImpl::execute(std::ostream&, Zorba_SerializerOptions const*) (xqueryimpl.cpp:1145)
==24657== by 0x40D89B: compileAndExecute(zorba::Zorba*, zorba::SmartPtr<zorba::StaticContext>&, std::string const&, std::istream&, std::ostream&, Timers&) (zorbacmd.cpp:525)
==24657== by 0x40FD4A: main (zorbacmd.cpp:824)
==24657==
==24657== Invalid write of size 8
==24657== at 0x57E7869: zorba::store::Item::removeReference() (item.cpp:206)
==24657== by 0x55BD903: zorba::ForVarState::~ForVarState() (item_handle.h:62)
==24657== by 0x55C0F0E: zorba::NoaryBaseIterator<zorba::ForVarIterator, zorba::ForVarState>::closeImpl(zorba::PlanState&) (plan_iterator.h:314)
==24657== by 0x5564FA7: zorba::UnaryBaseIterator<zorba::ApplyIterator, zorba::ApplyIteratorState>::closeImpl(zorba::PlanState&) (plan_iterator.h:441)
==24657== by 0x563AB09: zorba::TransformIterator::closeImpl(zorba::PlanState&) (plan_iterator.h:441)
==24657== by 0x5556B54: zorba::PlanWrapper::close() (plan_iterator.h:441)
==24657== by 0x505D731: zorba::XQueryImpl::dispose(zorba::rchandle<zorba::PlanWrapper> const&) (xqueryimpl.cpp:726)
==24657== by 0x50627E4: zorba::XQueryImpl::execute(std::ostream&, Zorba_SerializerOptions const*) (xqueryimpl.cpp:1145)
==24657== by 0x40D89B: compileAndExecute(zorba::Zorba*, zorba::SmartPtr<zorba::StaticContext>&, std::string const&, std::istream&, std::ostream&, Timers&) (zorbacmd.cpp:525)
==24657== by 0x40FD4A: main (zorbacmd.cpp:824)
==24657== Address 0xa9a90b8 is 8 bytes inside a block of size 432 free'd
==24657== at 0x4C2D103: operator delete(void*) (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==24657== by 0x58641F2: zorba::simplestore::PULImpl::~PULImpl() (simple_pul.cpp:152)
==24657== by 0x57E76C0: zorba::store::Item::free() (item.cpp:45)
==24657== by 0x57E7877: zorba::store::Item::removeReference() (item.cpp:207)
==24657== by 0x55BD903: zorba::ForVarState::~ForVarState() (item_handle.h:62)
==24657== by 0x55C0F0E: zorba::NoaryBaseIterator<zorba::ForVarIterator, zorba::ForVarState>::closeImpl(zorba::PlanState&) (plan_iterator.h:314)
==24657== by 0x563AAFC: zorba::TransformIterator::closeImpl(zorba::PlanState&) (plan_iterator.h:441)
==24657== by 0x5556B54: zorba::PlanWrapper::close() (plan_iterator.h:441)
==24657== by 0x505D731: zorba::XQueryImpl::dispose(zorba::rchandle<zorba::PlanWrapper> const&) (xqueryimpl.cpp:726)
==24657== by 0x50627E4: zorba::XQueryImpl::execute(std::ostream&, Zorba_SerializerOptions const*) (xqueryimpl.cpp:1145)
==24657== by 0x40D89B: compileAndExecute(zorba::Zorba*, zorba::SmartPtr<zorba::StaticContext>&, std::string const&, std::istream&, std::ostream&, Timers&) (zorbacmd.cpp:525)
==24657== by 0x40FD4A: main (zorbacmd.cpp:824)
==24657==
DDType==24657==
==24657== HEAP SUMMARY:
==24657== in use at exit: 0 bytes in 0 blocks
==24657== total heap usage: 15,128 allocs, 15,128 frees, 8,854,421 bytes allocated
==24657==
==24657== All heap blocks were freed -- no leaks are possible
==24657==
==24657== For counts of detected and suppressed errors, rerun with: -v
==24657== ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 0 from 0)