LibreOffice crashes when it has a WebDAV document open, and had not communicated with the server for a while, thus the session has timed out on the server. Steps: 1. Open a document from a WebDAV server, like SharePoint. 2. Let LibreOffice stay idle for enough time - in my testing, I didn't touch it for about 30 minutes. 3. Switch back to LibreOffice, and try anything that would initiate a WebDAV operation: it could be e.g. opening File menu; or even just closing the document. LibreOffice crashes silently. Tested with Version: 6.2.5.2 (x64) Build ID: 1ec314fa52f458adc18c4f025c545a4e8b22c159 CPU threads: 4; OS: Windows 10.0; UI render: GL; VCL: win; Locale: ru-RU (ru_RU); UI-Language: en-US Calc: threaded and current master toward 6.4.
The problem is that in clean_session was called from this stack: > neon.dll!clean_session(auth_session * sess) Line 275 > at C:\cygwin\home\user\lode\dev\core\workdir\UnpackedTarball\neon\src\ne_auth.c(275) > neon.dll!ah_post_send(ne_request_s * req, void * cookie, const ne_status * status) Line 1554 > at C:\cygwin\home\user\lode\dev\core\workdir\UnpackedTarball\neon\src\ne_auth.c(1554) > neon.dll!ne_end_request(ne_request_s * req) Line 1399 > at C:\cygwin\home\user\lode\dev\core\workdir\UnpackedTarball\neon\src\ne_request.c(1399) > neon.dll!ne_xml_dispatch_request(ne_request_s * req, ne_xml_parser_s * parser) Line 105 > at C:\cygwin\home\user\lode\dev\core\workdir\UnpackedTarball\neon\src\ne_xmlreq.c(105) > neon.dll!ne_lock_refresh(ne_session_s * sess, ne_lock * lock) Line 849 > at C:\cygwin\home\user\lode\dev\core\workdir\UnpackedTarball\neon\src\ne_locks.c(849) > ucpdav1.dll!webdav_ucp::NeonSession::LOCK(ne_lock * pLock, long & rlastChanceToSendRefreshRequest) Line 1663 > at C:\cygwin\home\user\lode\dev\core\ucb\source\ucp\webdav-neon\NeonSession.cxx(1663) > ucpdav1.dll!webdav_ucp::NeonLockStore::refreshLocks() Line 216 > at C:\cygwin\home\user\lode\dev\core\ucb\source\ucp\webdav-neon\NeonLockStore.cxx(216) > ucpdav1.dll!webdav_ucp::TickerThread::execute() Line 78 > at C:\cygwin\home\user\lode\dev\core\ucb\source\ucp\webdav-neon\NeonLockStore.cxx(78) > salhelper3MSC.dll!salhelper::Thread::run() Line 40 > at C:\cygwin\home\user\lode\dev\core\salhelper\source\thread.cxx(40) > salhelper3MSC.dll!threadFunc(void * param) Line 186 > at C:\cygwin\home\user\lode\dev\core\include\osl\thread.hxx(186) > sal3.dll!oslWorkerWrapperFunction(void * pData) Line 58 > at C:\cygwin\home\user\lode\dev\core\sal\osl\w32\thread.cxx(58) > ucrtbased.dll!thread_start<unsigned int (__cdecl*)(void *),1>(void * const parameter) Line 97 > at minkernel\crts\ucrt\src\appcrt\startup\thread.cpp(97) > kernel32.dll!BaseThreadInitThunk() > ntdll.dll!RtlUserThreadStart() but haven't reinitialized the session before a subsequent access. See https://git.libreoffice.org/core/+/162a472d55cf9fb9aaa6d5eae625b3da2273a516 where a similar problem was handled. https://gerrit.libreoffice.org/75194
Mike Kaganski committed a patch related to this issue. It has been pushed to "master": https://git.libreoffice.org/core/+/351b730e012fd4562f341967f740f8146aa0538e%5E%21 tdf#126279: reinitialize session after NE_AUTH errors in (UN)LOCK It will be available in 6.4.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.
The crash is fixed. Still there's a problem left, that the lock that failed to refresh is still kept in the lock store, and following locks fail. To be handled separately.
Mike Kaganski committed a patch related to this issue. It has been pushed to "master": https://git.libreoffice.org/core/+/94e4695bcfcb9356d37942c47359b94531ef7b95%5E%21 tdf#126279 related: remove locks from NeonLockStore after NE_AUTH error It will be available in 6.4.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.
Mike Kaganski committed a patch related to this issue. It has been pushed to "libreoffice-6-3": https://git.libreoffice.org/core/+/c8b91cc5356d670a3b0a7ca0efaccb56b7125bb5%5E%21 tdf#126279: reinitialize session after NE_AUTH errors in (UN)LOCK It will be available in 6.3.0.2. 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.
Mike Kaganski committed a patch related to this issue. It has been pushed to "libreoffice-6-3": https://git.libreoffice.org/core/+/d0af88819e9b569f7b2584921e910422b8aaff9e%5E%21 tdf#126279 related: remove locks from NeonLockStore after NE_AUTH error It will be available in 6.3.0.2. 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.