Description: Crash when changes are made in a control with a link cell set up. Steps to Reproduce: 1. Open a new Calc 2. Create a text box 3. Set the link cell to [A1]. 4. Edit text in a text box Actual Results: 5. Crash Expected Results: 5. No Crash Reproducible: Always User Profile Reset: No Additional Info: Not Reproduced with Version: 24.2.2.2 (X86_64) / LibreOffice Community Build ID: d56cc158d8a96260b836f100ef4b4ef25d6f1a01 CPU threads: 4; OS: Windows 10.0 Build 10240; UI render: Skia/Raster; VCL: win Locale: ja-JP (ja_JP); UI: ja-JP Calc: CL threaded Reproducible with Version: 24.8.0.0.alpha0+ (X86_64) / LibreOffice Community Build ID: 05a1217921b7be283c6750a35b90e4feda6e993e CPU threads: 4; OS: Windows 10.0 Build 10240; UI render: Skia/Raster; VCL: win Locale: ja-JP (ja_JP); UI: ja-JP Calc: threaded
Created attachment 193793 [details] sample file
Reproduced on Linux too, with attachment 193793 [details]: freeze when editing Text Box Control's contents. Version: 24.8.0.0.alpha0+ (X86_64) / LibreOffice Community Build ID: 05a1217921b7be283c6750a35b90e4feda6e993e CPU threads: 8; OS: Linux 6.5; UI render: default; VCL: gtk3 Locale: en-AU (en_AU.UTF-8); UI: en-US Calc: CL threaded
The attached sample file shows that it also crashes with checkbox.
Bibisected with linux-64-24.8 repo to first bad build [7bd660673f546fc93bf2868cbce6b84e9e1dde8b] which points to: commit 7510cca63690ea97eb02a43f698fc183c3d0434a author Noel Grandin Tue Mar 26 15:56:02 2024 +0200 committer Noel Grandin Thu Mar 28 06:42:46 2024 +0100 convert OCellValueBinding to comphelper::WeakComponentImplHelper Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165364 Noel, can you please have a look?
On pc Debian x86-64 with master sources updated today, I could reproduce this. part of bt taken at random: #5 0x00007f936a6ef685 in std::mutex::lock() (this=0x555672f3b248) at /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/std_mutex.h:113 #6 0x00007f936b06fd6c in std::unique_lock<std::mutex>::lock() (this=0x7ffcbade3d38) at /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/unique_lock.h:141 #7 0x00007f936b06dd28 in std::unique_lock<std::mutex>::unique_lock(std::mutex&) (this=0x7ffcbade3d38, __m=...) at /usr/bin/../lib/gcc/x86_64-linux-gnu/13/../../../../include/c++/13/bits/unique_lock.h:71 #8 0x00007f936b69d9b4 in calc::OCellValueBinding::notifyModified() (this=0x555672f3aff0) at /home/julien/lo/libreoffice/sc/source/ui/unoobj/cellvaluebinding.cxx:466 #9 0x00007f936b69dd29 in calc::OCellValueBinding::modified(com::sun::star::lang::EventObject const&) (this=0x555672f3aff0) at /home/julien/lo/libreoffice/sc/source/ui/unoobj/cellvaluebinding.cxx:487 #10 0x00007f936b7eb0ba in ScUnoListenerCalls::ExecuteAndClear() (this=0x5556734281a0) at /home/julien/lo/libreoffice/sc/source/ui/unoobj/listenercalls.cxx:53 #11 0x00007f936a345ad4 in ScDocument::BroadcastUno(SfxHint const&) (this=0x555672333450, rHint=...) at /home/julien/lo/libreoffice/sc/source/core/data/documen3.cxx:978 #12 0x00007f936b2b6836 in ScDocShell::SetDocumentModified() (this=0x555671e8c9f0) at /home/julien/lo/libreoffice/sc/source/ui/docshell/docsh.cxx:3084 #13 0x00007f936b2b83e9 in ScDocShellModificator::SetDocumentModified() (this=0x7ffcbade4340) at /home/julien/lo/libreoffice/sc/source/ui/docshell/docsh.cxx:3376 #14 0x00007f936b2525ec in ScDocFunc::SetNormalString(bool&, ScAddress const&, rtl::OUString const&, bool) (this=0x555672256450, o_rbNumFmtSet=@0x7ffcbade4427: false, rPos=..., rText="", bApi=true) at /home/julien/lo/libreoffice/sc/source/ui/docshell/docfunc.cxx:870 #15 0x00007f936b2561e4 in ScDocFunc::SetCellText(ScAddress const&, rtl::OUString const&, bool, bool, bool, formula::FormulaGrammar::Grammar) (this=0x555672256450, rPos=..., rText="", bInterpret=false, bEnglish=false, bApi=true, eGrammar=formula::FormulaGrammar::GRAM_API) at /home/julien/lo/libreoffice/sc/source/ui/docshell/docfunc.cxx:1304 #16 0x00007f936b6445ba in ScCellObj::SetString_Impl(rtl::OUString const&, bool, bool) (this=0x555672cf1900, rString="", bInterpret=false, bEnglish=false) at /home/julien/lo/libreoffice/sc/source/ui/unoobj/cellsuno.cxx:5836 #17 0x00007f936b64510f in ScCellObj::setString(rtl::OUString const&) (this=0x555672cf1900, aText="") at /home/julien/lo/libreoffice/sc/source/ui/unoobj/cellsuno.cxx:5956 #18 0x00007f936b69c889 in calc::OCellValueBinding::setValue(com::sun::star::uno::Any const&) (this=0x555672f3aff0, aValue=uno::Any("string": "")) at /home/julien/lo/libreoffice/sc/source/ui/unoobj/cellvaluebinding.cxx:289 I reverted locally a4d6700423aeb3f7cbcb3f23352dd05033353fe3 "convert OCellValueBinding to comphelper::WeakComponentImplHelper (II)" and I don't reproduce the hang.
Noel Grandin committed a patch related to this issue. It has been pushed to "master": https://git.libreoffice.org/core/commit/979164938007e4774b7718abcb20fded9a00839f tdf#160768 Changing value in a text box control with a link cell set up, Crash It will be available in 24.8.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.
Thanks Noel, verified in: Version: 24.8.0.0.alpha0+ (X86_64) / LibreOffice Community Build ID: ce454f382d0d005dd3de021c7820be3ffa0bb582 CPU threads: 8; OS: Linux 6.5; UI render: default; VCL: gtk3 Locale: en-AU (en_AU.UTF-8); UI: en-US Calc: CL threaded