Bug 275218 - editors/libreoffice: very slow startup times in presence of iosevka font
Summary: editors/libreoffice: very slow startup times in presence of iosevka font
Status: New
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Some People
Assignee: FreeBSD Office Team
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-11-20 17:32 UTC by Dmitry Marakasov
Modified: 2023-11-20 17:49 UTC (History)
0 users

See Also:
bugzilla: maintainer-feedback? (office)


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Dmitry Marakasov freebsd_committer 2023-11-20 17:32:18 UTC
libreoffice takes around 40 seconds to start on my core i7 laptop. Judging by ktrace, what it does is reading iosevka fonts. This fragment:

```
 56210 soffice.bin CALL  openat(AT_FDCWD,0x898551f08,0<O_RDONLY>)
 56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka.ttc"
 56210 soffice.bin RET   openat 24/0x18
 56210 soffice.bin CALL  fstat(0x18,0x821158f60)
 56210 soffice.bin STRU  struct stat {dev=6602381364165455651, ino=853229, mode=0100644, nlink=1, uid=0, gid=0, rdev=18446744073709551615, atime=1700500430.680679000, mtime=1700500431.123096000, ctime=1700500463.811403000, birthtime=1700500431.123096000, size=261945172, blksize=131072, blocks=205593, flags=0x800 }
 56210 soffice.bin RET   fstat 0
 56210 soffice.bin CALL  mmap(0,0xf9cf754,0x1<PROT_READ>,0x1<MAP_SHARED>,0x18,0)
 56210 soffice.bin RET   mmap 38558236672/0x8fa400000
 56210 soffice.bin CALL  close(0x18)
 56210 soffice.bin RET   close 0
 56210 soffice.bin CALL  munmap(0x8fa400000,0xf9cf754)
 56210 soffice.bin RET   munmap 0
```

Repeats up to 26568 times for each iosevka .ttc file:

```
% kdump  | grep iosevka | uniq -c
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka.ttc"
 783  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-aile.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-curly.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-curly-slab.ttc"
 783  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-etoile.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-curly.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-curly-slab.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss01.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss02.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss03.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss04.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss05.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss06.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss07.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss08.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss09.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss10.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss11.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss12.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss13.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss14.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss15.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss16.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss17.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss18.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-slab.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss01.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss02.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss03.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss04.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss05.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss06.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss07.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss08.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss09.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss10.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss11.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss12.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss13.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss14.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss15.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss16.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss17.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss18.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-slab.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-curly.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-curly-slab.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss01.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss02.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss03.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss04.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss05.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss06.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss07.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss08.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss09.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss10.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss11.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss12.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss13.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss14.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss15.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss16.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss17.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-ss18.ttc"
8856  56210 soffice.bin NAMI  "/usr/local/share/fonts/Iosevka/iosevka-slab.ttc"
```

Workaround to fix the slow startup is thus to remove iosevka font.

I think it should be reported upstream, just leaving it here for searchability and for the workaround.
Comment 1 Dmitry Marakasov freebsd_committer 2023-11-20 17:49:23 UTC
I've filed upstream bug report: https://bugs.documentfoundation.org/show_bug.cgi?id=158287
I've also found Gentoo report of the similar problem: https://forums.gentoo.org/viewtopic-p-8807829.html
And here's full kdump output just for the case: https://people.freebsd.org/~amdmi3/libreoffice.ktrace.txt.xz