[Libreoffice-bugs] [Bug 124622] opening a file causes soffice.bin to use 100% CPU (one core), doing lstat calls all over the user's home dir, if profile exists

bugzilla-daemon at bugs.documentfoundation.org bugzilla-daemon at bugs.documentfoundation.org
Thu May 9 08:01:14 UTC 2019


https://bugs.documentfoundation.org/show_bug.cgi?id=124622

--- Comment #5 from till busch <buti at bux.at> ---
I'm seeing the same problem when I try to create a new document from a template
or when I open an existing document as a template (with command line -n
switch):

arch linux, LibreOffice 6.2.3.2 20(Build:2)

Reproducible: Always

I also tested with different java versions and with java disabled.

strace (strace -ff lowriter -n test1.odt) gives the most useful hints:

it starts off fine by entering .config/libreoffice and scanning for templates:
...
[pid 13297] lstat("/home", {st_mode=S_IFDIR|0755, st_size=130, ...}) = 0
[pid 13297] lstat("/home/till", {st_mode=S_IFDIR|0700, st_size=9428, ...}) = 0
[pid 13297] lstat("/home", {st_mode=S_IFDIR|0755, st_size=130, ...}) = 0
[pid 13297] lstat("/home/till", {st_mode=S_IFDIR|0700, st_size=9428, ...}) = 0
[pid 13297] lstat("/home/till/.config", {st_mode=S_IFDIR|0755, st_size=6374,
...}) = 0
[pid 13297] lstat("/home", {st_mode=S_IFDIR|0755, st_size=130, ...}) = 0
[pid 13297] lstat("/home/till", {st_mode=S_IFDIR|0700, st_size=9428, ...}) = 0
[pid 13297] lstat("/home/till/.config", {st_mode=S_IFDIR|0755, st_size=6374,
...}) = 0
[pid 13297] lstat("/home/till/.config/libreoffice", {st_mode=S_IFDIR|0775,
st_size=2, ...}) = 0
[pid 13297] lstat("/home", {st_mode=S_IFDIR|0755, st_size=130, ...}) = 0
[pid 13297] lstat("/home/till", {st_mode=S_IFDIR|0700, st_size=9428, ...}) = 0
[pid 13297] lstat("/home/till/.config", {st_mode=S_IFDIR|0755, st_size=6374,
...}) = 0
[pid 13297] lstat("/home/till/.config/libreoffice", {st_mode=S_IFDIR|0775,
st_size=2, ...}) = 0
[pid 13297] lstat("/home/till/.config/libreoffice/4", {st_mode=S_IFDIR|0700,
st_size=28, ...}) = 0
[pid 13297] lstat("/home", {st_mode=S_IFDIR|0755, st_size=130, ...}) = 0
[pid 13297] lstat("/home/till", {st_mode=S_IFDIR|0700, st_size=9428, ...}) = 0
[pid 13297] lstat("/home/till/.config", {st_mode=S_IFDIR|0755, st_size=6374,
...}) = 0
[pid 13297] lstat("/home/till/.config/libreoffice", {st_mode=S_IFDIR|0775,
st_size=2, ...}) = 0
[pid 13297] lstat("/home/till/.config/libreoffice/4", {st_mode=S_IFDIR|0700,
st_size=28, ...}) = 0
[pid 13297] lstat("/home/till/.config/libreoffice/4/user",
{st_mode=S_IFDIR|0755, st_size=290, ...}) = 0
[pid 13297] lstat("/home", {st_mode=S_IFDIR|0755, st_size=130, ...}) = 0
[pid 13297] lstat("/home/till", {st_mode=S_IFDIR|0700, st_size=9428, ...}) = 0
[pid 13297] lstat("/home/till/.config", {st_mode=S_IFDIR|0755, st_size=6374,
...}) = 0
[pid 13297] lstat("/home/till/.config/libreoffice", {st_mode=S_IFDIR|0775,
st_size=2, ...}) = 0
[pid 13297] lstat("/home/till/.config/libreoffice/4", {st_mode=S_IFDIR|0700,
st_size=28, ...}) = 0
[pid 13297] lstat("/home/till/.config/libreoffice/4/user",
{st_mode=S_IFDIR|0755, st_size=290, ...}) = 0
[pid 13297] lstat("/home/till/.config/libreoffice/4/user/template",
{st_mode=S_IFDIR|0755, st_size=400, ...}) = 0
[pid 13297] access("/home/till/.config/libreoffice/4/user/template", F_OK) = 0
[pid 13297] openat(AT_FDCWD, "/home/till/.config/libreoffice/4/user/template",
O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 3
[pid 13297] fstat(3, {st_mode=S_IFDIR|0755, st_size=400, ...}) = 0
[pid 13297] getdents64(3, /* 12 entries */, 32768) = 472
[pid 13297] lstat("/home/till/.config/libreoffice/4/user/template/Presentation
Backgrounds", {st_mode=S_IFDIR|0755, st_size=18, ...}) = 0
[pid 13297] openat(AT_FDCWD,
"/home/till/.config/libreoffice/4/user/template/Presentation Backgrounds",
O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 22
[pid 13297] fstat(22, {st_mode=S_IFDIR|0755, st_size=18, ...}) = 0
[pid 13297] getdents64(22, /* 3 entries */, 32768) = 80
[pid 13297] lstat("/home/till/.config/libreoffice/4/user/template/Presentation
Backgrounds/white.otp", {st_mode=S_IFREG|0644, st_size=9024, ...}) = 0
[pid 13297] getdents64(22, /* 0 entries */, 32768) = 0
[pid 13297] close(22)                   = 0
[pid 13297]
lstat("/home/till/.config/libreoffice/4/user/template/groupuinames.xml",
{st_mode=S_IFREG|0600, st_size=288, ...}) = 0
...
[pid 13297] getdents64(3, /* 0 entries */, 32768) = 0
[pid 13297] close(3)                    = 0
...

here comes trouble -- why does it enter other .config directories at all? it
does getdents64() on every directory and proceeds recursively:

[pid 13297] lstat("/home", {st_mode=S_IFDIR|0755, st_size=130, ...}) = 0
[pid 13297] lstat("/home", {st_mode=S_IFDIR|0755, st_size=130, ...}) = 0
[pid 13297] lstat("/home/till", {st_mode=S_IFDIR|0700, st_size=9428, ...}) = 0
[pid 13297] access("/home/till", F_OK)  = 0
[pid 13297] openat(AT_FDCWD, "/home/till",
O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 3
[pid 13297] fstat(3, {st_mode=S_IFDIR|0700, st_size=9428, ...}) = 0
[pid 13297] getdents64(3, /* 437 entries */, 32768) = 15120
[pid 13297] lstat("/home/till/.config", {st_mode=S_IFDIR|0755, st_size=6374,
...}) = 0
[pid 13297] openat(AT_FDCWD, "/home/till/.config",
O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 22
[pid 13297] fstat(22, {st_mode=S_IFDIR|0755, st_size=6374, ...}) = 0
[pid 13297] getdents64(22, /* 273 entries */, 32768) = 9640
[pid 13297] lstat("/home/till/.config/akonadi", {st_mode=S_IFDIR|0775,
st_size=2770, ...}) = 0
[pid 13297] openat(AT_FDCWD, "/home/till/.config/akonadi",
O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 23
[pid 13297] fstat(23, {st_mode=S_IFDIR|0775, st_size=2770, ...}) = 0
[pid 13297] getdents64(23, /* 34 entries */, 32768) = 2176


which leads to even more trouble -- libreoffice seems to get stuck in a loop of
cyclic symbolic links here ...

[pid 13297]
lstat("/home/till/.local/share/wineprefixes/vc2008express/dosdevices/c:/users/till/Meine
Dokumente/.local/share/wineprefixes/vc2008express/dosdevices/c:/users/till/Meine
Dokumente/.local/share/wineprefixes/vc2008express/dosdevices/c:/users/till/Meine
Dokumente/.local/share/wineprefixes/vc2008express/dosdevices/c:/users/till/Meine
Dokumente/.local/share/wineprefixes/vc2008express/dosdevices/c:/users/till/Meine
Dokumente/.local/share/wineprefixes/vc2008express/dosdevices/c:/users/till/Meine
Dokumente/.local/share/wineprefixes/vc2008express/dosdevices/c:/users/till/Meine
Dokumente/.local/share/wineprefixes/vc2008express/dosdevices/c:/users/till/Meine
Dokumente/.local/share/wineprefixes/vc2008express/dosdevices/c:/users/till/Meine
Dokumente/.local/share/wineprefixes/vc2008express/dosdevices/c:/users/till/Meine
Dokumente/.local/share/wineprefixes/vc2008express/dosdevices/c:/users/till/Meine
Dokumente/.local/share/wineprefixes/vc2008express/dosdevices/c:/users/till/Meine
Dokumente/.local/share/wineprefixes/vc2008express/dosdevices/c:/users/till/Meine
Dokumente/.local/share/wineprefixes/vc2008express/dosdevices/c:/users/till/Meine
Dokumente/.local/share/wineprefixes/vc2008express/dosdevices/c:/users/till/Meine
Dokumente/.local/share/wineprefixes/vc2008express/dosdevices/c:/users/till/Meine
Dokumente/.local/share/wineprefixes/vc2008express/dosdevices/c:/users/till/Meine
Dokumente/.local/share/wineprefixes/vc2008express/dosdevices/c:/users/till/Meine
Dokumente/.local/share/wineprefixes/vc2008express/dosdevices/c:/users/till/Meine
Dokumente/.local/share/wineprefixes/vc2008express/dosdevices/z:/home/till/.local/share/wineprefixes/vc2008express/dosdevices/z:/home/dev/OpenWrt-SDK-ar71xx-for-Linux-i686-gcc-4.3.3+cs_uClibc-0.9.30.1/staging_dir/target-mips_r2_uClibc-0.9.30.1/usr/share/ri/1.9/system/XMLEncoding_ja/cdesc-XMLEncoding_ja.ri",
0x7fffa62b6f80) = -1 ENOSYS (Function not implemented)

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/libreoffice-bugs/attachments/20190509/053181f7/attachment-0001.html>


More information about the Libreoffice-bugs mailing list