On 07/10/2015 01:09 PM, Varun wrote:
commit 6a0efa9873b1a5cae4ae0719a7ae1eee97838168
Author: Varun <[email protected]>
Date:   Thu Jul 9 23:33:24 2015 +0530

     Added Test for tdf#80663 table row/column delete undo crash

     Change-Id: Ica62926486831f126cce54d651e230cee3360074
     Reviewed-on: https://gerrit.libreoffice.org/16901
     Reviewed-by: Michael Stahl <[email protected]>
     Tested-by: Michael Stahl <[email protected]>

Looks like that new test unearthed an undo-related bug, as my asan+ubsan build now reproducible fails during CppunitTest_sw_uiwriter with

sw/source/core/undo/untbl.cxx:997:25: runtime error: downcast of address 
0x2b35a17ec0a8 which does not point to an object of type 'SwTableBoxFormat'
0x2b35a17ec0a8: note: object is of type 'SwTableFormat'
 00 00 00 00  90 d9 e5 58 35 2b 00 00  a0 d2 7e a1 35 2b 00 00  f8 b1 7e a1 35 
2b 00 00  00 60 6e 97
              ^~~~~~~~~~~~~~~~~~~~~~~
              vptr for 'SwTableFormat'
    #0 0x2b3552aac15e in _SaveTable::CreateNew(SwTable&, bool, bool) 
sw/source/core/undo/untbl.cxx:997:25
    #1 0x2b3552af07cd in SwUndoTableNdsChg::UndoImpl(sw::UndoRedoContext&) 
sw/source/core/undo/untbl.cxx:1801:5
    #2 0x2b35528ca7b7 in SwUndo::UndoWithContext(SfxUndoContext&) 
sw/source/core/undo/undobj.cxx:214:5
    #3 0x2b351a54712b in SfxListUndoAction::UndoWithContext(SfxUndoContext&) 
svl/source/undo/undo.cxx:1352:9
    #4 0x2b351a52c2d6 in SfxUndoManager::ImplUndo(SfxUndoContext*) 
svl/source/undo/undo.cxx:810:13
    #5 0x2b351a52d805 in SfxUndoManager::UndoWithContext(SfxUndoContext&) 
svl/source/undo/undo.cxx:778:12
    #6 0x2b355277e92d in 
sw::UndoManager::impl_DoUndoRedo(sw::UndoManager::UndoOrRedo_t) 
sw/source/core/undo/docundo.cxx:483:16
    #7 0x2b355277fdb3 in sw::UndoManager::Undo() 
sw/source/core/undo/docundo.cxx:516:16
    #8 0x2b352b2e85e4 in SwUiWriterTest::testTdf80663() 
sw/qa/extras/uiwriter/uiwriter.cxx:1283:5
    #9 0x2b352b46599f in CppUnit::TestCaller<SwUiWriterTest>::runTest() 
workdir/UnpackedTarball/cppunit/include/cppunit/TestCaller.h:166:6
    #10 0x2b34eb488a7d in CppUnit::TestCaseMethodFunctor::operator()() const 
workdir/UnpackedTarball/cppunit/src/cppunit/TestCase.cpp:32:5
    #11 0x2b35037c47a6 in (anonymous namespace)::Protector::protect(CppUnit::Functor 
const&, CppUnit::ProtectorContext const&) 
test/source/vclbootstrapprotector.cxx:57:14
    #12 0x2b34eb443fc7 in CppUnit::ProtectorChain::ProtectFunctor::operator()() 
const workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:12
    #13 0x2b34fab4aa96 in (anonymous namespace)::Prot::protect(CppUnit::Functor 
const&, CppUnit::ProtectorContext const&) 
unotest/source/cpp/unobootstrapprotector/unobootstrapprotector.cxx:88:12
    #14 0x2b34eb443fc7 in CppUnit::ProtectorChain::ProtectFunctor::operator()() 
const workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:12
    #15 0x2b34f6e1cda4 in (anonymous namespace)::Prot::protect(CppUnit::Functor 
const&, CppUnit::ProtectorContext const&) 
unotest/source/cpp/unoexceptionprotector/unoexceptionprotector.cxx:63:16
    #16 0x2b34eb443fc7 in CppUnit::ProtectorChain::ProtectFunctor::operator()() 
const workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:12
    #17 0x2b34eb3cb93c in CppUnit::DefaultProtector::protect(CppUnit::Functor 
const&, CppUnit::ProtectorContext const&) 
workdir/UnpackedTarball/cppunit/src/cppunit/DefaultProtector.cpp:15:12
    #18 0x2b34eb443fc7 in CppUnit::ProtectorChain::ProtectFunctor::operator()() 
const workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:20:12
    #19 0x2b34eb43ff71 in CppUnit::ProtectorChain::protect(CppUnit::Functor const&, 
CppUnit::ProtectorContext const&) 
workdir/UnpackedTarball/cppunit/src/cppunit/ProtectorChain.cpp:77:18
    #20 0x2b34eb50a1b5 in CppUnit::TestResult::protect(CppUnit::Functor const&, 
CppUnit::Test*, std::string const&) 
workdir/UnpackedTarball/cppunit/src/cppunit/TestResult.cpp:181:10
    #21 0x2b34eb4855d6 in CppUnit::TestCase::run(CppUnit::TestResult*) 
workdir/UnpackedTarball/cppunit/src/cppunit/TestCase.cpp:91:5
    #22 0x2b34eb48c013 in 
CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) 
workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:64:5
    #23 0x2b34eb48af7d in CppUnit::TestComposite::run(CppUnit::TestResult*) 
workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:23:3
    #24 0x2b34eb48c013 in 
CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) 
workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:64:5
    #25 0x2b34eb48af7d in CppUnit::TestComposite::run(CppUnit::TestResult*) 
workdir/UnpackedTarball/cppunit/src/cppunit/TestComposite.cpp:23:3
    #26 0x2b34eb548cf6 in 
CppUnit::TestRunner::WrappingSuite::run(CppUnit::TestResult*) 
workdir/UnpackedTarball/cppunit/src/cppunit/TestRunner.cpp:47:5
    #27 0x2b34eb508039 in CppUnit::TestResult::runTest(CppUnit::Test*) 
workdir/UnpackedTarball/cppunit/src/cppunit/TestResult.cpp:148:3
    #28 0x2b34eb54a2b6 in CppUnit::TestRunner::run(CppUnit::TestResult&, 
std::string const&) workdir/UnpackedTarball/cppunit/src/cppunit/TestRunner.cpp:96:3
    #29 0x4fbb5c in (anonymous namespace)::ProtectedFixtureFunctor::run() const 
sal/cppunittester/cppunittester.cxx:276:13
    #30 0x4f69dd in sal_main() sal/cppunittester/cppunittester.cxx:379:14
    #31 0x4f4c12 in main sal/cppunittester/cppunittester.cxx:297:1
    #32 0x2b34ed12578f in __libc_start_main 
/usr/src/debug/glibc-2.21/csu/libc-start.c:289
    #33 0x430248 in _start 
(workdir/LinkTarget/Executable/cppunittester+0x430248)

But it is unclear to me what the fix is supposed to be.
_______________________________________________
LibreOffice mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to