Created attachment 138233 [details] GDB trace With a debug build, add a comment in Calc, and click on the border. => Crash with assertion failure. See attached trace. svx/source/svdraw/svdedxv.cxx:1021: virtual bool SdrObjEditView::SdrBeginTextEdit(SdrObject*, SdrPageView*, vcl::Window*, bool, SdrOutliner*, OutlinerView*, bool, bool, bool): Assertion `!IsTextEdit()' failed. Observed with LO 6.1 master build (5daa364922ba75442e2aa834095e9bef16d141d9) / Ubuntu 17.04.
On pc Debian x86-64 with master sources updated today, I could reproduce this.
*** Bug 114787 has been marked as a duplicate of this bug. ***
** Please read this message in its entirety before responding ** To make sure we're focusing on the bugs that affect our users today, LibreOffice QA is asking bug reporters and confirmers to retest open, confirmed bugs which have not been touched for over a year. There have been thousands of bug fixes and commits since anyone checked on this bug report. During that time, it's possible that the bug has been fixed, or the details of the problem have changed. We'd really appreciate your help in getting confirmation that the bug is still present. If you have time, please do the following: Test to see if the bug is still present with the latest version of LibreOffice from https://www.libreoffice.org/download/ If the bug is present, please leave a comment that includes the information from Help - About LibreOffice. If the bug is NOT present, please set the bug's Status field to RESOLVED-WORKSFORME and leave a comment that includes the information from Help - About LibreOffice. Please DO NOT Update the version field Reply via email (please reply directly on the bug tracker) Set the bug's Status field to RESOLVED - FIXED (this status has a particular meaning that is not appropriate in this case) If you want to do more to help you can test to see if your issue is a REGRESSION. To do so: 1. Download and install oldest version of LibreOffice (usually 3.3 unless your bug pertains to a feature added after 3.3) from http://downloadarchive.documentfoundation.org/libreoffice/old/ 2. Test your bug 3. Leave a comment with your results. 4a. If the bug was present with 3.3 - set version to 'inherited from OOo'; 4b. If the bug was not present in 3.3 - add 'regression' to keyword Feel free to come ask questions or to say hello in our QA chat: https://kiwiirc.com/nextclient/irc.freenode.net/#libreoffice-qa Thank you for helping us make LibreOffice even better for everyone! Warm Regards, QA Team MassPing-UntouchedBug
Still repro with 6.3.0.0.alpha0+ (d23ab724929b0be026de78b64c27321fb447f9da) / Ubuntu 18.04.
Created attachment 149806 [details] bt with debug symbols On pc Debian x86-64 with master sources updated today + enable-dbgutil, I could reproduce this.
I noticed this too: warn:legacy.osl:9301:9301:sfx2/source/control/shell.cxx:211: SfxShell::SetUndoManager: exchanging one non-NULL manager with another non-NULL manager? Suspicious!
Eike: with this patch, I don't reproduce the assert: diff --git a/sc/source/ui/drawfunc/futext.cxx b/sc/source/ui/drawfunc/futext.cxx index f1a4afcd91c4..f1ec728abad0 100644 --- a/sc/source/ui/drawfunc/futext.cxx +++ b/sc/source/ui/drawfunc/futext.cxx @@ -194,7 +194,7 @@ bool FuText::MouseButtonDown(const MouseEvent& rMEvt) //!?? the default values are not correct when result is without outliner ???!? auto pOTemp = pO.get(); - if ( pView->SdrBeginTextEdit(pObj, pPV, pWindow, true, pO.release()) ) + if ( !pView->IsTextEdit() && pView->SdrBeginTextEdit(pObj, pPV, pWindow, true, pO.release()) ) { // subscribe EditEngine-UndoManager rViewShell.SetDrawTextUndo( &pOTemp->GetUndoManager() ); However, I wonder if it just hides the problem. Indeed UndoManager error may give hints about the root cause. I tried to follow the problem of exchanging 2 non null managers so I put some traces to display the thread and undomanager pointer, I finally retrieved these: 1) in EditNote() at: GetViewData().GetDispatcher().Execute( SID_DRAW_NOTEEDIT, SfxCallMode::SYNCHRON | SfxCallMode::RECORD ); (line 508) #0 0x00007ffff55455b6 in SfxShell::SetUndoManager(SfxUndoManager*) (this=0x555558d19b40, pNewUndoMgr=0x555557e8b4c0) at /home/julien/lo/libreoffice/sfx2/source/control/shell.cxx:210 #1 0x00007fffde40b30a in ScDrawTextObjectBar::ScDrawTextObjectBar(ScViewData*) (this=0x555558d19b40, pData=0x555557e32088) at /home/julien/lo/libreoffice/sc/source/ui/drawfunc/drtxtob.cxx:112 #2 0x00007fffde902735 in ScTabViewShell::SetCurSubShell(ObjectSelectionType, bool) (this=0x555557e31fc0, eOST=OST_DrawText, bForce=false) at /home/julien/lo/libreoffice/sc/source/ui/view/tabvwsh4.cxx:816 #3 0x00007fffde901f5f in ScTabViewShell::SetDrawTextShell(bool) (this=0x555557e31fc0, bActive=true) at /home/julien/lo/libreoffice/sc/source/ui/view/tabvwsh4.cxx:656 #4 0x00007fffde8f86b9 in ScTabViewShell::ExecDraw(SfxRequest&) (this=0x555557e31fc0, rReq=...) at /home/julien/lo/libreoffice/sc/source/ui/view/tabvwsh2.cxx:189 #5 0x00007fffde8f6e9d in SfxStubScTabViewShellExecDraw(SfxShell*, SfxRequest&) (pShell=0x555557e31fc0, rReq=...) at /home/julien/lo/libreoffice/workdir/SdiTarget/sc/sdi/scslots.hxx:1434 #6 0x00007ffff54fb508 in SfxShell::CallExec(void (*)(SfxShell*, SfxRequest&), SfxRequest&) (this=0x555557e31fc0, pFunc=0x7fffde8f6e6f <SfxStubScTabViewShellExecDraw(SfxShell*, SfxRequest&)>, rReq=...) at /home/julien/lo/libreoffice/include/sfx2/shell.hxx:207 #7 0x00007ffff54f23a5 in SfxDispatcher::Call_Impl(SfxShell&, SfxSlot const&, SfxRequest&, bool) (this=0x555557e280a0, rShell=..., rSlot=..., rReq=..., bRecord=true) at /home/julien/lo/libreoffice/sfx2/source/control/dispatch.cxx:356 #8 0x00007ffff54f4de1 in SfxDispatcher::Execute_(SfxShell&, SfxSlot const&, SfxRequest&, SfxCallMode) (this=0x555557e280a0, rShell=..., rSlot=..., rReq=..., eCallMode=(SfxCallMode::SYNCHRON | SfxCallMode::RECORD)) at /home/julien/lo/libreoffice/sfx2/source/control/dispatch.cxx:856 #9 0x00007ffff54f54c1 in SfxDispatcher::Execute(unsigned short, SfxCallMode, SfxPoolItem const**, unsigned short, SfxPoolItem const**) (this=0x555557e280a0, nSlot=26081, eCall=(SfxCallMode::SYNCHRON | SfxCallMode::RECORD), pArgs=0x0, nModi=0, pInternalArgs=0x0) at /home/julien/lo/libreoffice/sfx2/source/control/dispatch.cxx:962 #10 0x00007fffde984f1a in ScViewFunc::EditNote() (this=0x555557e32078) at /home/julien/lo/libreoffice/sc/source/ui/view/viewfun6.cxx:508 2) In the same method at line 514 #0 0x00007ffff55455b6 in SfxShell::SetUndoManager(SfxUndoManager*) (this=0x555558d19b40, pNewUndoMgr=0x555559139760) at /home/julien/lo/libreoffice/sfx2/source/control/shell.cxx:210 #1 0x00007fffde903539 in ScTabViewShell::SetDrawTextUndo(SfxUndoManager*) (this=0x555557e31fc0, pNewUndoMgr=0x555559139760) at /home/julien/lo/libreoffice/sc/source/ui/view/tabvwsh4.cxx:1016 #2 0x00007fffde430d8b in FuText::SetInEditMode(SdrObject*, Point const*, bool, KeyEvent const*) (this=0x555558c71f60, pObj=0x555558f5fd00, pMousePixel=0x0, bCursorToEnd=false, pInitialKey=0x0) at /home/julien/lo/libreoffice/sc/source/ui/drawfunc/futext.cxx:588 #3 0x00007fffde984f8b in ScViewFunc::EditNote() (this=0x555557e32078) at /home/julien/lo/libreoffice/sc/source/ui/view/viewfun6.cxx:514 First retrieves pViewData->GetSfxDocShell()->GetUndoManager() Second one retrieves pOTemp->GetUndoManager() Any thoughts?
Not seeing this in a current master build, LO 7.2.0.0.alpha0+ (8478c954814623441d62838743737063fec8e6c0) / Ubuntu.
(In reply to Aron Budea from comment #8) > Not seeing this in a current master build, LO 7.2.0.0.alpha0+ > (8478c954814623441d62838743737063fec8e6c0) / Ubuntu. Assertions only happen in debug builds. Did you try a debug build?
(In reply to Eike Rathke from comment #9) > Assertions only happen in debug builds. Did you try a debug build? Yes. The only thing I couldn't check is whether I'm taking the right steps, because I don't have the original build anymore. I'm seeing the following in the console: warn:svx:777121:777121:svx/source/svdraw/svdedxv.cxx:1067: SdrBeginTextEdit called when IsTextEdit() is already true. warn:legacy.osl:777121:777121:sc/source/ui/Accessibility/AccessibleDocument.cxx:994: here is a selected shape which is not in the childlist warn:legacy.osl:777121:777121:sc/source/ui/Accessibility/AccessibleDocument.cxx:994: here is a selected shape which is not in the childlist warn:legacy.osl:777121:777121:sfx2/source/control/shell.cxx:208: SfxShell::SetUndoManager: exchanging one non-NULL manager with another non-NULL manager? Suspicious! Seems this was changed for bug 127941, and the fix (removing the assert) is the following commit: https://cgit.freedesktop.org/libreoffice/core/commit/?id=1dbaff61609d7643311b968bef69be4276b109e7 author Jan Holesovsky <kendy@collabora.com> 2019-10-04 00:09:15 +0200 committer Tor Lillqvist <tml@collabora.com> 2019-10-04 10:45:52 +0200 tdf#127941: Don't be _that_ eager to assert(!IsTextEdit());
Thanks Aron!