Bug 170420 - LibreOffice Base hangs if I convert a text box to a list box in a form.
Summary: LibreOffice Base hangs if I convert a text box to a list box in a form.
Status: RESOLVED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Base (show other bugs)
Version:
(earliest affected)
25.8.4.2 release
Hardware: ARM macOS (All)
: high major
Assignee: dcbw@libreoffice.org
URL:
Whiteboard: target:26.8.0 target:26.2.4.2
Keywords: bibisectRequest, regression
: 171040 171466 171978 172053 172198 172218 (view as bug list)
Depends on:
Blocks: Database-Forms
  Show dependency treegraph
 
Reported: 2026-01-21 15:40 UTC by todds
Modified: 2026-05-30 06:31 UTC (History)
9 users (show)

See Also:
Crash report or crash signature:


Attachments
Spindump produced by macOS system monitor (5.71 MB, text/plain)
2026-01-23 14:07 UTC, Alex Thurgood
Details
Sampling when hung using macOS system monitor (281.21 KB, text/plain)
2026-01-23 14:07 UTC, Alex Thurgood
Details
Test Database HSQLDB embedded (33.49 KB, application/vnd.oasis.opendocument.database)
2026-01-23 14:41 UTC, Alex Thurgood
Details
Spindump trace when trying to use Form Design functions (8.56 MB, text/plain)
2026-05-29 14:29 UTC, Alex Thurgood
Details

Note You need to log in before you can comment on or make changes to this bug.
Description todds 2026-01-21 15:40:12 UTC
Description:
I created a form using wizard. I opened the form for editing. I selected a text box and then used the popup menu item 'Replace with' to change the text box to a List Box. From that point onwards, any edit I tried to make to the box results in the app hanging. For example, I tried to turn on the Dropdown property. Manually adding a List Box to the form works normally.

Steps to Reproduce:
1.Create a form with a text box and open the form for editing.
2.Use the menu item 'Replace with' to change the text box to a List Box.
3.Change the list box property 'Dropdown' setting from No to Yes.

Actual Results:
LibreOffice Base hangs.

Expected Results:
The List Box should be displayed with a triangle on its right edge that opens a dropdown menu when you select it.


Reproducible: Always


User Profile Reset: No

Additional Info:
This feature worked with the previous version of LibreOffice.
Comment 1 Alex Thurgood 2026-01-23 14:06:54 UTC
I see this with a HSQLDB when I try and edit the content of the list box, for example, to switch to a SQL-generated list.

Attaching spindump and sampling profiles generated by the macOS system monitor tool.

It looks like there's improper handling of a mutex lock or a wait condition.
Comment 2 Alex Thurgood 2026-01-23 14:07:28 UTC
Created attachment 205154 [details]
Spindump produced by macOS system monitor
Comment 3 Alex Thurgood 2026-01-23 14:07:55 UTC
Created attachment 205155 [details]
Sampling when hung using macOS system monitor
Comment 4 Alex Thurgood 2026-01-23 14:14:41 UTC
Not reproducible with

Version: 25.2.4.3 (AARCH64) / LibreOffice Community
Build ID: 33e196637044ead23f5c3226cde09b47731f7e27
CPU threads: 8; OS: macOS 26.2; UI render: Skia/Metal; VCL: osx
Locale: fr-FR (fr_FR.UTF-8); UI: en-US
Calc: threaded


==>> regression
Comment 5 Alex Thurgood 2026-01-23 14:37:46 UTC
Steps to reproduce: 


1) Load an ODB file having a form, for example, Beispiel_Sport_Hsqldb.odb 

2) Click on Forms

3) Copy and Paste the Teilnehmer form to Teilnehmer 1

4) If you get asked to migrate to Firebird, click on "Later"

5) Open the form in Form Design mode

6) Replace the control type of the Vorname field from Text box to Listbox

7) In the Properties dialog of the new listbox control, under the Data tab, click in the dropdown menu Type of Content to switch to SQL 

8) Irretrievable hang, requiring forced kill.
Comment 6 Alex Thurgood 2026-01-23 14:41:16 UTC
Created attachment 205156 [details]
Test Database HSQLDB embedded
Comment 7 raal 2026-02-10 15:22:20 UTC
No repro with Version: 26.8.0.0.alpha0+ (X86_64)
Build ID: 540d53505863665c43f1d4960c33bf960c543cdc
CPU threads: 4; OS: Linux 6.8; UI render: default; VCL: gtk3
Locale: cs-CZ (cs_CZ.UTF-8); UI: en-US
Calc: threaded
Comment 8 Alex Thurgood 2026-03-26 16:30:56 UTC
*** Bug 171466 has been marked as a duplicate of this bug. ***
Comment 9 Alex Thurgood 2026-03-26 16:47:44 UTC
Indeed, it doesn't appear to crash with

Version: 26.8.0.0.alpha0+ (AARCH64)
Build ID: 66ba77fb2e6be3f954368adf02a40bed8eecfb25
CPU threads: 8; OS: macOS 26.3.1; UI render: Skia/Metal; VCL: osx
Locale: fr-FR (fr_FR.UTF-8); UI: en-US
Calc: threaded

It would be helpful to know the fix that occurred for a backport to 25.8.x.
Comment 10 Robert Großkopf 2026-05-05 14:06:03 UTC
*** Bug 171978 has been marked as a duplicate of this bug. ***
Comment 11 jeremy 2026-05-05 14:23:52 UTC
I get the same problem with MacBook Neo, macOS Tahoe V26.4.1, amazon-corretto-26.0.1.8.1-macosx-aarch64

Created a table which includes a varchar (256) text field. Created a form for the table using the Wizard.  Edited the Control Properties of the text field and changed the Text type from Single-line to Multi-line.  LibreOffice just hangs - rotating beachball.  I've left it for over an hour and eventually had to force quit.

I've tried this on a populated database table and on an empty table with the same result.

I tried resetting the user profile - ~/Library/Application Support/LibreOffice/4/user, closed LibreOffice, renamed 4 to 4old and started LibreOffice again. It started with a new profile and I still have the same problem with it hanging.
Comment 12 Robert Großkopf 2026-05-13 05:44:48 UTC
*** Bug 172053 has been marked as a duplicate of this bug. ***
Comment 13 raal 2026-05-21 17:59:26 UTC
*** Bug 172198 has been marked as a duplicate of this bug. ***
Comment 14 dcbw@libreoffice.org 2026-05-25 04:20:17 UTC
Confirmed; just selecting multi-line from the dropdown hangs.

(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
  * frame #0: 0x000000018a68f50c libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x000000018a6d0128 libsystem_pthread.dylib`_pthread_cond_wait + 980
    frame #2: 0x000000018a5e5858 libc++.1.dylib`std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 32
    frame #3: 0x000000011ac812f0 libvclplug_osxlo.dylib`void std::__1::condition_variable::wait[abi:nqe210106]<AquaSalYieldMutex::doAcquire(unsigned int)::$_0>(this=0x00000007c4cd3468, __lk=0x000000016fdfd1b8, __pred=(unnamed class) @ 0x000000016fdfd140) at condition_variable.h:112:7
    frame #4: 0x000000011ac81064 libvclplug_osxlo.dylib`AquaSalYieldMutex::doAcquire(this=0x00000007c4cd3400, nLockCount=1) at salmutex.cxx:58:36
    frame #5: 0x000000010f089670 libvcllo.dylib`comphelper::SolarMutex::acquire(this=0x00000007c4cd3400, nLockCount=1) at solarmutex.hxx:86:5
    frame #6: 0x000000010f89ab98 libvcllo.dylib`SalInstance::AcquireYieldMutex(this=0x00000007c5218140, nCount=1) at salinst.cxx:49:73
    frame #7: 0x000000010f9426c8 libvcllo.dylib`Application::AcquireSolarMutex(nCount=1) at svapp.cxx:534:23
    frame #8: 0x000000011ac7bb70 libvclplug_osxlo.dylib`SolarMutexReleaser::~SolarMutexReleaser(this=0x000000016fdfd48c) at svapp.hxx:1452:13
    frame #9: 0x000000011ac7875c libvclplug_osxlo.dylib`SolarMutexReleaser::~SolarMutexReleaser(this=0x000000016fdfd48c) at svapp.hxx:1450:5
    frame #10: 0x000000011ac78094 libvclplug_osxlo.dylib`AquaSalInstance::DoYield(this=0x00000007c5218140, bWait=true, bHandleAllCurrentEvents=false) at salinst.cxx:524:9
    frame #11: 0x000000010f94198c libvcllo.dylib`InnerYield(i_bWait=true, i_bAllEvents=false) at svapp.cxx:389:48
    frame #12: 0x000000010f941204 libvcllo.dylib`Application::Yield() at svapp.cxx:502:5
    frame #13: 0x000000010f940f70 libvcllo.dylib`Application::Execute() at svapp.cxx:364:13
    frame #14: 0x000000010097805c libsofficeapp.dylib`desktop::Desktop::Main(this=0x000000016fdfeda0) at app.cxx:1680:13
    frame #15: 0x000000010f9626c0 libvcllo.dylib`ImplSVMainRun() at svmain.cxx:234:35
    frame #16: 0x000000011ac772e0 libvclplug_osxlo.dylib`AquaSalInstance::handleAppDefinedEvent(pEvent=0x00000007c52c8540) at salinst.cxx:321:9
    frame #17: 0x000000011ad0b2a8 libvclplug_osxlo.dylib`-[VCL_NSApplication sendEvent:](self=0x000000010e9d8a20, _cmd="sendEvent:", pEvent=0x00000007c52c8540) at vclnsapp.mm:98:9
    frame #18: 0x000000018f398498 AppKit`-[NSApplication _handleEvent:] + 60
    frame #19: 0x000000018ebaa164 AppKit`-[NSApplication run] + 408
    frame #20: 0x000000018eb827b0 AppKit`NSApplicationMain + 880
    frame #21: 0x000000011ac7b19c libvclplug_osxlo.dylib`AquaSalInstance::SVMainRun(this=0x00000007c5218140) at salinst.cxx:899:12
    frame #22: 0x000000010f961bec libvcllo.dylib`ImplSVMain() at svmain.cxx:221:30
    frame #23: 0x000000010f963568 libvcllo.dylib`SVMain() at svmain.cxx:252:12
    frame #24: 0x00000001009ee68c libsofficeapp.dylib`soffice_main at sofficemain.cxx:122:12
    frame #25: 0x0000000100000558 soffice`sal_main at main.c:51:15
    frame #26: 0x0000000100000530 soffice`main(argc=1, argv=0x000000016fdff510) at main.c:49:1
    frame #27: 0x000000018a313da4 dyld`start + 6992

is probably deadlocking with:

  thread #47, name = 'browserlistbox'
    frame #0: 0x000000018a68f50c libsystem_kernel.dylib`__psynch_cvwait + 8
    frame #1: 0x000000018a6d0128 libsystem_pthread.dylib`_pthread_cond_wait + 980
    frame #2: 0x0000000236e8da28 SwiftUICore`_MovableLockSyncMain + 196
    frame #3: 0x0000000237b8491c SwiftUICore`ViewGraphRootValueUpdater.updateGraph() + 452
    frame #4: 0x0000000237b84ab4 SwiftUICore`ViewGraphRootValueUpdater._updateViewGraph(body:) + 212
    frame #5: 0x0000000237b82c04 SwiftUICore`ViewGraphRootValueUpdater._sizeThatFits(_:) + 100
    frame #6: 0x000000018efa8abc AppKit`___lldb_unnamed_symbol_184dc894c + 368
    frame #7: 0x000000018f1d82c4 AppKit`___lldb_unnamed_symbol_184ff8130 + 404
    frame #8: 0x000000018ef24c10 AppKit`___lldb_unnamed_symbol_184d44bcc + 68
    frame #9: 0x000000018ef23b78 AppKit`___lldb_unnamed_symbol_184d43b50 + 40
    frame #10: 0x000000018ebe130c AppKit`-[NSCell cellSize] + 48
    frame #11: 0x000000018ebe11bc AppKit`-[NSControl sizeToFit] + 52
    frame #12: 0x000000018ed1daf4 AppKit`+[NSSegmentedControl(NSSegmentedControlConvenience) segmentedControlWithLabels:trackingMode:target:action:] + 288
    frame #13: 0x000000018f763ca0 AppKit`-[NSTabView _addSegmentedControl] + 84
    frame #14: 0x000000018f7632d8 AppKit`-[NSTabView _layoutSegmentedControl] + 64
    frame #15: 0x000000018ed30800 AppKit`-[NSTabView _addedTab:atIndex:] + 132
    frame #16: 0x000000011ac95f40 libvclplug_osxlo.dylib`AquaGraphicsBackendBase::performDrawNativeControl(nType=TabPane, nPart=Entire, rControlRegion=0x000000041d81dd90, nState=ENABLED, aValue=0x00000007c27b5a40, context=0x00000007c77dac40, mpFrame=0x00000007c739c000) at salnativewidgets.cxx:943:17
    frame #17: 0x000000011acc9be0 libvclplug_osxlo.dylib`AquaSkiaSalGraphicsImpl::drawNativeControl(this=0x00000007be9f4100, nType=TabPane, nPart=Entire, rControlRegion=0x000000041d81e310, nState=ENABLED, aValue=0x00000007c27b5a40) at gdiimpl.cxx:324:16
    frame #18: 0x000000011ac94234 libvclplug_osxlo.dylib`invocation function for block in AquaSalGraphics::drawNativeControl(.block_descriptor=0x000000041d81e1c8) at salnativewidgets.cxx:274:31
    frame #19: 0x000000018eba6b6c AppKit`+[NSAppearance _performWithCurrentAppearance:usingBlock:] + 72
    frame #20: 0x000000011ac94120 libvclplug_osxlo.dylib`AquaSalGraphics::drawNativeControl(this=0x00000007bfbd0a80, nType=TabPane, nPart=Entire, rControlRegion=0x000000041d81e310, nState=ENABLED, aValue=0x00000007c27b5a40, (null)=0x000000041d81e930, (null)=0x00000001105d9890) at salnativewidgets.cxx:273:9
    frame #21: 0x000000010f76d1ac libvcllo.dylib`SalGraphics::DrawNativeControl(this=0x00000007bfbd0a80, nType=TabPane, nPart=Entire, rControlRegion=0x000000041d81e400, nState=ENABLED, aValue=0x00000007c27b5a40, aCaption=0x000000041d81e930, rOutDev=0x00000007c7288000, rBackgroundColor=0x00000001105d9890) at salgdilayout.cxx:795:29
    frame #22: 0x000000010f590c58 libvcllo.dylib`OutputDevice::DrawNativeControl(this=0x00000007c7288000, nType=TabPane, nPart=Entire, rControlRegion=0x000000041d81ea48, nState=ENABLED, aValue=0x000000041d81e968, aCaption=0x000000041d81e930, rBackgroundColor=0x00000001105d9890) at nativecontrols.cxx:289:29
    frame #23: 0x000000010f4b9a8c libvcllo.dylib`TabControl::Paint(this=0x00000007c6b3e680, rRenderContext=0x00000007c7288000, rRect=0x000000041d81f348) at tabctrl.cxx:1164:28
    frame #24: 0x000000010f1773e8 libvcllo.dylib`PaintHelper::DoPaint(this=0x000000041d81f318, pRegion=0x00000007c73dddc0) at paint.cxx:317:20
    frame #25: 0x000000010f178ae8 libvcllo.dylib`vcl::Window::ImplCallPaint(this=0x00000007c6b3e680, pRegion=0x00000007c73dddc0, nPaintFlags=PaintAllChildren | PaintChildren | Erase) at paint.cxx:472:17
    frame #26: 0x000000010f1781c4 libvcllo.dylib`PaintHelper::~PaintHelper(this=0x000000041d81f638) at paint.cxx:404:30
    frame #27: 0x000000010f178ce4 libvcllo.dylib`PaintHelper::~PaintHelper(this=0x000000041d81f638) at paint.cxx:389:1
    frame #28: 0x000000010f178b4c libvcllo.dylib`vcl::Window::ImplCallPaint(this=0x00000007be8899c0, pRegion=0x00000007c73dde00, nPaintFlags=PaintAllChildren | PaintChildren | Erase) at paint.cxx:478:1
    frame #29: 0x000000010f1781c4 libvcllo.dylib`PaintHelper::~PaintHelper(this=0x000000041d81f958) at paint.cxx:404:30
    frame #30: 0x000000010f178ce4 libvcllo.dylib`PaintHelper::~PaintHelper(this=0x000000041d81f958) at paint.cxx:389:1
    frame #31: 0x000000010f178b4c libvcllo.dylib`vcl::Window::ImplCallPaint(this=0x00000007be9d00f0, pRegion=0x00000007c73dde40, nPaintFlags=PaintAllChildren | PaintChildren | Erase) at paint.cxx:478:1
    frame #32: 0x000000010f1781c4 libvcllo.dylib`PaintHelper::~PaintHelper(this=0x000000041d81fc78) at paint.cxx:404:30
    frame #33: 0x000000010f178ce4 libvcllo.dylib`PaintHelper::~PaintHelper(this=0x000000041d81fc78) at paint.cxx:389:1
    frame #34: 0x000000010f178b4c libvcllo.dylib`vcl::Window::ImplCallPaint(this=0x00000007be883480, pRegion=0x00000007c73de0c0, nPaintFlags=PaintAllChildren | PaintChildren | Erase) at paint.cxx:478:1
    frame #35: 0x000000010f1781c4 libvcllo.dylib`PaintHelper::~PaintHelper(this=0x000000041d81ff98) at paint.cxx:404:30
    frame #36: 0x000000010f178ce4 libvcllo.dylib`PaintHelper::~PaintHelper(this=0x000000041d81ff98) at paint.cxx:389:1
    frame #37: 0x000000010f178b4c libvcllo.dylib`vcl::Window::ImplCallPaint(this=0x00000007c6b3e840, pRegion=0x0000000000000000, nPaintFlags=PaintAllChildren | PaintChildren | Erase) at paint.cxx:478:1
    frame #38: 0x000000010f17b010 libvcllo.dylib`vcl::Window::PaintImmediately(this=0x00000007c1a1b640) at paint.cxx:1209:24
    frame #39: 0x000000010f17ac44 libvcllo.dylib`vcl::Window::PaintImmediately(this=0x00000007c76c5f80) at paint.cxx:1149:39
    frame #40: 0x000000010f3eec74 libvcllo.dylib`Edit::ImplInvalidateOrRepaint(this=0x00000007c76c5f80) at edit.cxx:422:13
    frame #41: 0x000000010f3faddc libvcllo.dylib`Edit::StateChanged(this=0x00000007c76c5f80, nType=Enable) at edit.cxx:2158:13
    frame #42: 0x000000010f382908 libvcllo.dylib`vcl::Window::CompatStateChanged(this=0x00000007c76c5f80, nStateChange=Enable) at window.cxx:3864:9
    frame #43: 0x000000010f3857c0 libvcllo.dylib`vcl::Window::Enable(this=0x00000007c76c5f80, bEnable=false, bChild=true) at window.cxx:2479:9
    frame #44: 0x000000010f8a5580 libvcllo.dylib`SalInstanceWidget::set_sensitive(this=0x00000007bfbd8600, sensitive=false) at salvtables.cxx:331:68
    frame #45: 0x00000004243662f4 libpcrlo.dylib`pcr::(anonymous namespace)::implEnable(pWindow=0x00000007bfbd8650, bEnable=false) at browserline.cxx:246:18
    frame #46: 0x000000042436628c libpcrlo.dylib`pcr::(anonymous namespace)::implEnable(pWindow=0x00000007bfbd8650, nEnabledBits=49151, nMatchBits=16385) at browserline.cxx:252:5
    frame #47: 0x0000000424366108 libpcrlo.dylib`pcr::OBrowserLine::implUpdateEnabledDisabled(this=0x00000007c70140b8) at browserline.cxx:260:9
    frame #48: 0x0000000424366340 libpcrlo.dylib`pcr::OBrowserLine::EnablePropertyLine(this=0x00000007c70140b8, _bEnable=false) at browserline.cxx:281:5
    frame #49: 0x000000042436f28c libpcrlo.dylib`pcr::OBrowserListBox::EnablePropertyLine(this=0x00000007c7086418, _rEntryName=0x00000007c18992e0, _bEnable=false) at browserlistbox.cxx:443:16
    frame #50: 0x00000004244b6f08 libpcrlo.dylib`pcr::OPropertyEditor::EnablePropertyLine(this=0x00000007be9e17c0, rEntryName=0x00000007c18992e0, bEnable=false) at propertyeditor.cxx:336:37
    frame #51: 0x00000004244946cc libpcrlo.dylib`pcr::OPropertyBrowserController::enablePropertyUI(this=0x00000007bcb0e400, _rPropertyName=0x00000007c18992e0, _bEnable='\0') at propcontroller.cxx:1486:22
    frame #52: 0x0000000424398c24 libpcrlo.dylib`pcr::(anonymous namespace)::DefaultStringKeyBooleanUIUpdate::updateUIForKey(this=0x000000041d820a58, _rKey=0x00000007c18992e0, _bFlag=false) const at composeduiupdate.cxx:542:13
    frame #53: 0x000000042439893c libpcrlo.dylib`pcr::(anonymous namespace)::BooleanUIAspectUpdate::operator()(this=0x000000041d820860, _rPropertyName=0x00000007c18992e0) at composeduiupdate.cxx:563:28
    frame #56: 0x000000042439869c libpcrlo.dylib`pcr::(anonymous namespace)::BooleanUIAspectUpdate std::__1::for_each[abi:nqe210106]<std::__1::__tree_const_iterator<rtl::OUString, std::__1::__tree_node<rtl::OUString, void*>*, long>, pcr::(anonymous namespace)::BooleanUIAspectUpdate>(__first=__tree_const_iterator<rtl::OUString, std::__1::__tree_node<rtl::OUString, void *> *, long> @ 0x000000041d820858, __last=__tree_const_iterator<rtl::OUString, std::__1::__tree_node<rtl::OUString, void *> *, long> @ 0x000000041d820850, __f=BooleanUIAspectUpdate @ 0x000000041d820860) at for_each.h:57:3
    frame #57: 0x0000000424398614 libpcrlo.dylib`pcr::(anonymous namespace)::BooleanUIAspectUpdate::forEach(_rProperties=size=4, _rUpdater=0x000000041d820a58, _bFlag=false) at composeduiupdate.cxx:568:17
    frame #58: 0x000000042439231c libpcrlo.dylib`pcr::(anonymous namespace)::lcl_fireUIStateFlag(_rUIUpdate=0x000000041d820a58, _rHandlerUIs=size=3, _pGetPositives=(libpcrlo.dylib`pcr::(anonymous namespace)::CachedInspectorUI::getEnabledProperties() at composeduiupdate.cxx:108), _pGetNegatives=(libpcrlo.dylib`pcr::(anonymous namespace)::CachedInspectorUI::getDisabledProperties() at composeduiupdate.cxx:109)) at composeduiupdate.cxx:614:13
    frame #59: 0x00000004243921e0 libpcrlo.dylib`pcr::ComposedPropertyUIUpdate::impl_fireEnablePropertyUI_throw(this=0x00000007bea0b480) at composeduiupdate.cxx:630:9
    frame #60: 0x000000042439303c libpcrlo.dylib`pcr::ComposedPropertyUIUpdate::impl_fireAll_throw(this=0x00000007bea0b480) at composeduiupdate.cxx:713:9
    frame #61: 0x000000042439310c libpcrlo.dylib`pcr::ComposedPropertyUIUpdate::resumeAutoFire(this=0x00000007bea0b480) at composeduiupdate.cxx:732:13
    frame #62: 0x000000042449d2c4 libpcrlo.dylib`pcr::ComposedUIAutoFireGuard::~ComposedUIAutoFireGuard(this=0x000000041d820bf0) at composeduiupdate.hxx:199:13
    frame #63: 0x0000000424492cb4 libpcrlo.dylib`pcr::ComposedUIAutoFireGuard::~ComposedUIAutoFireGuard(this=0x000000041d820bf0) at composeduiupdate.hxx:198:9
    frame #64: 0x000000042448c33c libpcrlo.dylib`pcr::OPropertyBrowserController::impl_broadcastPropertyChange_nothrow(this=0x00000007bcb0e400, _rPropertyName=0x00000007bcbb0b50, _rNewValue=0x000000041d820cc8, _rOldValue=0x00000007bcbb0b60, _bFirstTimeInit=false) const at propcontroller.cxx:1641:1
    frame #65: 0x000000042448bc9c libpcrlo.dylib`pcr::OPropertyBrowserController::propertyChange(this=0x00000007bcb0e400, _rEvent=0x00000007bcbb0b48) at propcontroller.cxx:659:9
    frame #66: 0x000000010125165c libuno_cppuhelpergcc3.dylib.3`cppu::OPropertySetHelper::fire(this=0x00000007bfbb8000, pnHandles=0x000000041d821764, pNewValues=0x00000007bcbb1708, pOldValues=0x00000007bcbb16f0, nHandles=1, bVetoable='\0') at propshlp.cxx:733:73
    frame #67: 0x000000010178bb60 libcomphelper.dylib`comphelper::OPropertySetAggregationHelper::propertiesChange(this=0x00000007bfbb8000, _rEvents=0x000000041d821990) at propagg.cxx:398:13
    frame #68: 0x00000001012519ac libuno_cppuhelpergcc3.dylib.3`cppu::OPropertySetHelper::fire(this=0x00000007bfbb8800, pnHandles=0x000000041d82239c, pNewValues=0x000000041d822668, pOldValues=0x000000041d822358, nHandles=1, bVetoable='\0') at propshlp.cxx:779:21
    frame #69: 0x0000000101251e14 libuno_cppuhelpergcc3.dylib.3`cppu::OPropertySetHelper::impl_fireAll(this=0x00000007bfbb8800, i_handles=0x000000041d82239c, i_newValues=0x000000041d822668, i_oldValues=0x000000041d822358, i_count=1) at propshlp.cxx:569:9
    frame #70: 0x0000000101250cbc libuno_cppuhelpergcc3.dylib.3`cppu::OPropertySetHelper::setFastPropertyValue(this=0x00000007bfbb8800, nHandle=94, rValue=0x000000041d822668) at propshlp.cxx:544:5
    frame #71: 0x000000010178cd60 libcomphelper.dylib`comphelper::OPropertySetAggregationHelper::setFastPropertyValue(this=0x00000007bfbb8800, _nHandle=94, _rValue=0x000000041d822668) at propagg.cxx:532:29
    frame #72: 0x000000010178ccf8 libcomphelper.dylib`comphelper::OPropertySetAggregationHelper::setFastPropertyValue(this=0x00000007bfbb8000, _nHandle=94, _rValue=0x000000041d822668) at propagg.cxx:528:34
    frame #73: 0x000000010124efb8 libuno_cppuhelpergcc3.dylib.3`cppu::OPropertySetHelper::setPropertyValue(this=0x00000007bfbb8000, rPropertyName=0x000000042455a7f0, rValue=0x000000041d822668) at propshlp.cxx:264:5
    frame #74: 0x00000004243a35a8 libpcrlo.dylib`pcr::EditPropertyHandler::setPropertyValue(this=0x00000007c197df80, _rPropertyName=0x00000007c7014838, _rValue=0x000000041d822d60) at editpropertyhandler.cxx:166:31
    frame #75: 0x0000000424493020 libpcrlo.dylib`pcr::OPropertyBrowserController::Commit(this=0x00000007bcb0e400, rName=0x00000007c7014838, _rValue=0x000000041d822d60) at propcontroller.cxx:1325:22
    frame #76: 0x000000042436d3c4 libpcrlo.dylib`pcr::OBrowserListBox::valueChanged(this=0x00000007c7086418, _rxControl=0x00000007c77b6210) at browserlistbox.cxx:640:26
    frame #77: 0x000000042436d12c libpcrlo.dylib`pcr::PropertyControlContext_Impl::impl_processEvent_throw(this=0x00000007be9d0be0, _rEvent=0x00000007c77b6200) at browserlistbox.cxx:289:25
    frame #78: 0x000000042436cf70 libpcrlo.dylib`pcr::PropertyControlContext_Impl::processEvent(this=0x00000007be9d0be0, _rEvent=0x00000007c77b6200) at browserlistbox.cxx:270:9
    frame #79: 0x00000001016635e4 libcomphelper.dylib`comphelper::AsyncEventNotifierBase::execute(this=0x00000007bfbd7a00) at asyncnotification.cxx:138:36
    frame #80: 0x0000000101663b78 libcomphelper.dylib`comphelper::AsyncEventNotifier::execute(this=0x00000007bfbd7a00) at asyncnotification.cxx:155:40
    frame #81: 0x0000000100059dbc libuno_salhelpergcc3.dylib.3`salhelper::Thread::run(this=0x00000007bfbd7a00) at thread.cxx:39:5
    frame #82: 0x000000010005b7c4 libuno_salhelpergcc3.dylib.3`threadFunc(param=0x00000007bfbd7a00) at thread.hxx:189:15
    frame #83: 0x00000001003a9bac libuno_sal.dylib.3`osl_thread_start_Impl(pData=0x00000007c75df020) at thread.cxx:240:9
    frame #84: 0x000000018a6cfc58 libsystem_pthread.dylib`_pthread_start + 136

but actually it's quite odd that LO is doing AppKit GUI stuff in the second thread.
Comment 15 dcbw@libreoffice.org 2026-05-25 04:24:13 UTC
*** Bug 172218 has been marked as a duplicate of this bug. ***
Comment 16 dcbw@libreoffice.org 2026-05-26 12:33:32 UTC
Ensuring the native control drawing runs in the main loop seems to do the trick: I'll post the real change later today.

diff --git a/vcl/osx/salnativewidgets.cxx b/vcl/osx/salnativewidgets.cxx
index 1aae8e789f8c..ba053046e8d4 100644
--- a/vcl/osx/salnativewidgets.cxx
+++ b/vcl/osx/salnativewidgets.cxx
@@ -259,9 +259,11 @@ bool AquaSalGraphics::drawNativeControl(ControlType nType,
                                         const tools::Rectangle &rControlRegion,
                                         ControlState nState,
                                         const ImplControlValue &aValue,
-                                        const OUString &,
-                                        const Color&)
+                                        const OUString &a,
+                                        const Color&b)
 {
+    OSX_SALDATA_RUNINMAIN_UNION( drawNativeControl( nType, nPart, rControlRegion, nState, aValue, a, b), boolean )
+
     // tdf#165266 Force native controls to use current effective appearance
     // +[NSAppearance setCurrentAppearance:] is deprecated and calling
     // that appears to do less and less with each new version of macos
Comment 17 dcbw@libreoffice.org 2026-05-26 20:51:33 UTC
https://gerrit.libreoffice.org/c/core/+/205736
Comment 18 Commit Notification 2026-05-27 02:36:47 UTC
Dan Williams committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/bb731539e894d5e9d45304e7b88beee3b272d544

tdf#170420: run drawNativeControl() from main thread

It will be available in 26.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.
Comment 19 todds 2026-05-27 14:25:29 UTC
I just tested the latest daily build (27 May 2026) for 26.8.0 and can confirm that I can now convert a text box to a list box with no problems. Thank you.
Comment 20 Commit Notification 2026-05-27 14:53:50 UTC
Dan Williams committed a patch related to this issue.
It has been pushed to "libreoffice-26-2":

https://git.libreoffice.org/core/commit/aafd560271569d6dcddc3e8d3a8d6135fe399f80

tdf#170420: run drawNativeControl() from main thread

It will be available in 26.2.5.

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 21 dcbw@libreoffice.org 2026-05-27 14:57:25 UTC
(In reply to todds from comment #19)
> I just tested the latest daily build (27 May 2026) for 26.8.0 and can
> confirm that I can now convert a text box to a list box with no problems.
> Thank you.

Excellent, thanks for the original report!
Comment 22 jeremy 2026-05-27 16:51:06 UTC
I have tested version 25.8.7.3 with Taho 26.5 (ARM) and it still hangs when changing a single line to a multi-line.
Comment 23 BogdanB 2026-05-27 17:04:18 UTC
(In reply to jeremy from comment #22)
> I have tested version 25.8.7.3 with Taho 26.5 (ARM) and it still hangs when
> changing a single line to a multi-line.

As you can see this update is for this versions: target:26.8.0 target:26.2.5.
Comment 24 Commit Notification 2026-05-28 09:08:39 UTC
Dan Williams committed a patch related to this issue.
It has been pushed to "libreoffice-26-2-4":

https://git.libreoffice.org/core/commit/c20f7d2112b2f542768ad0c59ac30cd5d1b71145

tdf#170420: run drawNativeControl() from main thread

It will be available in 26.2.4.

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 25 Alex Thurgood 2026-05-29 13:26:55 UTC
*** Bug 171040 has been marked as a duplicate of this bug. ***
Comment 26 Alex Thurgood 2026-05-29 14:29:19 UTC
Trying to test with an embedded HSQLDB, I get repeated hang and resource consumption until I force kill, with 

Version: 26.8.0.0.alpha0+ (AARCH64) (master daily build)
Build ID: 83cb6f80beb3f32230fca2ef5a82124b3dcfd9e9
CPU threads: 8; OS: macOS 26.5; UI render: Skia/Metal; VCL: osx
Locale: fr-FR (fr_FR.UTF-8); UI: en-US
Calc: threaded


I can load the ODB.
I can open a previously created form.

If I try and enter Form Design mode, the app immediately enters the spinning beachball state.

If I try and use the Form wizard to create a new form, the app enters the spinning beachball state.

I can enter manual form design, and get the blank form design canvas.

It isn't just with embedded HSQLDB either, I encountered the same problem with a MacAb addressbook database file that I had previously created and trying to create a form for that.

I've got a spindump, which I'll upload, but I'm not certain we're talking about the same issue, or whether what I'm seeing is a result of the recently pushed change.
Comment 27 Alex Thurgood 2026-05-29 14:29:57 UTC
Created attachment 207270 [details]
Spindump trace when trying to use Form Design functions