sd.check fails in CppunitTest_sd_export_tests-ooxml2

Balázs Varga balazs.varga991 at gmail.com
Wed Aug 6 07:12:58 UTC 2025


Hi Regina, Noel,

Thanks for catching this, it also happens on my local Windows when I tried
to run  make CppunitTest_sd_export_tests-ooxml2...
In my case the problem happened after
CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest2, testTdf106867) run successfully,
but
before the next unit test, and somehow between the two when we exit from
the scope of  CPPUNIT_TEST_FIXTURE(SdOOXMLExportTest2, testTdf106867) unit
test
we make these calls and we  InitializeWindow, so we create a
MFPCreateMediaPlayer, CreateMediaItemFromURL with the tmp media file
(avi): file:///C:/cygwin64/tmp/tesB70A.tmp,
which methods (CreateMediaItemFromURL) completes asynchronously. When it
does, MFPlay sends an MFP_EVENT_TYPE_MEDIAITEM_CREATED event, but before it
could have finished,
we dispose and Clear everything (also hwnd windows) related to
MediaWindow/Player and I guess this happened (second call stack)
MFPlay.dll!CMFPInnerPlayer::NotifyMediaItemCreatedEvent(struct
IMFAsyncResult *) Unknown


> avmediawin.dll!avmedia::win::Player::InitializeWindow(bool
bAddSoundWindow) Line 399 C++
  avmediawin.dll!avmedia::win::Window::create(const
com::sun::star::uno::Sequence<com::sun::star::uno::Any> & rArguments) Line
240 C++
  avmediawin.dll!avmedia::win::Player::createPlayerWindow(const
com::sun::star::uno::Sequence<com::sun::star::uno::Any> & aArguments) Line
662 C++
  avmedialo.dll!avmedia::priv::MediaWindowImpl::onURLChanged() Line 460 C++
  avmedialo.dll!avmedia::priv::MediaWindowImpl::setURL(const rtl::OUString
& rURL, const rtl::OUString & rTempURL, const rtl::OUString & rReferer)
Line 267 C++
  avmedialo.dll!avmedia::priv::MediaWindowImpl::executeMediaItem(const
avmedia::MediaItem & rItem) Line 339 C++
  avmedialo.dll!avmedia::MediaWindow::executeMediaItem(const
avmedia::MediaItem & rItem) Line 158 C++

svxcorelo.dll!sdr::contact::ViewObjectContactOfSdrMediaObj::executeMediaItem(const
avmedia::MediaItem & rItem) Line 164 C++

svxcorelo.dll!sdr::contact::ViewObjectContactOfSdrMediaObj::ViewObjectContactOfSdrMediaObj(sdr::contact::ObjectContact
& rObjectContact, sdr::contact::ViewContact & rViewContact, const
avmedia::MediaItem & rMediaItem) Line 44 C++

svxcorelo.dll!sdr::contact::ViewContactOfSdrMediaObj::CreateObjectSpecificViewObjectContact(sdr::contact::ObjectContact
& rObjectContact) Line 40 C++

svxcorelo.dll!sdr::contact::ViewContact::GetViewObjectContact(sdr::contact::ObjectContact
& rObjectContact) Line 88 C++

svxcorelo.dll!sdr::contact::ViewContact::getPrimitive2DSequenceHierarchyOfIndex(unsigned
long a, sdr::contact::DisplayInfo & rDisplayInfo,
sdr::contact::ObjectContact & rObjectContact,
drawinglayer::primitive2d::Primitive2DDecompositionVisitor & rVisitor) Line
323 C++

svxcorelo.dll!sdr::contact::ViewObjectContact::getPrimitive2DSequenceSubHierarchy(sdr::contact::DisplayInfo
& rDisplayInfo, drawinglayer::primitive2d::Primitive2DDecompositionVisitor
& rVisitor) Line 583 C++

svxcorelo.dll!sdr::contact::ViewObjectContactOfPageHierarchy::getPrimitive2DSequenceHierarchy(sdr::contact::DisplayInfo
& rDisplayInfo, drawinglayer::primitive2d::Primitive2DDecompositionVisitor
& rVisitor) Line 371 C++

svxcorelo.dll!sdr::contact::ViewContact::getPrimitive2DSequenceHierarchyOfIndex(unsigned
long a, sdr::contact::DisplayInfo & rDisplayInfo,
sdr::contact::ObjectContact & rObjectContact,
drawinglayer::primitive2d::Primitive2DDecompositionVisitor & rVisitor) Line
324 C++

svxcorelo.dll!sdr::contact::ViewObjectContact::getPrimitive2DSequenceSubHierarchy(sdr::contact::DisplayInfo
& rDisplayInfo, drawinglayer::primitive2d::Primitive2DDecompositionVisitor
& rVisitor) Line 583 C++

svxcorelo.dll!sdr::contact::ViewObjectContactOfSdrPage::getPrimitive2DSequenceHierarchy(sdr::contact::DisplayInfo
& rDisplayInfo, drawinglayer::primitive2d::Primitive2DDecompositionVisitor
& rVisitor) Line 569 C++

svxcorelo.dll!sdr::contact::ObjectContactOfPageView::DoProcessDisplay(sdr::contact::DisplayInfo
& rDisplayInfo) Line 239 C++

svxcorelo.dll!sdr::contact::ObjectContactOfPageView::ProcessDisplay(sdr::contact::DisplayInfo
& rDisplayInfo) Line 120 C++

svxcorelo.dll!SdrPageWindow::RedrawAll(sdr::contact::ViewObjectContactRedirector
* pRedirector) Line 350 C++
  svxcorelo.dll!SdrPageView::CompleteRedraw(SdrPaintWindow & rPaintWindow,
const vcl::Region & rReg, sdr::contact::ViewObjectContactRedirector *
pRedirector) Line 241 C++
  svxcorelo.dll!SdrPaintView::DoCompleteRedraw(SdrPaintWindow &
rPaintWindow, const vcl::Region & rReg,
sdr::contact::ViewObjectContactRedirector * pRedirector) Line 624 C++
  svxcorelo.dll!SdrPaintView::CompleteRedraw(OutputDevice * pOut, const
vcl::Region & rReg, sdr::contact::ViewObjectContactRedirector *
pRedirector) Line 538 C++
  sdlo.dll!sd::View::CompleteRedraw(OutputDevice * pOutDev, const
vcl::Region & rReg, sdr::contact::ViewObjectContactRedirector *
pRedirector) Line 499 C++
  sdlo.dll!sd::DrawView::CompleteRedraw(OutputDevice * pOutDev, const
vcl::Region & rReg, sdr::contact::ViewObjectContactRedirector *
pRedirector) Line 517 C++
  sdlo.dll!sd::DrawViewShell::Paint(const tools::Rectangle & rRect,
sd::Window * pWin) Line 428 C++
  sdlo.dll!sd::Window::Paint(OutputDevice & __formal, const
tools::Rectangle & rRect) Line 213 C++
  vcllo.dll!PaintHelper::DoPaint(const vcl::Region * pRegion) Line 316 C++
  vcllo.dll!vcl::Window::ImplCallPaint(const vcl::Region * pRegion,
ImplPaintFlags nPaintFlags) Line 620 C++
  vcllo.dll!PaintHelper::~PaintHelper() Line 555 C++
  vcllo.dll!vcl::Window::ImplCallPaint(const vcl::Region * pRegion,
ImplPaintFlags nPaintFlags) Line 626 C++
  vcllo.dll!PaintHelper::~PaintHelper() Line 555 C++
  vcllo.dll!vcl::Window::ImplCallPaint(const vcl::Region * pRegion,
ImplPaintFlags nPaintFlags) Line 626 C++
  vcllo.dll!PaintHelper::~PaintHelper() Line 555 C++
  vcllo.dll!vcl::Window::ImplCallPaint(const vcl::Region * pRegion,
ImplPaintFlags nPaintFlags) Line 626 C++
  vcllo.dll!PaintHelper::~PaintHelper() Line 555 C++
  vcllo.dll!vcl::Window::ImplCallPaint(const vcl::Region * pRegion,
ImplPaintFlags nPaintFlags) Line 626 C++
  vcllo.dll!PaintHelper::~PaintHelper() Line 555 C++
  vcllo.dll!vcl::Window::ImplCallPaint(const vcl::Region * pRegion,
ImplPaintFlags nPaintFlags) Line 626 C++
  vcllo.dll!vcl::Window::PaintImmediately() Line 1343 C++
  vcllo.dll!vcl::Window::PaintImmediately() Line 1283 C++
  vcllo.dll!SvTreeListBox::ModelNotification(SvListAction nActionId,
SvTreeListEntry * pEntry1, SvTreeListEntry * pEntry2, unsigned long nPos)
Line 3411 C++
  vcllo.dll!SvTreeList::Broadcast(SvListAction nActionId, SvTreeListEntry *
pEntry1, SvTreeListEntry * pEntry2, unsigned long nPos) Line 82 C++
  vcllo.dll!SvTreeList::Clear() Line 124 C++
  vcllo.dll!SvTreeListBox::Clear() Line 434 C++
  vcllo.dll!SalInstanceIconView::clear() Line 5720 C++
  sdlo.dll!sd::sidebar::LayoutMenu::Clear() Line 551 C++
  sdlo.dll!sd::sidebar::LayoutMenu::Dispose() Line 192 C++
  sdlo.dll!sd::sidebar::LayoutMenu::~LayoutMenu() Line 176 C++
  [External Code]

sfxlo.dll!sfx2::sidebar::SidebarPanelBase::disposing(std::unique_lock<std::mutex>
& __formal) Line 87 C++
  comphelper.dll!comphelper::WeakComponentImplHelperBase::dispose() Line 26
C++

sfxlo.dll!comphelper::WeakComponentImplHelper<com::sun::star::ui::XContextChangeEventListener,com::sun::star::ui::XUIElement,com::sun::star::ui::XToolPanel,com::sun::star::ui::XSidebarPanel,com::sun::star::ui::XUpdateModel>::dispose()
Line 78 C++
  sfxlo.dll!sfx2::sidebar::Panel::~Panel() Line 124 C++
  [External Code]
  sfxlo.dll!sfx2::sidebar::Deck::dispose() Line 93 C++
  vcllo.dll!VclReferenceBase::disposeOnce() Line 38 C++
  sfxlo.dll!VclPtr<sfx2::sidebar::Deck>::disposeAndClear() Line 208 C++
  sfxlo.dll!sfx2::sidebar::ResourceManager::disposeDecks() Line 821 C++
  sfxlo.dll!sfx2::sidebar::SidebarController::disposeDecks() Line 250 C++

sfxlo.dll!sfx2::sidebar::SidebarController::unregisterSidebarForFrame(const
com::sun::star::uno::Reference<com::sun::star::frame::XController> &
xController) Line 214 C++
  sfxlo.dll!sfx2::sidebar::SidebarController::frameAction(const
com::sun::star::frame::FrameActionEvent & rEvent) Line 1583 C++
  fwklo.dll!`anonymous
namespace'::XFrameImpl::implts_sendFrameActionEvent(const
com::sun::star::frame::FrameAction & aAction) Line 2960 C++
  fwklo.dll!`anonymous namespace'::XFrameImpl::setComponent(const
com::sun::star::uno::Reference<com::sun::star::awt::XWindow> &
xComponentWindow, const
com::sun::star::uno::Reference<com::sun::star::frame::XController> &
xController) Line 1458 C++
  fwklo.dll!`anonymous namespace'::XFrameImpl::close(unsigned char
bDeliverOwnership) Line 1706 C++
  sfxlo.dll!SfxFrame::DoClose() Line 104 C++
  sfxlo.dll!SfxViewFrame::Notify(SfxBroadcaster & __formal, const SfxHint &
rHint) Line 1848 C++
  svllo.dll!SfxBroadcaster::Broadcast(const SfxHint & rHint) Line 43 C++
  sfxlo.dll!`anonymous
namespace'::SfxModelListener_Impl::notifyClosing(const
com::sun::star::lang::EventObject & __formal) Line 154 C++
  sfxlo.dll!SfxBaseModel::close(unsigned char bDeliverOwnership) Line 1524
C++
  sfxlo.dll!SfxBaseModel::dispose() Line 750 C++
  sdlo.dll!SdXImpressDocument::dispose() Line 4938 C++
  subsequenttest.dll!UnoApiTest::tearDown() Line 55 C++

test_sd_export_tests-ooxml2.dll!CppUnit::TestCaller<testTdf106867>::tearDown()
Line 185 C++
  cppunitd_dll.dll!CppUnit::TestCaseMethodFunctor::operator()() Line 33 C++
  vclbootstrapprotector.dll!`anonymous namespace'::Protector::protect(const
CppUnit::Functor & functor, const CppUnit::ProtectorContext & __formal)
Line 37 C++
  cppunitd_dll.dll!CppUnit::ProtectorChain::ProtectFunctor::operator()()
Line 21 C++
  unobootstrapprotector.dll!`anonymous namespace'::Prot::protect(const
CppUnit::Functor & functor, const CppUnit::ProtectorContext & __formal)
Line 79 C++
  cppunitd_dll.dll!CppUnit::ProtectorChain::ProtectFunctor::operator()()
Line 21 C++
  unoexceptionprotector.dll!`anonymous namespace'::Prot::protect(const
CppUnit::Functor & functor, const CppUnit::ProtectorContext & context) Line
181 C++
  cppunitd_dll.dll!CppUnit::ProtectorChain::ProtectFunctor::operator()()
Line 21 C++
  cppunitd_dll.dll!CppUnit::DefaultProtector::protect(const
CppUnit::Functor & functor, const CppUnit::ProtectorContext & context) Line
15 C++
  cppunitd_dll.dll!CppUnit::ProtectorChain::ProtectFunctor::operator()()
Line 21 C++
  cppunitd_dll.dll!CppUnit::ProtectorChain::protect(const CppUnit::Functor
& functor, const CppUnit::ProtectorContext & context) Line 86 C++
  cppunitd_dll.dll!CppUnit::TestResult::protect(const CppUnit::Functor &
functor, CppUnit::Test * test, const std::string & shortDescription) Line
184 C++
  cppunitd_dll.dll!CppUnit::TestCase::run(CppUnit::TestResult * result)
Line 95 C++

cppunitd_dll.dll!CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult
* controller) Line 64 C++
  cppunitd_dll.dll!CppUnit::TestComposite::run(CppUnit::TestResult *
result) Line 24 C++

cppunitd_dll.dll!CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult
* controller) Line 64 C++
  cppunitd_dll.dll!CppUnit::TestComposite::run(CppUnit::TestResult *
result) Line 24 C++

cppunitd_dll.dll!CppUnit::TestRunner::WrappingSuite::run(CppUnit::TestResult
* result) Line 47 C++
  cppunitd_dll.dll!CppUnit::TestResult::runTest(CppUnit::Test * test) Line
152 C++
  cppunitd_dll.dll!CppUnit::TestRunner::run(CppUnit::TestResult &
controller, const std::string & testPath) Line 96 C++
  cppunittester.exe!`anonymous namespace'::ProtectedFixtureFunctor::run()
Line 328 C++
  cppunittester.exe!main2() Line 482 C++
  cppunittester.exe!sal_main() Line 612 C++
  cppunittester.exe!main(int argc, char * * argv) Line 602 C++
  [External Code]


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

And this happened:

> MFPlay.dll!CMFPInnerPlayer::NotifyMediaItemCreatedEvent(struct
IMFAsyncResult *) Unknown

MFPlay.dll!CMFPInnerPlayer::NotifyMediaItemCreatedEventAsyncCallback::Invoke(struct
IMFAsyncResult *) Unknown
  MFPlay.dll!CMFPSingleThreadedWorkDelegate::WndProc(struct HWND__
*,unsigned int,unsigned __int64,__int64) Unknown
  user32.dll!00007ffe7f3181d6() Unknown
  user32.dll!00007ffe7f315d2d() Unknown
  vclplug_winlo.dll!ImplSalDispatchMessage(const tagMSG * pMsg) Line 432 C++
  vclplug_winlo.dll!ImplSalYield(bool bWait, bool bHandleAllCurrentEvents)
Line 463 C++
  vclplug_winlo.dll!WinSalInstance::DoYield(bool bWait, bool
bHandleAllCurrentEvents) Line 538 C++
  vcllo.dll!ImplYield(bool i_bWait, bool i_bAllEvents) Line 385 C++
  vcllo.dll!Scheduler::ProcessEventsToIdle() Line 435 C++
  test.dll!test::BootstrapFixture::setUp() Line 114 C++
  subsequenttest.dll!UnoApiTest::setUp() Line 36 C++

test_sd_export_tests-ooxml2.dll!CppUnit::TestCaller<testTdf111518>::setUp()
Line 180 C++
  cppunitd_dll.dll!CppUnit::TestCaseMethodFunctor::operator()() Line 33 C++
  vclbootstrapprotector.dll!`anonymous namespace'::Protector::protect(const
CppUnit::Functor & functor, const CppUnit::ProtectorContext & __formal)
Line 37 C++
  cppunitd_dll.dll!CppUnit::ProtectorChain::ProtectFunctor::operator()()
Line 21 C++
  unobootstrapprotector.dll!`anonymous namespace'::Prot::protect(const
CppUnit::Functor & functor, const CppUnit::ProtectorContext & __formal)
Line 79 C++
  cppunitd_dll.dll!CppUnit::ProtectorChain::ProtectFunctor::operator()()
Line 21 C++
  unoexceptionprotector.dll!`anonymous namespace'::Prot::protect(const
CppUnit::Functor & functor, const CppUnit::ProtectorContext & context) Line
181 C++
  cppunitd_dll.dll!CppUnit::ProtectorChain::ProtectFunctor::operator()()
Line 21 C++
  cppunitd_dll.dll!CppUnit::DefaultProtector::protect(const
CppUnit::Functor & functor, const CppUnit::ProtectorContext & context) Line
15 C++
  cppunitd_dll.dll!CppUnit::ProtectorChain::ProtectFunctor::operator()()
Line 21 C++
  cppunitd_dll.dll!CppUnit::ProtectorChain::protect(const CppUnit::Functor
& functor, const CppUnit::ProtectorContext & context) Line 86 C++
  cppunitd_dll.dll!CppUnit::TestResult::protect(const CppUnit::Functor &
functor, CppUnit::Test * test, const std::string & shortDescription) Line
184 C++
  cppunitd_dll.dll!CppUnit::TestCase::run(CppUnit::TestResult * result)
Line 87 C++

cppunitd_dll.dll!CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult
* controller) Line 64 C++
  cppunitd_dll.dll!CppUnit::TestComposite::run(CppUnit::TestResult *
result) Line 24 C++

cppunitd_dll.dll!CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult
* controller) Line 64 C++
  cppunitd_dll.dll!CppUnit::TestComposite::run(CppUnit::TestResult *
result) Line 24 C++

cppunitd_dll.dll!CppUnit::TestRunner::WrappingSuite::run(CppUnit::TestResult
* result) Line 47 C++
  cppunitd_dll.dll!CppUnit::TestResult::runTest(CppUnit::Test * test) Line
152 C++
  cppunitd_dll.dll!CppUnit::TestRunner::run(CppUnit::TestResult &
controller, const std::string & testPath) Line 96 C++
  cppunittester.exe!`anonymous namespace'::ProtectedFixtureFunctor::run()
Line 328 C++
  cppunittester.exe!main2() Line 482 C++
  cppunittester.exe!sal_main() Line 612 C++
  cppunittester.exe!main(int argc, char * * argv) Line 602 C++
  [External Code]


The error is an access violation (0xC0000005) at DispatchMessageW(pMsg),
attempting to read from address 0xFFFFFFFFFFFFFFFF. This typically means a
pointer in the MSG structure, likely hwnd, is invalid, possibly already
freed or never properly initialized.

What is not clear (yet) why it is only happening when we run this unit test
locally and not on the CI or not even at runtime when we simply
import/export/play a file with media objects.

Fyi: this other commit that Noel pasted
(66d04ec31bbf03b839926ab75288ee0955ec6f04) fixed a different problem, and
not this specific one unfortunately.

Best,
Balázs

--

Noel Grandin <noelgrandin at gmail.com> ezt írta (időpont: 2025. aug. 5., K,
23:18):

>
>
> On Tue, 5 Aug 2025 at 18:45, Regina Henschel <rb.henschel at t-online.de>
> wrote:
>
>> I've found these two problems:
>>
>> testTdf53970 fails with message
>> Throwing InvalidHeaderException
>> *** Exception 0xc0000005 occurred ***
>>          at MFPCreateMediaPlayerEx, address 0x7FFB1D241AD1 in
>> C:\WINDOWS\SYSTEM32\MFPlay.DLL
>>
>>
>>
> Possibly it depends on what media codecs might already have been
> downloaded to your machine.
>
> This is likely fixed by
>
>     commit 66d04ec31bbf03b839926ab75288ee0955ec6f04
>     Author: Balazs Varga <balazs.varga at collabora.com>
>     Date:   Mon Aug 4 09:38:03 2025 +0200
>
>     Related: tdf#62408 tdf#159292 Impress: error handling if media file
> cannot
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/libreoffice/attachments/20250806/1afc0af0/attachment.htm>


More information about the LibreOffice mailing list