On 04/11/2012 10:44 PM, Kohei Yoshida wrote:
On Wed, 2012-04-11 at 21:29 +0100, Caolán McNamara wrote:
On Wed, 2012-04-11 at 15:56 -0400, Kohei Yoshida wrote:
Hey there,
I'm trying to set up a new unit test for the edit engine core, but
struggling with one crasher.
http://cgit.freedesktop.org/libreoffice/core/commit/?id=6089be1a7a17ae849d8793520e9d8d36296ed5cf
should get you closer anyway, and into a more "mundane" crash with SfxItemPools
Thanks a lot. This helps.
Hopefully any fix of yours will also fix the following problem: My
local --enable-dbgutil "make check" build keeps failing with a crash in
sw_subsequent_rtftok. Valgrind gives
==32152== Invalid read of size 8
==32152== at 0x12DC7689: SfxItemPool::GetDefaultItem(unsigned short) const
(/svl/source/items/itempool.cxx:874)
==32152== by 0x12DC6058: SfxItemPool::Put(SfxPoolItem const&, unsigned
short) (/svl/source/items/itempool.cxx:681)
==32152== by 0x12DC5E44: SfxItemPool::Put(SfxPoolItem const&, unsigned
short) (/svl/source/items/itempool.cxx:663)
==32152== by 0x12DDD519: SfxItemSet::Put(SfxPoolItem const&, unsigned short)
(/svl/source/items/itemset.cxx:609)
==32152== by 0x213CB7E5: SfxItemSet::Put(SfxPoolItem const&)
(/solver/unxlngx6/inc/svl/itemset.hxx:150)
==32152== by 0x214DDDA4:
sdr::properties::TextProperties::ForceDefaultAttributes()
(/svx/source/sdr/properties/textproperties.cxx:384)
==32152== by 0x214DBC82:
sdr::properties::DefaultProperties::GetObjectItemSet() const
(/svx/source/sdr/properties/defaultproperties.cxx:94)
==32152== by 0x215A02D1: SdrObject::GetObjectItemSet() const
(/svx/source/svdraw/svdobj.cxx:1981)
==32152== by 0x215FB757: SdrTextObj::GetTextLeftDistance() const
(/svx/source/svdraw/svdotext.cxx:1792)
==32152== by 0x2161D645: SdrTextObj::NbcResize(Point const&, Fraction const&,
Fraction const&) (/svx/source/svdraw/svdotxtr.cxx:125)
==32152== by 0x215ED66E: SdrPathObj::NbcResize(Point const&, Fraction const&,
Fraction const&) (/svx/source/svdraw/svdopath.cxx:2370)
==32152== by 0x215EDF95: SdrPathObj::NbcSetSnapRect(Rectangle const&)
(/svx/source/svdraw/svdopath.cxx:2466)
==32152== by 0x2159F3A1: SdrObject::SetSnapRect(Rectangle const&)
(/svx/source/svdraw/svdobj.cxx:1687)
==32152== by 0x217086D4:
SvxDrawPage::_CreateSdrObject(com::sun::star::uno::Reference<com::sun::star::drawing::XShape>
const&) (/svx/source/unodraw/unopage.cxx:518)
==32152== by 0x2185BF74:
SvxFmDrawPage::_CreateSdrObject(com::sun::star::uno::Reference<com::sun::star::drawing::XShape>
const&) (/svx/source/form/fmdpage.cxx:102)
==32152== by 0x1F39D352:
SwFmDrawPage::_CreateSdrObject(com::sun::star::uno::Reference<com::sun::star::drawing::XShape>
const&) (/sw/source/core/unocore/unodraw.cxx:333)
==32152== by 0x21709CEF:
SvxDrawPage::CreateSdrObject(com::sun::star::uno::Reference<com::sun::star::drawing::XShape>
const&) (/svx/source/unodraw/unopage.cxx:850)
==32152== by 0x217071B0:
SvxDrawPage::add(com::sun::star::uno::Reference<com::sun::star::drawing::XShape>
const&) (/svx/source/unodraw/unopage.cxx:246)
==32152== by 0x1F39ED4F:
SwXDrawPage::add(com::sun::star::uno::Reference<com::sun::star::drawing::XShape>
const&) (/sw/source/core/unocore/unodraw.cxx:630)
==32152== by 0x255DA9D7: writerfilter::rtftok::RTFDocumentImpl::popState()
(/writerfilter/source/rtftok/rtfdocumentimpl.cxx:3299)
==32152== by 0x25614308: writerfilter::rtftok::RTFTokenizer::resolveParse()
(/writerfilter/source/rtftok/rtftokenizer.cxx:110)
==32152== by 0x255C4960:
writerfilter::rtftok::RTFDocumentImpl::resolve(writerfilter::Stream&)
(/writerfilter/source/rtftok/rtfdocumentimpl.cxx:548)
==32152== by 0x231E0722:
RtfFilter::filter(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>
const&) (/writerfilter/source/filter/RtfFilter.cxx:99)
==32152== by 0x1C359018: SfxObjectShell::ImportFrom(SfxMedium&, bool)
(/sfx2/source/doc/objstor.cxx:2238)
==32152== by 0x1C351224: SfxObjectShell::DoLoad(SfxMedium*)
(/sfx2/source/doc/objstor.cxx:730)
==32152== by 0x1C39E867:
SfxBaseModel::load(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>
const&) (/sfx2/source/doc/sfxbasemodel.cxx:1900)
==32152== by 0x1C3EC76C:
SfxFrameLoader_Impl::load(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>
const&, com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&)
(/sfx2/source/view/frmload.cxx:611)
==32152== by 0x1A9C5EC5: framework::LoadEnv::impl_loadContent()
(/framework/source/loadenv/loadenv.cxx:1160)
==32152== by 0x1A9C2696: framework::LoadEnv::startLoading()
(/framework/source/loadenv/loadenv.cxx:418)
==32152== by 0x1A9C150C:
framework::LoadEnv::loadComponentFromURL(com::sun::star::uno::Reference<com::sun::star::frame::XComponentLoader>
const&, com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&,
rtl::OUString const&, rtl::OUString const&, int,
com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)
(/framework/source/loadenv/loadenv.cxx:184)
==32152== by 0x1A9FFCB0: framework::Desktop::loadComponentFromURL(rtl::OUString const&,
rtl::OUString const&, int,
com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)
(/framework/source/services/desktop.cxx:661)
==32152== by 0xCA59392: unotest::MacrosTest::loadFromDesktop(rtl::OUString
const&) (/unotest/source/cpp/macros_test.cxx:53)
==32152== by 0xC61FB5E: RtfModelTest::load(rtl::OUString const&)
(/sw/qa/extras/rtftok/rtftok.cxx:120)
==32152== by 0xC621359: RtfModelTest::testN695479()
(/sw/qa/extras/rtftok/rtftok.cxx:228)
==32152== by 0xC635A92: CppUnit::TestCaller<RtfModelTest>::runTest()
(/solver/unxlngx6/inc/cppunit/TestCaller.h:166)
==32152== by 0x4F635BA: CppUnit::TestCaseMethodFunctor::operator()() const
(in /data/lo/core/solver/unxlngx6/lib/libcppunit-1.12.so.1)
==32152== by 0xBA193C5: (anonymous namespace)::Prot::protect(CppUnit::Functor
const&, CppUnit::ProtectorContext const&)
(/unotest/source/cpp/unoexceptionprotector/unoexceptionprotector.cxx:80)
==32152== by 0x4F5900A:
CppUnit::ProtectorChain::ProtectFunctor::operator()() const (in
/data/lo/core/solver/unxlngx6/lib/libcppunit-1.12.so.1)
==32152== by 0x4F4AF33: CppUnit::DefaultProtector::protect(CppUnit::Functor
const&, CppUnit::ProtectorContext const&) (in
/data/lo/core/solver/unxlngx6/lib/libcppunit-1.12.so.1)
==32152== by 0x4F5900A:
CppUnit::ProtectorChain::ProtectFunctor::operator()() const (in
/data/lo/core/solver/unxlngx6/lib/libcppunit-1.12.so.1)
==32152== by 0x4F58E9F: CppUnit::ProtectorChain::protect(CppUnit::Functor
const&, CppUnit::ProtectorContext const&) (in
/data/lo/core/solver/unxlngx6/lib/libcppunit-1.12.so.1)
==32152== by 0x4F72077: CppUnit::TestResult::protect(CppUnit::Functor const&,
CppUnit::Test*, std::string const&) (in
/data/lo/core/solver/unxlngx6/lib/libcppunit-1.12.so.1)
==32152== by 0x4F6308B: CppUnit::TestCase::run(CppUnit::TestResult*) (in
/data/lo/core/solver/unxlngx6/lib/libcppunit-1.12.so.1)
==32152== by 0x4F63E2F:
CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) (in
/data/lo/core/solver/unxlngx6/lib/libcppunit-1.12.so.1)
==32152== by 0x4F63CB7: CppUnit::TestComposite::run(CppUnit::TestResult*)
(in /data/lo/core/solver/unxlngx6/lib/libcppunit-1.12.so.1)
==32152== by 0x4F63E2F:
CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) (in
/data/lo/core/solver/unxlngx6/lib/libcppunit-1.12.so.1)
==32152== by 0x4F63CB7: CppUnit::TestComposite::run(CppUnit::TestResult*)
(in /data/lo/core/solver/unxlngx6/lib/libcppunit-1.12.so.1)
==32152== by 0x4F78EFB:
CppUnit::TestRunner::WrappingSuite::run(CppUnit::TestResult*) (in
/data/lo/core/solver/unxlngx6/lib/libcppunit-1.12.so.1)
==32152== by 0x4F71D79: CppUnit::TestResult::runTest(CppUnit::Test*) (in
/data/lo/core/solver/unxlngx6/lib/libcppunit-1.12.so.1)
==32152== by 0x4F7915D: CppUnit::TestRunner::run(CppUnit::TestResult&,
std::string const&) (in /data/lo/core/solver/unxlngx6/lib/libcppunit-1.12.so.1)
==32152== Address 0x198697c0 is 16 bytes before a block of size 160 free'd
==32152== at 0x4A0662E: free
(/builddir/build/BUILD/valgrind-3.6.1/coregrind/m_replacemalloc/vg_replace_malloc.c:366)
==32152== by 0x4C43CCC: rtl_freeMemory_SYSTEM(void*)
(/sal/rtl/source/alloc_global.cxx:285)
==32152== by 0x4C43F31: rtl_freeMemory (/sal/rtl/source/alloc_global.cxx:355)
==32152== by 0x4C6C874: rtl_uString_release
(/sal/rtl/source/strtmpl.cxx:1061)
==32152== by 0x151EC656: rtl::OUString::~OUString()
(/solver/unxlngx6/inc/rtl/ustring.hxx:332)
==32152== by 0x151E5EE2: stoc_defreg::NestedKeyImpl::computeName(rtl::OUString
const&) (/stoc/source/defaultregistry/defaultregistry.cxx:304)
==32152== by 0x151EAF2F:
stoc_defreg::NestedKeyImpl::getResolvedName(rtl::OUString const&)
(/stoc/source/defaultregistry/defaultregistry.cxx:1113)
==32152== by 0x151E5BB2: stoc_defreg::NestedKeyImpl::computeName(rtl::OUString
const&) (/stoc/source/defaultregistry/defaultregistry.cxx:272)
==32152== by 0x151EAF2F:
stoc_defreg::NestedKeyImpl::getResolvedName(rtl::OUString const&)
(/stoc/source/defaultregistry/defaultregistry.cxx:1113)
==32152== by 0x151E5BB2: stoc_defreg::NestedKeyImpl::computeName(rtl::OUString
const&) (/stoc/source/defaultregistry/defaultregistry.cxx:272)
==32152== by 0x151EAF2F:
stoc_defreg::NestedKeyImpl::getResolvedName(rtl::OUString const&)
(/stoc/source/defaultregistry/defaultregistry.cxx:1113)
==32152== by 0x151E5BB2: stoc_defreg::NestedKeyImpl::computeName(rtl::OUString
const&) (/stoc/source/defaultregistry/defaultregistry.cxx:272)
==32152== by 0x151EAF2F:
stoc_defreg::NestedKeyImpl::getResolvedName(rtl::OUString const&)
(/stoc/source/defaultregistry/defaultregistry.cxx:1113)
==32152== by 0x151E5BB2: stoc_defreg::NestedKeyImpl::computeName(rtl::OUString
const&) (/stoc/source/defaultregistry/defaultregistry.cxx:272)
==32152== by 0x151EAF2F:
stoc_defreg::NestedKeyImpl::getResolvedName(rtl::OUString const&)
(/stoc/source/defaultregistry/defaultregistry.cxx:1113)
==32152== by 0x151E5BB2: stoc_defreg::NestedKeyImpl::computeName(rtl::OUString
const&) (/stoc/source/defaultregistry/defaultregistry.cxx:272)
==32152== by 0x151EAF2F:
stoc_defreg::NestedKeyImpl::getResolvedName(rtl::OUString const&)
(/stoc/source/defaultregistry/defaultregistry.cxx:1113)
==32152== by 0x151E5BB2: stoc_defreg::NestedKeyImpl::computeName(rtl::OUString
const&) (/stoc/source/defaultregistry/defaultregistry.cxx:272)
==32152== by 0x151E81CA: stoc_defreg::NestedKeyImpl::openKey(rtl::OUString
const&) (/stoc/source/defaultregistry/defaultregistry.cxx:684)
==32152== by 0x1520B593: stoc_loader::DllComponentLoader::activate(rtl::OUString const&,
rtl::OUString const&, rtl::OUString const&,
com::sun::star::uno::Reference<com::sun::star::registry::XRegistryKey> const&)
(/stoc/source/loader/dllcomponentloader.cxx:207)
==32152== by 0xBF10E94: cppu::ORegistryFactoryHelper::createModuleFactory()
(/cppuhelper/source/factory.cxx:886)
==32152== by 0xBF1019B:
cppu::ORegistryFactoryHelper::createInstanceEveryTime(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext>
const&) (/cppuhelper/source/factory.cxx:736)
==32152== by 0xBF0EB42:
cppu::OSingleFactoryHelper::createInstanceWithContext(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext>
const&) (/cppuhelper/source/factory.cxx:213)
==32152== by 0xBF0F5E6:
cppu::OFactoryComponentHelper::createInstanceWithContext(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext>
const&) (/cppuhelper/source/factory.cxx:489)
==32152== by 0x15247CAF:
stoc_smgr::OServiceManager::createInstanceWithContext(rtl::OUString const&,
com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> const&)
(/stoc/source/servicemanager/servicemanager.cxx:1191)
==32152== by 0x152484A2:
stoc_smgr::OServiceManager::createInstance(rtl::OUString const&)
(/stoc/source/servicemanager/servicemanager.cxx:1301)
==32152== by 0x1C39945C: SfxBaseModel::getDocumentProperties()
(/sfx2/source/doc/sfxbasemodel.cxx:951)
==32152== by 0x255C26A1:
writerfilter::rtftok::RTFDocumentImpl::RTFDocumentImpl(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext>
const&, com::sun::star::uno::Reference<com::sun::star::io::XInputStream> const&,
com::sun::star::uno::Reference<com::sun::star::lang::XComponent> const&,
com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&,
com::sun::star::uno::Reference<com::sun::star::task::XStatusIndicator> const&)
(/writerfilter/source/rtftok/rtfdocumentimpl.cxx:292)
==32152== by 0x255C0B30:
writerfilter::rtftok::RTFDocumentFactory::createDocument(com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext>
const&, com::sun::star::uno::Reference<com::sun::star::io::XInputStream> const&,
com::sun::star::uno::Reference<com::sun::star::lang::XComponent> const&,
com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&,
com::sun::star::uno::Reference<com::sun::star::task::XStatusIndicator> const&)
(/writerfilter/source/rtftok/rtfdocumentfactory.cxx:39)
==32152== by 0x231E06F2:
RtfFilter::filter(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>
const&) (/writerfilter/source/filter/RtfFilter.cxx:98)
==32152== by 0x1C359018: SfxObjectShell::ImportFrom(SfxMedium&, bool)
(/sfx2/source/doc/objstor.cxx:2238)
==32152== by 0x1C351224: SfxObjectShell::DoLoad(SfxMedium*)
(/sfx2/source/doc/objstor.cxx:730)
==32152== by 0x1C39E867:
SfxBaseModel::load(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>
const&) (/sfx2/source/doc/sfxbasemodel.cxx:1900)
==32152== by 0x1C3EC76C:
SfxFrameLoader_Impl::load(com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue>
const&, com::sun::star::uno::Reference<com::sun::star::frame::XFrame> const&)
(/sfx2/source/view/frmload.cxx:611)
==32152== by 0x1A9C5EC5: framework::LoadEnv::impl_loadContent()
(/framework/source/loadenv/loadenv.cxx:1160)
==32152== by 0x1A9C2696: framework::LoadEnv::startLoading()
(/framework/source/loadenv/loadenv.cxx:418)
==32152== by 0x1A9C150C:
framework::LoadEnv::loadComponentFromURL(com::sun::star::uno::Reference<com::sun::star::frame::XComponentLoader>
const&, com::sun::star::uno::Reference<com::sun::star::lang::XMultiServiceFactory> const&,
rtl::OUString const&, rtl::OUString const&, int,
com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)
(/framework/source/loadenv/loadenv.cxx:184)
==32152== by 0x1A9FFCB0: framework::Desktop::loadComponentFromURL(rtl::OUString const&,
rtl::OUString const&, int,
com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> const&)
(/framework/source/services/desktop.cxx:661)
==32152== by 0xCA59392: unotest::MacrosTest::loadFromDesktop(rtl::OUString
const&) (/unotest/source/cpp/macros_test.cxx:53)
==32152== by 0xC61FB5E: RtfModelTest::load(rtl::OUString const&)
(/sw/qa/extras/rtftok/rtftok.cxx:120)
==32152== by 0xC621359: RtfModelTest::testN695479()
(/sw/qa/extras/rtftok/rtftok.cxx:228)
==32152== by 0xC635A92: CppUnit::TestCaller<RtfModelTest>::runTest()
(/solver/unxlngx6/inc/cppunit/TestCaller.h:166)
==32152== by 0x4F635BA: CppUnit::TestCaseMethodFunctor::operator()() const
(in /data/lo/core/solver/unxlngx6/lib/libcppunit-1.12.so.1)
==32152== by 0xBA193C5: (anonymous namespace)::Prot::protect(CppUnit::Functor
const&, CppUnit::ProtectorContext const&)
(/unotest/source/cpp/unoexceptionprotector/unoexceptionprotector.cxx:80)
==32152== by 0x4F5900A:
CppUnit::ProtectorChain::ProtectFunctor::operator()() const (in
/data/lo/core/solver/unxlngx6/lib/libcppunit-1.12.so.1)
==32152== by 0x4F4AF33: CppUnit::DefaultProtector::protect(CppUnit::Functor
const&, CppUnit::ProtectorContext const&) (in
/data/lo/core/solver/unxlngx6/lib/libcppunit-1.12.so.1)
==32152== by 0x4F5900A:
CppUnit::ProtectorChain::ProtectFunctor::operator()() const (in
/data/lo/core/solver/unxlngx6/lib/libcppunit-1.12.so.1)
==32152== by 0x4F58E9F: CppUnit::ProtectorChain::protect(CppUnit::Functor
const&, CppUnit::ProtectorContext const&) (in
/data/lo/core/solver/unxlngx6/lib/libcppunit-1.12.so.1)
==32152== by 0x4F72077: CppUnit::TestResult::protect(CppUnit::Functor const&,
CppUnit::Test*, std::string const&) (in
/data/lo/core/solver/unxlngx6/lib/libcppunit-1.12.so.1)
==32152== by 0x4F6308B: CppUnit::TestCase::run(CppUnit::TestResult*) (in
/data/lo/core/solver/unxlngx6/lib/libcppunit-1.12.so.1)
Looking into the GetDefaultItem call, it gets to the bottom "return
**(pImp->ppStaticDefaults + nPos);", nPos is 14, pImp->aName is
"EditEngineItemPool" and pImp->ppStaticDefaults apparently points to junk.
Stephan
_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice