Hi

reede, 2. august 2024 20:01:10 EEST kirjutas Rene Engelhard:
> Am 02.08.24 um 17:25 schrieb Andres Alla:
> > [....] 
> > I suspect it may be i386 specific.
> I suspect, too. Works definitely on amd64.

It may be fixed in 24.8.0 but see below.

After some detouring I stumbled on upstream commit
https://github.com/LibreOffice/core/commit/542e590
that supposedly fixes this bug.

I now upgraded to 4:24.8.0~rc3-2 from experimental and everything works fine 
with SAL_USE_VCLPLUGIN set either kf5 or gen.
4:24.2.5-3 from unstable also worked if libreoffice-plasma installed and 
SAL_USE_VCLPLUGIN set to kf5; crashed if gen.

I am not sure why it did not show up on amd64 because it seems to be rather 
KDE- than i386-specific.

Also I think that I tried 24.8.0~rc1 from experimental (includes fix) as first 
thing after encountering crash of then sid-version and that crashed too but 
maybe it was something else, can not reproduce it now anyway.


As a hint to future bug-hunters. I understood that backtrace included in 
original report is nearly useless but it did not occur to me why gdb could not 
do better. Until I realized to purge debuginfod cache. Then gdb started to 
give meaningful output.

New backtrace of crash attached.

Also, in an effort to have more consistent environment between runs I started 
LO with switch --norestore. And it did not crash. That was awkward since it 
shouldn't have made a difference since I ran LO with pristine user profile 
anyway (that I failed to mention in original report).

So

$ libreoffice -env:UserInstallation=file:///tmp/testlo --backtrace

crashed, but

$ libreoffice -env:UserInstallation=file:///tmp/testlo --norestore --backtrace

did not.

Comparing strace output of both ways, I saw that only relevant files first one 
touched before crashing code that second one did not were:

/run/user/*/iceauth_*
/tmp/.ICE-unix/*
/usr/lib/libreoffice/share/config/soffice.cfg/svx/ui/docrecoverysavedialog.ui

That suggests something to do with session management as is crashing function 
SessionManagerClient::open().

So I ran LO under gdb to watch more closely what happens before crash and 
discovered that rtl_string_newFromStr() was called with 2nd parameter (const 
char *) as null. That of course leads to strlen of it segfaulting.

Googleing "sm.cxx null" led to git commit referred above.


> > System is Debian unstable, mix of i386 and amd64; i386 is primary
> > architecture, most of X desktop applications are i386, as is libreoffice.
> 
> *sigh*. Why are you using libreoffice for i386 then?

Because installing amd64 version of LO on this kind of system is not 
straightforward and it has been working well as is.

> And why people do think this mix makes sense in any wy?

Because it works and there is no pressing need to fix what works.

It is very old install, lived through dozen-ish machines. Gradually updated, 
it actually works very well and any kind of breakage is surprisingly rare. 
Larger changes - like cross-grading i386 to amd64 would be - are generally 
done along with moving to a new machine but arch-transition probably did not 
seem important during last couple of moves, maybe next time.

Of course software that clearly benefits from or requires that, scilab for 
instance is run as amd64.

Possibility of running system like this with little to no drama speaks very 
highly of Debian ("unstable" no-less).

I deeply appreciate your work making it happen.


> [....]
> > 4:7.4.7-1+deb12u3 from stable works somewhat, writer at least, calc
> > crashes because of some libxml discrepancy.
> What exactly? That sounds like the (broken) libxml2 in unstable also needs
> an other conflict...

Have not yet got time to look into this again, maybe later.

> [....]
> > Architecture: i386 (x86_64)
> > Foreign Architectures: amd64, armel
> even armel there?

Sometimes useful to run binaries from embedded-devices with qemu.
As I wrote above, it works, why not?  ;-)

> [....]
> > Versions of packages libreoffice-core depends on:
> > [....]
> > ii  ure                             4:24.2.5-1+f1
> What on earth is this? This is some random version which doesn't exist?

As I wrote in original report +f1-versioned packages in the list are due to my 
dirty hack to get working amd64 version to install on this system.
It is just original binary package extracted, added "Multi-Arch: foreign" to 
control file, adjust version and then dpkg-deb --build.

I understand that making LO truly multi-arch installable is much more involved 
and I am not pestering you into this (unless I'd come up with patch or sth).

Now that I got it working, it is back to all original Debian, without these 
weird packages.
 
> [....]

-- 
Andres Alla
warning: Currently logging to gdbtrace.log.  Turn the logging off and on to make the new setting effective.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
[New Thread 0xecefeb40 (LWP 29881)]
[New Thread 0xec4ffb40 (LWP 29882)]
[Thread 0xecefeb40 (LWP 29881) exited]
[New Thread 0xecefeb40 (LWP 29883)]
[Thread 0xecefeb40 (LWP 29883) exited]
[New Thread 0xecefeb40 (LWP 29884)]
[New Thread 0xeaa06b40 (LWP 29885)]
[Thread 0xecefeb40 (LWP 29884) exited]

Thread 1 "soffice.bin" received signal SIGSEGV, Segmentation fault.
Download failed: Invalid argument.  Continuing without source file ./string/../sysdeps/i386/i686/multiarch/strlen-sse2-bsf.S.
__strlen_sse2_bsf () at ../sysdeps/i386/i686/multiarch/strlen-sse2-bsf.S:49
warning: 49	../sysdeps/i386/i686/multiarch/strlen-sse2-bsf.S: No such file or directory
#0  __strlen_sse2_bsf () at ../sysdeps/i386/i686/multiarch/strlen-sse2-bsf.S:49
#1  0xf7ec4e92 in std::char_traits<char>::length () at /usr/include/c++/12/bits/char_traits.h:389
#2  rtl::str::getLength<char> () at ./sal/rtl/strtmpl.hxx:156
#3  rtl::str::newFromStr<_rtl_String> () at ./sal/rtl/strtmpl.hxx:862
#4  rtl_string_newFromStr () at ./sal/rtl/string.cxx:574
#5  0xed1b3873 in rtl::OString::OString<char*> () at ./include/rtl/string.hxx:312
#6  SessionManagerClient::open () at ./vcl/unx/generic/app/sm.cxx:514
#7  0xed1b3aa3 in X11SalInstance::CreateSalSession () at ./vcl/unx/generic/app/sm.cxx:73
#8  0xf451dff4 in VCLSession () at ./vcl/source/app/session.cxx:118
#9  com_sun_star_frame_VCLSessionManagerClient_get_implementation () at ./vcl/source/app/session.cxx:413
#10 0xf723aa0c in std::function<com::sun::star::uno::XInterface* (com::sun::star::uno::XComponentContext*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&)>::operator()(com::sun::star::uno::XComponentContext*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&) const () at /usr/include/c++/12/bits/std_function.h:591
#11 cppuhelper::ServiceManager::Data::Implementation::doCreateInstance () at ./cppuhelper/source/servicemanager.cxx:707
#12 0xf723abf6 in cppuhelper::ServiceManager::Data::Implementation::createInstance () at ./cppuhelper/source/servicemanager.cxx:675
#13 0xf7238bc9 in cppuhelper::ServiceManager::createInstanceWithContext () at ./cppuhelper/source/servicemanager.cxx:1007
#14 0xf6ca0c3d in initialize () at ./framework/source/services/sessionlistener.cxx:254
#15 0xf723a55b in cppuhelper::ServiceManager::Data::Implementation::doCreateInstanceWithArguments () at ./cppuhelper/source/servicemanager.cxx:732
#16 0xf723a64c in cppuhelper::ServiceManager::Data::Implementation::createInstanceWithArguments () at ./cppuhelper/source/servicemanager.cxx:694
#17 0xf723ae15 in cppuhelper::ServiceManager::createInstanceWithArgumentsAndContext () at ./cppuhelper/source/servicemanager.cxx:1019
#18 0xf7dc8ed2 in com::sun::star::frame::SessionListener::createWithOnQuitFlag () at ./workdir/UnoApiHeadersTarget/offapi/normal/com/sun/star/frame/SessionListener.hpp:48
#19 0xf7dc1be2 in desktop::Desktop::OpenClients () at ./desktop/source/app/app.cxx:2044
#20 0xf7dc41e8 in desktop::Desktop::OpenClients_Impl () at ./desktop/source/app/app.cxx:1905
#21 0xf41ef2b0 in Link<void*, void>::Call () at ./include/tools/link.hxx:111
#22 ImplHandleUserEvent () at ./vcl/source/window/winproc.cxx:2287
#23 ImplWindowFrameProc () at ./vcl/source/window/winproc.cxx:2851
#24 0xf44dde5e in operator() () at ./vcl/source/app/salusereventlist.cxx:119
#25 SalUserEventList::DispatchUserEvents () at ./vcl/source/app/salusereventlist.cxx:120
#26 0xf470d6de in SalGenericDisplay::DispatchInternalEvent () at ./vcl/unx/generic/app/gendisp.cxx:51
#27 0xed1abf2c in SalX11Display::Yield () at ./vcl/unx/generic/app/saldisp.cxx:1860
#28 0xed1abfb1 in DisplayYield () at ./vcl/unx/generic/app/saldisp.cxx:320
#29 0xed1aade3 in HandleNextEvent () at ./vcl/unx/generic/app/saldata.cxx:559
#30 SalXLib::Yield () at ./vcl/unx/generic/app/saldata.cxx:655
#31 0xed1b1297 in X11SalInstance::DoYield () at ./vcl/unx/generic/app/salinst.cxx:192
#32 0xf452bfbe in ImplYield () at ./vcl/source/app/svapp.cxx:389
#33 0xf452c9e5 in Application::Execute () at ./vcl/source/app/svapp.cxx:367
#34 0xf7dc6d4b in desktop::Desktop::Main () at ./desktop/source/app/app.cxx:1605
#35 0xf45370cf in ImplSVMain () at ./vcl/source/app/svmain.cxx:229
#36 0xf4537344 in SVMain () at ./vcl/source/app/svmain.cxx:261
#37 0xf7dee2b1 in soffice_main () at ./desktop/source/app/sofficemain.cxx:94
#38 0x5660f0ad in sal_main () at ./desktop/source/app/main.c:51
#39 main () at ./desktop/source/app/main.c:49

Thread 6 (Thread 0xeaa06b40 (LWP 29885) "SelectionManage"):
#0  __kernel_vsyscall () at /build/reproducible-path/linux-6.10.4/arch/x86/entry/vdso/vdso32/system_call.S:72
#1  0xf7c42ae7 in __GI___poll (timeout=-1, nfds=2, fds=0xeaa04a1c) at ../sysdeps/unix/sysv/linux/poll.c:29
#2  __GI___poll (fds=0xeaa04a1c, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:26
#3  0xed1d0cd6 in poll () at /usr/include/i386-linux-gnu/bits/poll2.h:39
#4  x11::SelectionManager::dispatchEvent () at ./vcl/unx/generic/dtrans/X11_selection.cxx:3740
#5  0xed1d0e45 in x11::SelectionManager::run () at ./vcl/unx/generic/dtrans/X11_selection.cxx:3777
#6  0xf7edf2d1 in osl_thread_start_Impl () at ./sal/osl/unx/thread.cxx:237
#7  0xf7bbc907 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
#8  0xf7c50728 in clone3 () at ../sysdeps/unix/sysv/linux/i386/clone3.S:111

Thread 3 (Thread 0xec4ffb40 (LWP 29882) "PipeIPC"):
#0  __kernel_vsyscall () at /build/reproducible-path/linux-6.10.4/arch/x86/entry/vdso/vdso32/system_call.S:72
#1  0xf7c5337d in __libc_accept (fd=10, addr=..., len=0x0) at ../sysdeps/unix/sysv/linux/accept.c:30
#2  0xf7ed93fc in osl_acceptPipe () at ./sal/osl/unx/pipe.cxx:382
#3  0xf7deabe7 in osl::Pipe::accept () at ./include/osl/pipe.hxx:155
#4  desktop::PipeIpcThread::execute () at ./desktop/source/app/officeipcthread.cxx:1127
#5  0xf6a4ccc9 in salhelper::Thread::run () at ./salhelper/source/thread.cxx:39
#6  0xf6a4cffe in threadFunc () at ./include/osl/thread.hxx:189
#7  0xf7edf2d1 in osl_thread_start_Impl () at ./sal/osl/unx/thread.cxx:237
#8  0xf7bbc907 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
#9  0xf7c50728 in clone3 () at ../sysdeps/unix/sysv/linux/i386/clone3.S:111

Thread 1 (Thread 0xed68ff40 (LWP 29878) "soffice.bin"):
#0  __strlen_sse2_bsf () at ../sysdeps/i386/i686/multiarch/strlen-sse2-bsf.S:49
#1  0xf7ec4e92 in std::char_traits<char>::length () at /usr/include/c++/12/bits/char_traits.h:389
#2  rtl::str::getLength<char> () at ./sal/rtl/strtmpl.hxx:156
#3  rtl::str::newFromStr<_rtl_String> () at ./sal/rtl/strtmpl.hxx:862
#4  rtl_string_newFromStr () at ./sal/rtl/string.cxx:574
#5  0xed1b3873 in rtl::OString::OString<char*> () at ./include/rtl/string.hxx:312
#6  SessionManagerClient::open () at ./vcl/unx/generic/app/sm.cxx:514
#7  0xed1b3aa3 in X11SalInstance::CreateSalSession () at ./vcl/unx/generic/app/sm.cxx:73
#8  0xf451dff4 in VCLSession () at ./vcl/source/app/session.cxx:118
#9  com_sun_star_frame_VCLSessionManagerClient_get_implementation () at ./vcl/source/app/session.cxx:413
#10 0xf723aa0c in std::function<com::sun::star::uno::XInterface* (com::sun::star::uno::XComponentContext*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&)>::operator()(com::sun::star::uno::XComponentContext*, com::sun::star::uno::Sequence<com::sun::star::uno::Any> const&) const () at /usr/include/c++/12/bits/std_function.h:591
#11 cppuhelper::ServiceManager::Data::Implementation::doCreateInstance () at ./cppuhelper/source/servicemanager.cxx:707
#12 0xf723abf6 in cppuhelper::ServiceManager::Data::Implementation::createInstance () at ./cppuhelper/source/servicemanager.cxx:675
#13 0xf7238bc9 in cppuhelper::ServiceManager::createInstanceWithContext () at ./cppuhelper/source/servicemanager.cxx:1007
#14 0xf6ca0c3d in initialize () at ./framework/source/services/sessionlistener.cxx:254
#15 0xf723a55b in cppuhelper::ServiceManager::Data::Implementation::doCreateInstanceWithArguments () at ./cppuhelper/source/servicemanager.cxx:732
#16 0xf723a64c in cppuhelper::ServiceManager::Data::Implementation::createInstanceWithArguments () at ./cppuhelper/source/servicemanager.cxx:694
#17 0xf723ae15 in cppuhelper::ServiceManager::createInstanceWithArgumentsAndContext () at ./cppuhelper/source/servicemanager.cxx:1019
#18 0xf7dc8ed2 in com::sun::star::frame::SessionListener::createWithOnQuitFlag () at ./workdir/UnoApiHeadersTarget/offapi/normal/com/sun/star/frame/SessionListener.hpp:48
#19 0xf7dc1be2 in desktop::Desktop::OpenClients () at ./desktop/source/app/app.cxx:2044
#20 0xf7dc41e8 in desktop::Desktop::OpenClients_Impl () at ./desktop/source/app/app.cxx:1905
#21 0xf41ef2b0 in Link<void*, void>::Call () at ./include/tools/link.hxx:111
#22 ImplHandleUserEvent () at ./vcl/source/window/winproc.cxx:2287
#23 ImplWindowFrameProc () at ./vcl/source/window/winproc.cxx:2851
#24 0xf44dde5e in operator() () at ./vcl/source/app/salusereventlist.cxx:119
#25 SalUserEventList::DispatchUserEvents () at ./vcl/source/app/salusereventlist.cxx:120
#26 0xf470d6de in SalGenericDisplay::DispatchInternalEvent () at ./vcl/unx/generic/app/gendisp.cxx:51
#27 0xed1abf2c in SalX11Display::Yield () at ./vcl/unx/generic/app/saldisp.cxx:1860
#28 0xed1abfb1 in DisplayYield () at ./vcl/unx/generic/app/saldisp.cxx:320
#29 0xed1aade3 in HandleNextEvent () at ./vcl/unx/generic/app/saldata.cxx:559
#30 SalXLib::Yield () at ./vcl/unx/generic/app/saldata.cxx:655
#31 0xed1b1297 in X11SalInstance::DoYield () at ./vcl/unx/generic/app/salinst.cxx:192
#32 0xf452bfbe in ImplYield () at ./vcl/source/app/svapp.cxx:389
#33 0xf452c9e5 in Application::Execute () at ./vcl/source/app/svapp.cxx:367
#34 0xf7dc6d4b in desktop::Desktop::Main () at ./desktop/source/app/app.cxx:1605
#35 0xf45370cf in ImplSVMain () at ./vcl/source/app/svmain.cxx:229
#36 0xf4537344 in SVMain () at ./vcl/source/app/svmain.cxx:261
#37 0xf7dee2b1 in soffice_main () at ./desktop/source/app/sofficemain.cxx:94
#38 0x5660f0ad in sal_main () at ./desktop/source/app/main.c:51
#39 main () at ./desktop/source/app/main.c:49
A debugging session is active.

	Inferior 1 [process 29878] will be killed.

Quit anyway? (y or n) [answered Y; input not from terminal]

Reply via email to