Created attachment 179061 [details] Deadlock bug Dear Sir/Madam, I’m using Libreoffice base 7.3.0.3 with Firebird 3.0. I wonder why the following open report macro (executed with a command button in a Form) works perfectly fine in Ubuntu 20.04 but not in Windows 10 (= deadlock): >thisdatabasedocument.reportdocuments.getbyname(“PrintInvoice”).open Moreover, if the macro is executed from macro-editor, it works perfectly fine (even in Windows 10). But if the macro is executed from a button in a form, Libreoffice base crashes. Please find the attached odb file. The problem occurs when I use “Invoice Bisnis” button in “Invoice Daftar” Form to open “InvoiceBisnis” report.
Repro using current master. Also repro with Version: 7.0.0.3 (x64) Build ID: 8061b3e9204bef6b321a21033174034a5e2ea88e CPU threads: 12; OS: Windows 10.0 Build 19044; UI render: default; VCL: win Locale: en-US (ru_RU); UI: en-US Calc: CL. The sample doesn't work correctly on older versions (6.4 and earlier), where pressing the "Invoice Bisnis" button produces "General Error" dialog, followed by "The document "InvoiceBisnis" could not be opened." dialog, so not possible to see if that is a regression. Related discussion in [1] suggests that it may work in some configuration; mention of working 7.2 on Windows made me initially suspect a regression in 7.3, but I also see the deadlock in Version: 7.2.0.4 (x64) / LibreOffice Community Build ID: 9a9c6381e3f7a62afc1329bd359cc48accb6435b CPU threads: 12; OS: Windows 10.0 Build 19044; UI render: Skia/Raster; VCL: win Locale: ru-RU (ru_RU); UI: en-US Calc: CL so it must be another difference in play here. The deadlock is: Thread 0: > ntdll.dll!NtWaitForAlertByThreadId() Unknown > ntdll.dll!RtlpWaitOnAddressWithTimeout() Unknown > ntdll.dll!RtlpWaitOnAddress() Unknown > ntdll.dll!RtlpWaitOnCriticalSection() Unknown > ntdll.dll!RtlpEnterCriticalSectionContended() Unknown > ntdll.dll!RtlEnterCriticalSection() Unknown > sal3.dll!osl_acquireMutex(_oslMutexImpl * Mutex) Line 65 C++ > dbulo.dll!osl::Mutex::acquire() Line 61 C++ > dbulo.dll!osl::Guard<osl::Mutex>::Guard<osl::Mutex>(osl::Mutex & t) Line 143 C++ > dbulo.dll!dbaui::OGenericUnoController::frameAction(const com::sun::star::frame::FrameActionEvent & aEvent) Line 753 C++ > fwklo.dll!`anonymous namespace'::XFrameImpl::implts_sendFrameActionEvent(const com::sun::star::frame::FrameAction & aAction) Line 2950 C++ > fwklo.dll!`anonymous namespace'::XFrameImpl::deactivate() Line 1359 C++ > fwklo.dll!`anonymous namespace'::XFrameImpl::deactivate() Line 1364 C++ > fwklo.dll!`anonymous namespace'::XFrameImpl::deactivate() Line 1333 C++ > fwklo.dll!framework::Desktop::setActiveFrame(const com::sun::star::uno::Reference<com::sun::star::frame::XFrame> & xFrame) Line 786 C++ > fwklo.dll!`anonymous namespace'::XFrameImpl::activate() Line 1267 C++ > fwklo.dll!`anonymous namespace'::XFrameImpl::windowActivated(const com::sun::star::lang::EventObject & __formal) Line 2481 C++ > tklo.dll!TopWindowListenerMultiplexer::windowActivated(const com::sun::star::lang::EventObject & evt) Line 115 C++ > tklo.dll!VCLXWindow::ProcessWindowEvent(const VclWindowEvent & rVclWindowEvent) Line 552 C++ > tklo.dll!VCLXWindow::WindowEventListener(VclWindowEvent & rEvent) Line 401 C++ > tklo.dll!VCLXWindow::LinkStubWindowEventListener(void * instance, VclWindowEvent & data) Line 394 C++ > vcllo.dll!Link<VclWindowEvent &,void>::Call(VclWindowEvent & data) Line 111 C++ > vcllo.dll!vcl::Window::CallEventListeners(VclEventId nEvent, void * pData) Line 259 C++ > vcllo.dll!vcl::Window::ImplCallActivateListeners(vcl::Window * pOld) Line 3429 C++ > vcllo.dll!vcl::Window::ImplGrabFocus(GetFocusFlags nFlags) Line 386 C++ > vcllo.dll!vcl::Window::GrabFocus() Line 2985 C++ > vcllo.dll!vcl::Window::ImplAsyncFocusHdl(void * __formal) Line 2007 C++ > vcllo.dll!vcl::Window::LinkStubImplAsyncFocusHdl(void * instance, void * data) Line 1980 C++ > vcllo.dll!Link<void *,void>::Call(void * data) Line 111 C++ > vcllo.dll!ImplHandleUserEvent(ImplSVEvent * pSVEvent) Line 2235 C++ > vcllo.dll!ImplWindowFrameProc(vcl::Window * _pWindow, SalEvent nEvent, const void * pEvent) Line 2803 C++ > vcllo.dll!SalFrame::CallCallback(SalEvent nEvent, const void * pEvent) Line 308 C++ > vclplug_winlo.dll!ImplHandleUserEvent(HWND__ * hWnd, __int64 lParam) Line 4210 C++ > vclplug_winlo.dll!SalFrameWndProc(HWND__ * hWnd, unsigned int nMsg, unsigned __int64 wParam, __int64 lParam, bool & rDef) Line 5858 C++ > vclplug_winlo.dll!SalFrameWndProcW(HWND__ * hWnd, unsigned int nMsg, unsigned __int64 wParam, __int64 lParam) Line 5965 C++ > user32.dll!UserCallWinProcCheckWow() Unknown > user32.dll!DispatchMessageWorker() Unknown > vclplug_winlo.dll!ImplSalDispatchMessage(const tagMSG * pMsg) Line 471 C++ > vclplug_winlo.dll!ImplSalYield(bool bWait, bool bHandleAllCurrentEvents) Line 502 C++ > vclplug_winlo.dll!SalComWndProc(HWND__ * __formal, unsigned int nMsg, unsigned __int64 wParam, __int64 lParam, bool & rDef) Line 635 C++ > vclplug_winlo.dll!SalComWndProcW(HWND__ * hWnd, unsigned int nMsg, unsigned __int64 wParam, __int64 lParam) Line 720 C++ > user32.dll!UserCallWinProcCheckWow() Unknown > user32.dll!DispatchClientMessage() Unknown > user32.dll!__fnDWORD() Unknown > ntdll.dll!KiUserCallbackDispatcherContinue() Unknown > win32u.dll!NtUserPeekMessage() Unknown > user32.dll!_PeekMessage() Unknown > user32.dll!PeekMessageW() Unknown > vclplug_winlo.dll!ImplSalYield(bool bWait, bool bHandleAllCurrentEvents) Line 497 C++ > vclplug_winlo.dll!WinSalInstance::DoYield(bool bWait, bool bHandleAllCurrentEvents) Line 577 C++ > vcllo.dll!ImplYield(bool i_bWait, bool i_bAllEvents) Line 474 C++ > vcllo.dll!Application::Yield() Line 559 C++ > vcllo.dll!Application::Execute() Line 452 C++ > sofficeapp.dll!desktop::Desktop::Main() Line 1604 C++ > vcllo.dll!ImplSVMain() Line 202 C++ > vcllo.dll!SVMain() Line 235 C++ > sofficeapp.dll!soffice_main() Line 98 C++ > soffice.bin!sal_main() Line 51 C > soffice.bin!main(int argc, char * * argv) Line 49 C > soffice.bin!invoke_main() Line 79 C++ > soffice.bin!__scrt_common_main_seh() Line 288 C++ > soffice.bin!__scrt_common_main() Line 331 C++ > soffice.bin!mainCRTStartup(void * __formal) Line 17 C++ > kernel32.dll!BaseThreadInitThunk() Unknown > ntdll.dll!RtlUserThreadStart() Unknown Note waiting for mutex in OGenericUnoController::frameAction, after acquiring solar mutex in ImplHandleUserEvent(HWND, LPARAM). "frm::OComponentEventThread" thread: > win32u.dll!NtUserMessageCall() Unknown > user32.dll!SendMessageWorker(struct tagWND *,unsigned int,unsigned __int64,__int64,int) Unknown > user32.dll!SendMessageW() Unknown > vclplug_winlo.dll!WinSalInstance::DoYield(bool bWait, bool bHandleAllCurrentEvents) Line 566 C++ > vcllo.dll!ImplYield(bool i_bWait, bool i_bAllEvents) Line 474 C++ > vcllo.dll!Application::Reschedule(bool i_bAllEvents) Line 494 C++ > fwklo.dll!framework::StatusIndicatorFactory::impl_reschedule(bool bForce) Line 532 C++ > fwklo.dll!framework::StatusIndicatorFactory::start(const com::sun::star::uno::Reference<com::sun::star::task::XStatusIndicator> & xChild, const rtl::OUString & sText, long nRange) Line 134 C++ > fwklo.dll!framework::StatusIndicator::start(const rtl::OUString & sText, long nRange) Line 48 C++ > swlo.dll!XMLReader::Read(SwDoc & rDoc, const rtl::OUString & rBaseURL, SwPaM & rPaM, const rtl::OUString & rName) Line 638 C++ > swlo.dll!SwReader::Read(const Reader & rOptions) Line 192 C++ > swlo.dll!SwDocShell::Load(SfxMedium & rMedium) Line 531 C++ > sfxlo.dll!SfxObjectShell::LoadOwnFormat(SfxMedium & rMedium) Line 3172 C++ > sfxlo.dll!SfxObjectShell::DoLoad(SfxMedium * pMed) Line 685 C++ > sfxlo.dll!SfxBaseModel::load(const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> & seqArguments) Line 1923 C++ > sfxlo.dll!`anonymous namespace'::SfxFrameLoader_Impl::load(const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> & rArgs, const com::sun::star::uno::Reference<com::sun::star::frame::XFrame> & _rTargetFrame) Line 679 C++ > fwklo.dll!framework::LoadEnv::impl_loadContent() Line 1156 C++ > fwklo.dll!framework::LoadEnv::start() Line 395 C++ > fwklo.dll!framework::LoadEnv::startLoading(const rtl::OUString & sURL, const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> & lMediaDescriptor, const com::sun::star::uno::Reference<com::sun::star::frame::XFrame> & xBaseFrame, const rtl::OUString & sTarget, long nSearchFlags, LoadEnvFeatures eFeature) Line 300 C++ > fwklo.dll!framework::LoadEnv::loadComponentFromURL(const com::sun::star::uno::Reference<com::sun::star::frame::XComponentLoader> & xLoader, const com::sun::star::uno::Reference<com::sun::star::uno::XComponentContext> & xContext, const rtl::OUString & sURL, const rtl::OUString & sTarget, long nSearchFlags, const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> & lArgs) Line 168 C++ > fwklo.dll!`anonymous namespace'::XFrameImpl::loadComponentFromURL(const rtl::OUString & sURL, const rtl::OUString & sTargetFrameName, long nSearchFlags, const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> & lArguments) Line 594 C++ > rptlo.dll!reportdesign::OReportEngineJFree::createDocumentAlive(const com::sun::star::uno::Reference<com::sun::star::frame::XFrame> & _frame, bool _bHidden) Line 280 C++ > rptlo.dll!reportdesign::OReportEngineJFree::createDocumentAlive(const com::sun::star::uno::Reference<com::sun::star::frame::XFrame> & _frame) Line 242 C++ > dbalo.dll!dbaccess::ODocumentDefinition::onCommandOpenSomething(const com::sun::star::uno::Any & _rOpenArgument, const bool _bActivate, const com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> & _rxEnvironment) Line 934 C++ > dbalo.dll!dbaccess::ODocumentDefinition::execute(const com::sun::star::ucb::Command & aCommand, long CommandId, const com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> & Environment) Line 1005 C++ > dbalo.dll!dbaccess::ODocumentContainer::loadComponentFromURL(const rtl::OUString & _sURL, const rtl::OUString & __formal, long __formal, const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> & Arguments) Line 561 C++ > dbulo.dll!dbaui::OLinkedDocumentsAccess::impl_open(const rtl::OUString & _rLinkName, com::sun::star::uno::Reference<com::sun::star::lang::XComponent> & _xDefinition, dbaui::ElementOpenMode _eOpenMode, const comphelper::NamedValueCollection & _rAdditionalArgs) Line 148 C++ > dbulo.dll!dbaui::OLinkedDocumentsAccess::open(const rtl::OUString & _rLinkName, com::sun::star::uno::Reference<com::sun::star::lang::XComponent> & _xDefinition, dbaui::ElementOpenMode _eOpenMode, const comphelper::NamedValueCollection & _rAdditionalArgs) Line 299 C++ > dbulo.dll!dbaui::OApplicationController::openElementWithArguments(const rtl::OUString & _sName, dbaui::ElementType _eType, dbaui::ElementOpenMode _eOpenMode, unsigned short _nInstigatorCommand, const comphelper::NamedValueCollection & _rAdditionalArguments) Line 1778 C++ > dbulo.dll!dbaui::OApplicationController::loadComponentWithArguments(long ObjectType, const rtl::OUString & ObjectName, unsigned char ForEditing, const com::sun::star::uno::Sequence<com::sun::star::beans::PropertyValue> & Arguments) Line 433 C++ > dbulo.dll!dbaui::OApplicationController::loadComponent(long ObjectType, const rtl::OUString & ObjectName, unsigned char ForEditing) Line 422 C++ > dbalo.dll!dbaccess::ODocumentDefinition::impl_openUI_nolck_throw(bool _bForEditing) Line 1813 C++ > dbalo.dll!dbaccess::ODocumentDefinition::open() Line 1850 C++ > mscx_uno.dll!`anonymous namespace'::cpp_call(bridges::cpp_uno::shared::UnoInterfaceProxy * pThis, bridges::cpp_uno::shared::VtableSlot aVtableSlot, _typelib_TypeDescriptionReference * pReturnTypeRef, long nParams, _typelib_MethodParameter * pParams, void * pUnoReturn, void * * pUnoArgs, _uno_Any * * ppUnoExc) Line 214 C++ > mscx_uno.dll!unoInterfaceProxyDispatch(_uno_Interface * pUnoI, const _typelib_TypeDescription * pMemberTD, void * pReturn, void * * pArgs, _uno_Any * * ppException) Line 430 C++ > reflectionlo.dll!stoc_corefl::`anonymous namespace'::IdlInterfaceMethodImpl::invoke(const com::sun::star::uno::Any & rObj, com::sun::star::uno::Sequence<com::sun::star::uno::Any> & rArgs) Line 674 C++ > sblo.dll!SbUnoObject::Notify(SfxBroadcaster & rBC, const SfxHint & rHint) Line 2247 C++ > svllo.dll!SfxBroadcaster::Broadcast(const SfxHint & rHint) Line 40 C++ > sblo.dll!SbxVariable::Broadcast(SfxHintId nHintId) Line 151 C++ > sblo.dll!SbxValue::SbxValue(const SbxValue & r) Line 67 C++ > sblo.dll!SbxVariable::SbxVariable(const SbxVariable & r) Line 45 C++ > sblo.dll!SbxMethod::SbxMethod(const SbxMethod & r) Line 838 C++ > sblo.dll!SbiRuntime::FindElement(SbxObject * pObj, unsigned long nOp1, unsigned long nOp2, ErrCode nNotFound, bool bLocal, bool bStatic) Line 3709 C++ > sblo.dll!SbiRuntime::StepELEM(unsigned long nOp1, unsigned long nOp2) Line 4194 C++ > sblo.dll!SbiRuntime::Step() Line 831 C++ > sblo.dll!`anonymous namespace'::RunInitGuard::run() Line 1014 C++ > sblo.dll!SbModule::Run(SbMethod * pMeth) Line 1177 C++ > sblo.dll!SbModule::Notify(SfxBroadcaster & rBC, const SfxHint & rHint) Line 775 C++ > svllo.dll!SfxBroadcaster::Broadcast(const SfxHint & rHint) Line 40 C++ > sblo.dll!SbMethod::Broadcast(SfxHintId nHintId) Line 2115 C++ > sblo.dll!SbxValue::Get(SbxValues & rRes) Line 289 C++ > sblo.dll!SbMethod::Call(SbxValue * pRet, SbxVariable * pCaller) Line 2072 C++ > basprovlo.dll!basprov::BasicScriptImpl::invoke(const com::sun::star::uno::Sequence<com::sun::star::uno::Any> & aParams, com::sun::star::uno::Sequence<short> & aOutParamIndex, com::sun::star::uno::Sequence<com::sun::star::uno::Any> & aOutParam) Line 251 C++ > sfxlo.dll!SfxObjectShell::CallXScript(const com::sun::star::uno::Reference<com::sun::star::uno::XInterface> & _rxScriptContext, const rtl::OUString & _rScriptURL, const com::sun::star::uno::Sequence<com::sun::star::uno::Any> & aParams, com::sun::star::uno::Any & aRet, com::sun::star::uno::Sequence<short> & aOutParamIndex, com::sun::star::uno::Sequence<com::sun::star::uno::Any> & aOutParam, bool bRaiseError, const com::sun::star::uno::Any * pCaller) Line 1424 C++ > sfxlo.dll!SfxObjectShell::CallXScript(const rtl::OUString & rScriptURL, const com::sun::star::uno::Sequence<com::sun::star::uno::Any> & aParams, com::sun::star::uno::Any & aRet, com::sun::star::uno::Sequence<short> & aOutParamIndex, com::sun::star::uno::Sequence<com::sun::star::uno::Any> & aOutParam, bool bRaiseError, const com::sun::star::uno::Any * pCaller) Line 1453 C++ > svxcorelo.dll!svxform::`anonymous namespace'::NewStyleUNOScript::invoke(const com::sun::star::uno::Sequence<com::sun::star::uno::Any> & _rArguments, com::sun::star::uno::Any & _rSynchronousResult) Line 831 C++ > svxcorelo.dll!svxform::FormScriptingEnvironment::doFireScriptEvent(const com::sun::star::script::ScriptEvent & _rEvent, com::sun::star::uno::Any * _pSynchronousResult) Line 906 C++ > svxcorelo.dll!svxform::FormScriptListener::impl_doFireScriptEvent_nothrow(std::unique_lock<std::mutex> & _rGuard, const com::sun::star::script::ScriptEvent & _rEvent, com::sun::star::uno::Any * _pSynchronousResult) Line 685 C++ > svxcorelo.dll!svxform::FormScriptListener::approveFiring(const com::sun::star::script::ScriptEvent & _rEvent) Line 717 C++ > comphelper.dll!comphelper::`anonymous namespace'::AttacherAllListener_Impl::approveFiring(const com::sun::star::script::AllEventObject & Event) Line 246 C++ > evtattlo.dll!comp_EventAttacher::`anonymous namespace'::FilterAllListenerImpl::approveFiring(const com::sun::star::script::AllEventObject & Event) Line 483 C++ > evtattlo.dll!comp_EventAttacher::`anonymous namespace'::InvocationToAllListenerMapper::invoke(const rtl::OUString & FunctionName, const com::sun::star::uno::Sequence<com::sun::star::uno::Any> & Params, com::sun::star::uno::Sequence<short> & __formal, com::sun::star::uno::Sequence<com::sun::star::uno::Any> & __formal) Line 166 C++ > mscx_uno.dll!`anonymous namespace'::cpp_call(bridges::cpp_uno::shared::UnoInterfaceProxy * pThis, bridges::cpp_uno::shared::VtableSlot aVtableSlot, _typelib_TypeDescriptionReference * pReturnTypeRef, long nParams, _typelib_MethodParameter * pParams, void * pUnoReturn, void * * pUnoArgs, _uno_Any * * ppUnoExc) Line 214 C++ > mscx_uno.dll!unoInterfaceProxyDispatch(_uno_Interface * pUnoI, const _typelib_TypeDescription * pMemberTD, void * pReturn, void * * pArgs, _uno_Any * * ppException) Line 430 C++ > invocadaptlo.dll!stoc_invadp::`anonymous namespace'::AdapterImpl::invoke(const _typelib_TypeDescription * pMemberType, void * pReturn, void * * pArgs, _uno_Any * * ppException) Line 461 C++ > invocadaptlo.dll!adapter_dispatch(_uno_Interface * pUnoI, const _typelib_TypeDescription * pMemberType, void * pReturn, void * * pArgs, _uno_Any * * ppException) Line 606 C++ > mscx_uno.dll!cpp2uno_call(bridges::cpp_uno::shared::CppInterfaceProxy * pThis, const _typelib_TypeDescription * pMemberTD, _typelib_TypeDescriptionReference * pReturnTypeRef, const long nParams, _typelib_MethodParameter * pParams, void * * pCallStack, void * * const pReturnAddr) Line 152 C++ > mscx_uno.dll!cpp_mediate(void * * pCallStack, long nFunctionIndex, long nVtableOffset, __int64 * const pRegisterReturn) Line 339 C++ > mscx_uno.dll!cpp_vtable_call(__int64 nOffsetAndIndex, void * * pCallStack) Line 44 C++ > mscx_uno.dll!privateSnippetExecutor() Unknown > frmlo.dll!frm::OClickableImageBaseControl::approveAction() Line 180 C++ > frmlo.dll!frm::OClickableImageBaseControl::actionPerformed_Impl(bool bNotifyListener, const com::sun::star::awt::MouseEvent & rEvt) Line 193 C++ > frmlo.dll!frm::OButtonControl::actionPerformed_Impl(bool _bNotifyListener, const com::sun::star::awt::MouseEvent & _rEvt) Line 514 C++ > frmlo.dll!frm::OImageProducerThread_Impl::processEvent(cppu::OComponentHelper * pCompImpl, const com::sun::star::lang::EventObject * pEvt, const com::sun::star::uno::Reference<com::sun::star::awt::XControl> & __formal, bool __formal) Line 832 C++ > frmlo.dll!frm::OComponentEventThread::run() Line 172 C++ > frmlo.dll!threadFunc(void * param) Line 190 C++ > sal3.dll!oslWorkerWrapperFunction(void * pData) Line 67 C++ > kernel32.dll!BaseThreadInitThunk() Unknown > ntdll.dll!RtlUserThreadStart() Unknown Note waiting for solar mutes in WinSalInstance::DoYield, after acquiring mutex in OApplicationController::loadComponentWithArguments. Jan-Marek: do you have an idea what to do? [1] https://ask.libreoffice.org/t/open-report-macro-works-perfectly-in-ubuntu-but-not-in-windows-10/75559
Created attachment 179066 [details] A simpler testcase This is much simpler, from-scratch DB with only one table, one form with one button, one report and one macro. I believe that the important thing is assignment of the macro to the button's Approve action; if assigned to Execute action, it works without deadlocking.
I have a gut feeling that we need to make sure that loading component happens in the UI thread. I don't know how it's done - but it should happen somewhere in one of dbaccess::ODocumentDefinition::open, or dbaccess::ODocumentDefinition::impl_openUI_nolck_throw, or dbaui::OApplicationController::loadComponent, or dbaui::OApplicationController::loadComponentWithArguments (the latter looks most likely) :)
Created attachment 179072 [details] A HSQL-embedded testcase FTR, this also deadlocks with 3.5.0.3 (I couldn't test with older versions, since Report Builder extension doesn't seem to work with JRE 6.0 that is available to pre-3.5 versions). Also it deadlocks in AOO 4.1.0 -> inherited.
Dear SANDI.KUSNADI@GMAIL.COM, 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 https://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://web.libera.chat/?settings=#libreoffice-qa Thank you for helping us make LibreOffice even better for everyone! Warm Regards, QA Team MassPing-UntouchedBug