Bug 137177 - Assert failing when restarting after profile cleanup
Summary: Assert failing when restarting after profile cleanup
Status: RESOLVED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: graphics stack (show other bugs)
Version:
(earliest affected)
7.1.0.0.alpha0+
Hardware: All All
: medium normal
Assignee: Not Assigned
URL:
Whiteboard: target:7.1.0
Keywords:
Depends on:
Blocks: Skia
  Show dependency treegraph
 
Reported: 2020-10-01 09:17 UTC by Mike Kaganski
Modified: 2020-10-21 10:19 UTC (History)
0 users

See Also:
Crash report or crash signature:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Mike Kaganski 2020-10-01 09:17:56 UTC
Starting in safe mode, resetting to "factory defaults", and restarting resulted in failing assert:

> ucrtbased.dll!_wassert(const wchar_t * expression, const wchar_t * file_name, unsigned int line_number) Line 444
> 	at minkernel\crts\ucrt\src\appcrt\startup\assert.cpp(444)
> vcllo.dll!SkiaZone::SkiaZone() Line 23
> 	at C:\lo\src\core\vcl\inc\skia\zone.hxx(23)
> vclplug_winlo.dll!WinSkiaSalGraphicsImpl::DeInit() Line 57
> 	at C:\lo\src\core\vcl\skia\win\gdiimpl.cxx(57)
> vclplug_winlo.dll!WinSalGraphics::DeInitGraphics() Line 488
> 	at C:\lo\src\core\vcl\win\gdi\salgdi.cxx(488)
> vclplug_winlo.dll!WinSalFrame::ReleaseFrameGraphicsDC(WinSalGraphics * pGraphics) Line 922
> 	at C:\lo\src\core\vcl\win\window\salframe.cxx(922)
> vclplug_winlo.dll!WinSalFrame::~WinSalFrame() Line 956
> 	at C:\lo\src\core\vcl\win\window\salframe.cxx(956)
> vclplug_winlo.dll!WinSalFrame::`scalar deleting destructor'(unsigned int)
> vclplug_winlo.dll!SalComWndProc(HWND__ * __formal, unsigned int nMsg, unsigned __int64 wParam, __int64 lParam, bool & rDef) Line 608
> 	at C:\lo\src\core\vcl\win\app\salinst.cxx(608)
> vclplug_winlo.dll!SalComWndProcW(HWND__ * hWnd, unsigned int nMsg, unsigned __int64 wParam, __int64 lParam) Line 665
> 	at C:\lo\src\core\vcl\win\app\salinst.cxx(665)
> user32.dll!UserCallWinProcCheckWow()
> user32.dll!SendMessageWorker(struct tagWND *,unsigned int,unsigned __int64,__int64,int)
> user32.dll!SendMessageW()
> vclplug_winlo.dll!WinSalInstance::DestroyFrame(SalFrame * pFrame) Line 896
> 	at C:\lo\src\core\vcl\win\app\salinst.cxx(896)
> vcllo.dll!vcl::Window::dispose() Line 551
> 	at C:\lo\src\core\vcl\source\window\window.cxx(551)
> vcllo.dll!ImplBorderWindow::dispose() Line 1668
> 	at C:\lo\src\core\vcl\source\window\brdwin.cxx(1668)
> vcllo.dll!VclReferenceBase::disposeOnce() Line 39
> 	at C:\lo\src\core\vcl\source\outdev\vclreferencebase.cxx(39)
> vcllo.dll!VclPtr<vcl::Window>::disposeAndClear() Line 206
> 	at C:\lo\src\core\include\vcl\vclptr.hxx(206)
> vcllo.dll!vcl::Window::dispose() Line 523
> 	at C:\lo\src\core\vcl\source\window\window.cxx(523)
> vcllo.dll!SystemWindow::dispose() Line 113
> 	at C:\lo\src\core\vcl\source\window\syswin.cxx(113)
> vcllo.dll!WorkWindow::dispose() Line 130
> 	at C:\lo\src\core\vcl\source\window\wrkwin.cxx(130)
> vcllo.dll!IntroWindow::dispose() Line 50
> 	at C:\lo\src\core\vcl\source\window\introwin.cxx(50)
> spllo.dll!`anonymous namespace'::SplashScreenWindow::dispose() Line 134
> 	at C:\lo\src\core\desktop\source\splash\splash.cxx(134)
> vcllo.dll!VclReferenceBase::disposeOnce() Line 39
> 	at C:\lo\src\core\vcl\source\outdev\vclreferencebase.cxx(39)
> spllo.dll!VclPtr<`anonymous namespace'::SplashScreenWindow>::disposeAndClear() Line 206
> 	at C:\lo\src\core\include\vcl\vclptr.hxx(206)
> spllo.dll!`anonymous namespace'::SplashScreen::~SplashScreen() Line 180
> 	at C:\lo\src\core\desktop\source\splash\splash.cxx(180)
> spllo.dll!`anonymous namespace'::SplashScreen::`scalar deleting destructor'(unsigned int)
> cppuhelper3MSC.dll!cppu::OWeakObject::release() Line 233
> 	at C:\lo\src\core\cppuhelper\source\weak.cxx(233)
> spllo.dll!cppu::WeakImplHelper<com::sun::star::task::XStatusIndicator,com::sun::star::lang::XInitialization,com::sun::star::lang::XServiceInfo>::release() Line 115
> 	at C:\lo\src\core\include\cppuhelper\implbase.hxx(115)
> sofficeapp.dll!com::sun::star::uno::Reference<com::sun::star::task::XStatusIndicator>::set(com::sun::star::task::XStatusIndicator * pInterface) Line 241
> 	at C:\lo\src\core\include\com\sun\star\uno\Reference.hxx(241)
> sofficeapp.dll!com::sun::star::uno::Reference<com::sun::star::task::XStatusIndicator>::operator=(com::sun::star::task::XStatusIndicator * pInterface) Line 344
> 	at C:\lo\src\core\include\com\sun\star\uno\Reference.hxx(344)
> sofficeapp.dll!desktop::Desktop::CloseSplashScreen() Line 2444
> 	at C:\lo\src\core\desktop\source\app\app.cxx(2444)
> sofficeapp.dll!desktop::Desktop::DeInit() Line 538
> 	at C:\lo\src\core\desktop\source\app\app.cxx(538)
> vcllo.dll!DeInitVCL() Line 529
> 	at C:\lo\src\core\vcl\source\app\svmain.cxx(529)
> vcllo.dll!ImplSVMain() Line 223
> 	at C:\lo\src\core\vcl\source\app\svmain.cxx(223)
> vcllo.dll!SVMain() Line 229
> 	at C:\lo\src\core\vcl\source\app\svmain.cxx(229)
> sofficeapp.dll!soffice_main() Line 98
> 	at C:\lo\src\core\desktop\source\app\sofficemain.cxx(98)
> soffice.bin!sal_main() Line 48
> 	at C:\lo\src\core\desktop\source\app\main.c(48)
> soffice.bin!main(int argc, char * * argv) Line 47
> 	at C:\lo\src\core\desktop\source\app\main.c(47)
> soffice.bin!invoke_main() Line 79
> 	at D:\agent\_work\9\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl(79)
> soffice.bin!__scrt_common_main_seh() Line 288
> 	at D:\agent\_work\9\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl(288)
> soffice.bin!__scrt_common_main() Line 331
> 	at D:\agent\_work\9\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl(331)
> soffice.bin!mainCRTStartup() Line 17
> 	at D:\agent\_work\9\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp(17)
> kernel32.dll!BaseThreadInitThunk()
> ntdll.dll!RtlUserThreadStart()

I had to abort it several times, before it started normally (I assume, it was as many times as soffice.bin had to restart to clean up everything).

Tested with Version: 7.1.0.0.alpha0+ (x64)
Build ID: d12d236bac476ba39ee41b7d5bc7b849b4fd52c6
CPU threads: 12; OS: Windows 10.0 Build 19041; UI render: Skia/Raster; VCL: win
Locale: ru-RU (ru_RU); UI: en-US
Calc: CL
Comment 1 Commit Notification 2020-10-20 17:21:55 UTC
Luboš Luňák committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/15a040d925bc9640e34ab728d683b22c47d3514f

ensure solarmutex is locked when closing splashscreen (tdf#137177)

It will be available in 7.1.0.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 2 Mike Kaganski 2020-10-21 10:19:22 UTC
Thank you Luboš!