Adding fonts to Collabora Online causes segfault

I want to add some additional fonts to my private Collabora Online server by following this wiki article: Fonts — SDK https://sdk.collaboraonline.com/ documentation

Here is what I have tried so far:

  1. copied the additional TrueTypeFont into the /usr/local/share/fonts/truetype/msftfonts/ folder.
  2. run fc-fonts -v -f:
/usr/share/fonts: caching, new cache contents: 0 fonts, 5 dirs
/usr/share/fonts/cMap: caching, new cache contents: 0 fonts, 0 dirs
/usr/share/fonts/cmap: caching, new cache contents: 0 fonts, 5 dirs
/usr/share/fonts/cmap/adobe-cns1: caching, new cache contents: 0 fonts, 0 dirs
/usr/share/fonts/cmap/adobe-gb1: caching, new cache contents: 0 fonts, 0 dirs
/usr/share/fonts/cmap/adobe-japan1: caching, new cache contents: 0 fonts, 0 dirs
/usr/share/fonts/cmap/adobe-japan2: caching, new cache contents: 0 fonts, 0 dirs
/usr/share/fonts/cmap/adobe-korea1: caching, new cache contents: 0 fonts, 0 dirs
/usr/share/fonts/opentype: caching, new cache contents: 0 fonts, 1 dirs
/usr/share/fonts/opentype/urw-base35: caching, new cache contents: 35 fonts, 0 dirs
/usr/share/fonts/truetype: caching, new cache contents: 0 fonts, 3 dirs
/usr/share/fonts/truetype/dejavu: caching, new cache contents: 6 fonts, 0 dirs
/usr/share/fonts/truetype/droid: caching, new cache contents: 1 fonts, 0 dirs
/usr/share/fonts/truetype/noto: caching, new cache contents: 3 fonts, 0 dirs
/usr/share/fonts/type1: caching, new cache contents: 0 fonts, 2 dirs
/usr/share/fonts/type1/gsfonts: caching, new cache contents: 35 fonts, 0 dirs
/usr/share/fonts/type1/urw-base35: caching, new cache contents: 35 fonts, 0 dirs
/usr/local/share/fonts: caching, new cache contents: 0 fonts, 1 dirs
/usr/local/share/fonts/truetype: caching, new cache contents: 0 fonts, 1 dirs
/usr/local/share/fonts/truetype/msftcorefonts: caching, new cache contents: 1 fonts, 0 dirs
/root/.local/share/fonts: skipping, no such directory
/root/.fonts: skipping, no such directory
/usr/share/fonts/cMap: skipping, looped directory detected
/usr/share/fonts/cmap: skipping, looped directory detected
/usr/share/fonts/opentype: skipping, looped directory detected
/usr/share/fonts/truetype: skipping, looped directory detected
/usr/share/fonts/type1: skipping, looped directory detected
/usr/local/share/fonts/truetype: skipping, looped directory detected
/usr/share/fonts/cmap/adobe-cns1: skipping, looped directory detected
/usr/share/fonts/cmap/adobe-gb1: skipping, looped directory detected
/usr/share/fonts/cmap/adobe-japan1: skipping, looped directory detected
/usr/share/fonts/cmap/adobe-japan2: skipping, looped directory detected
/usr/share/fonts/cmap/adobe-korea1: skipping, looped directory detected
/usr/share/fonts/opentype/urw-base35: skipping, looped directory detected
/usr/share/fonts/truetype/dejavu: skipping, looped directory detected
/usr/share/fonts/truetype/droid: skipping, looped directory detected
/usr/share/fonts/truetype/noto: skipping, looped directory detected
/usr/share/fonts/type1/gsfonts: skipping, looped directory detected
/usr/share/fonts/type1/urw-base35: skipping, looped directory detected
/usr/local/share/fonts/truetype/msftcorefonts: skipping, looped directory detected
/var/cache/fontconfig: cleaning cache directory
/root/.cache/fontconfig: not cleaning non-existent cache directory
/root/.fontconfig: not cleaning non-existent cache directory
fc-cache: succeeded
  1. run coolconfig update-system-template:
Running the following command:
coolwsd-systemplate-setup /opt/cool/systemplate /opt/collaboraoffice >/dev/null 2>&1
  1. run systemctl restart coolwsd.service

  2. the font shows up at the fonts selection menu:
    image

  3. but when I try to apply the font to the selected text (i.e. press enter, or click on it) coolwsd crashes:

Dec 08 00:42:22 srvtest coolwsd[37086]: wsd-37086-37329 2022-12-08 00:42:22.771054 +0100 [ docbroker_004 ] ERR  No socket associated with WebSocketHandler 0x7f586c006e90 to send Close Frame to.| net/WebSocketHandler.hpp:183
Dec 08 00:42:22 srvtest coolwsd[37169]: Forced Exit with code: 70
Dec 08 00:42:22 srvtest coolwsd[37169]: kit-37169-37096 2022-12-08 00:42:22.771972 +0100 [ kitbroker_004 ] FTL  Forced Exit with code: 70| common/Util.cpp:1110
Dec 08 00:42:22 srvtest coolwsd[37086]: wsd-37086-37095 2022-12-08 00:42:22.772102 +0100 [ prisoner_poll ] WRN  Destroying DocumentBroker [https://172.23.144.3:443/index.php/apps/richdocuments/wopi/files/142_oc6tg8h88ea8] while having unremoved sessions.| wsd/DocumentBroker.cpp:605
Dec 08 00:42:22 srvtest coolwsd[37086]: wsd-37086-37095 2022-12-08 00:42:22.772601 +0100 [ prisoner_poll ] WRN  Prisoner connection disconnected but without valid socket.| wsd/COOLWSD.cpp:3275
Dec 08 00:42:22 srvtest coolwsd[37086]: wsd-37086-37095 2022-12-08 00:42:22.772700 +0100 [ prisoner_poll ] WRN  An unassociated Kit disconnected.| wsd/COOLWSD.cpp:3290
Dec 08 00:42:22 srvtest coolwsd[37086]: wsd-37086-37095 2022-12-08 00:42:22.772764 +0100 [ prisoner_poll ] WRN  Prisoner connection disconnected but without valid socket.| wsd/COOLWSD.cpp:3275
Dec 08 00:42:22 srvtest coolwsd[37086]: wsd-37086-37095 2022-12-08 00:42:22.772824 +0100 [ prisoner_poll ] WRN  An unassociated Kit disconnected.| wsd/COOLWSD.cpp:3290
Dec 08 00:42:33 srvtest coolwsd[37330]: kit-37330-37096 2022-12-08 00:42:33.887446 +0100 [ kitbroker_005 ] SIG   Fatal signal received: SIGSEGV code: 1 for address: 0x0
Dec 08 00:42:33 srvtest coolwsd[37330]: Recent activity:
Dec 08 00:42:33 srvtest coolwsd[37330]:         load view: 008 doc: file:///tmp/user/docs/zYwy1u7I1PKKsHGT/Welcome%20to%20Nextcloud%20Hub.docx
Dec 08 00:42:33 srvtest coolwsd[37330]:         unoCommand(008) : ToolbarMode?Mode:string=notebookbar_online.ui - Wed, 07 Dec 2022 23:42:25
Dec 08 00:42:33 srvtest coolwsd[37330]:         unoCommand(008) : SidebarShow - Wed, 07 Dec 2022 23:42:26
Dec 08 00:42:33 srvtest coolwsd[37330]:         getTextSelection
Dec 08 00:42:33 srvtest coolwsd[37330]:         unoCommand(008) : CharFontName - Wed, 07 Dec 2022 23:42:33
Dec 08 00:42:33 srvtest coolwsd[37330]:         unoCommand(008) : CharFontName - Wed, 07 Dec 2022 23:42:33
Dec 08 00:42:33 srvtest coolwsd[37330]:         unoCommand(008) : CharFontName - Wed, 07 Dec 2022 23:42:33
Dec 08 00:42:33 srvtest coolwsd[37330]: Backtrace 37330 - kit startup of 22.05.8.4 2d5b312:
Dec 08 00:42:33 srvtest coolwsd[37330]: /usr/bin/coolforkit(_ZN7SigUtil13dumpBacktraceEv+0x85)[0x556a09ecb475]
Dec 08 00:42:33 srvtest coolwsd[37330]: /usr/bin/coolforkit(+0x23c6fd)[0x556a09ecc6fd]
Dec 08 00:42:33 srvtest coolwsd[37330]: /lib/x86_64-linux-gnu/libpthread.so.0(+0x13140)[0x7fbf2c8bb140]
Dec 08 00:42:33 srvtest coolwsd[37330]: /opt/collaboraoffice/program/../program/libswlo.so(+0x8f5f61)[0x7fbf21788f61]
Dec 08 00:42:33 srvtest coolwsd[37330]: /opt/collaboraoffice/program/../program/libswlo.so(+0x915824)[0x7fbf217a8824]
Dec 08 00:42:33 srvtest coolwsd[37330]: /opt/collaboraoffice/program/../program/libswlo.so(+0x8645dc)[0x7fbf216f75dc]
Dec 08 00:42:33 srvtest coolwsd[37330]: /opt/collaboraoffice/program/../program/libswlo.so(+0x8a00c2)[0x7fbf217330c2]
Dec 08 00:42:33 srvtest coolwsd[37330]: /opt/collaboraoffice/program/../program/libswlo.so(+0x87f903)[0x7fbf21712903]
Dec 08 00:42:33 srvtest coolwsd[37330]: /opt/collaboraoffice/program/../program/libswlo.so(_ZNK11SwTextFrame12PaintSwFrameER12OutputDeviceRK6SwRectPK11SwPrintData+0x516)[0x7fbf216ee056]
Dec 08 00:42:33 srvtest coolwsd[37330]: /opt/collaboraoffice/program/../program/libswlo.so(_ZNK13SwLayoutFrame12PaintSwFrameER12OutputDeviceRK6SwRectPK11SwPrintData+0x269)[0x7fbf216545d9]
Dec 08 00:42:33 srvtest coolwsd[37330]: /opt/collaboraoffice/program/../program/libswlo.so(_ZNK13SwLayoutFrame12PaintSwFrameER12OutputDeviceRK6SwRectPK11SwPrintData+0x269)[0x7fbf216545d9]
Dec 08 00:42:33 srvtest coolwsd[37330]: /opt/collaboraoffice/program/../program/libswlo.so(_ZNK11SwRootFrame12PaintSwFrameER12OutputDeviceRK6SwRectPK11SwPrintData+0x1072)[0x7fbf21657412]
Dec 08 00:42:33 srvtest coolwsd[37330]: /opt/collaboraoffice/program/../program/libswlo.so(_ZN11SwViewShell5PaintER12OutputDeviceRKN5tools9RectangleE+0x7ee)[0x7fbf219db93e]
Dec 08 00:42:33 srvtest coolwsd[37330]: /opt/collaboraoffice/program/../program/libswlo.so(_ZN13SwCursorShell5PaintER12OutputDeviceRKN5tools9RectangleE+0x116)[0x7fbf2133ee56]
Dec 08 00:42:33 srvtest coolwsd[37330]: /opt/collaboraoffice/program/../program/libswlo.so(_ZN11SwViewShell9PaintTileER13VirtualDeviceiiiill+0x271)[0x7fbf219d5c31]
Dec 08 00:42:33 srvtest coolwsd[37330]: /opt/collaboraoffice/program/../program/libswlo.so(_ZN15SwXTextDocument9paintTileER13VirtualDeviceiiiill+0x45)[0x7fbf21d52fd5]
Dec 08 00:42:33 srvtest coolwsd[37330]: /opt/collaboraoffice/program/libmergedlo.so(+0x2493dd9)[0x7fbf2965cdd9]
Dec 08 00:42:33 srvtest coolwsd[37330]: /opt/collaboraoffice/program/libmergedlo.so(+0x2494753)[0x7fbf2965d753]
Dec 08 00:42:33 srvtest coolwsd[37330]: /usr/bin/coolforkit(_ZN11RenderTiles8doRenderESt10shared_ptrIN3lok8DocumentEER14DeltaGeneratorR12TileCombinedR10ThreadPoolbRKSt8functionIFvPhiimmii22LibreOfficeKitTileModeEERKSA_IFvPKcmEEji+0x300)[0x556a09e637a0]
Dec 08 00:42:33 srvtest coolwsd[37330]: /usr/bin/coolforkit(_ZN8Document11renderTilesER12TileCombinedb+0x198)[0x556a09e878c8]
Dec 08 00:42:33 srvtest coolwsd[37330]: /usr/bin/coolforkit(_ZN8Document10drainQueueEv+0x481)[0x556a09e8e791]
Dec 08 00:42:33 srvtest coolwsd[37330]: /usr/bin/coolforkit(_ZN13KitSocketPoll7kitPollEi+0x1d5)[0x556a09e91075]
Dec 08 00:42:33 srvtest coolwsd[37330]: /opt/collaboraoffice/program/libmergedlo.so(_ZN14SvpSalInstance7DoYieldEbb+0x116)[0x7fbf2a95e1f6]
Dec 08 00:42:33 srvtest coolwsd[37330]: /opt/collaboraoffice/program/libmergedlo.so(+0x360e2b3)[0x7fbf2a7d72b3]
Dec 08 00:42:33 srvtest coolwsd[37330]: /opt/collaboraoffice/program/libmergedlo.so(_ZN11Application7ExecuteEv+0x45)[0x7fbf2a7d7bc5]
Dec 08 00:42:33 srvtest coolwsd[37330]: /opt/collaboraoffice/program/libmergedlo.so(+0x2448498)[0x7fbf29611498]
Dec 08 00:42:33 srvtest coolwsd[37330]: /opt/collaboraoffice/program/libmergedlo.so(_Z10ImplSVMainv+0x51)[0x7fbf2a7e2821]
Dec 08 00:42:33 srvtest coolwsd[37330]: /opt/collaboraoffice/program/libmergedlo.so(soffice_main+0x9a)[0x7fbf2963420a]
Dec 08 00:42:33 srvtest coolwsd[37330]: /opt/collaboraoffice/program/libmergedlo.so(+0x247f542)[0x7fbf29648542]
Dec 08 00:42:33 srvtest coolwsd[37330]: /usr/bin/coolforkit(_Z10lokit_mainRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_S6_S6_bbbbm+0x24a1)[0x556a09e6c171]
Dec 08 00:42:33 srvtest coolwsd[37330]: /usr/bin/coolforkit(+0x1be413)[0x556a09e4e413]
Dec 08 00:42:33 srvtest coolwsd[37330]: /usr/bin/coolforkit(_Z18forkLibreOfficeKitRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_S6_i+0x1806)[0x556a09e504e6]
Dec 08 00:42:33 srvtest coolwsd[37330]: /usr/bin/coolforkit(main+0x22fa)[0x556a09e14f1a]
Dec 08 00:42:33 srvtest coolwsd[37330]: /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xea)[0x7fbf2c6f6d0a]
Dec 08 00:42:33 srvtest coolwsd[37330]: /usr/bin/coolforkit(_start+0x2a)[0x556a09e1b56a]
Dec 08 00:42:33 srvtest coolwsd[37086]: wsd-37086-37397 2022-12-08 00:42:33.924865 +0100 [ docbroker_005 ] WRN  DocBroker [https://172.23.144.3:443/index.php/apps/richdocuments/wopi/files/9_oc6tg8h88ea8] got disconnected from its Kit (37330). Closing.| wsd/COOLWSD.cpp:3282
Dec 08 00:42:33 srvtest coolwsd[37096]: frk-37096-37096 2022-12-08 00:42:33.932596 +0100 [ forkit ] WRN  Successfully sent 'segfaultcount' message segfaultcount 1
Dec 08 00:42:33 srvtest coolwsd[37096]: | kit/ForKit.cpp:349
Dec 08 00:42:34 srvtest coolwsd[37086]: wsd-37086-37397 2022-12-08 00:42:34.009714 +0100 [ docbroker_005 ] ERR  ToClient-008: No DocBroker found, or DocBroker marked to be destroyed. Terminating session ToClient-008| wsd/ClientSession.cpp:333
Dec 08 00:42:34 srvtest coolwsd[37086]: wsd-37086-37397 2022-12-08 00:42:34.877271 +0100 [ docbroker_005 ] ERR  ToClient-008: No DocBroker found, or DocBroker marked to be destroyed. Terminating session ToClient-008| wsd/ClientSession.cpp:333
Dec 08 00:42:35 srvtest coolwsd[37086]: wsd-37086-37397 2022-12-08 00:42:35.163876 +0100 [ docbroker_005 ] ERR  ToClient-008: No DocBroker found, or DocBroker marked to be destroyed. Terminating session ToClient-008| wsd/ClientSession.cpp:333
Dec 08 00:42:35 srvtest coolwsd[37086]: wsd-37086-37095 2022-12-08 00:42:35.927906 +0100 [ prisoner_poll ] WRN  Prisoner connection disconnected but without valid socket.| wsd/COOLWSD.cpp:3275
Dec 08 00:42:35 srvtest coolwsd[37086]: wsd-37086-37095 2022-12-08 00:42:35.928220 +0100 [ prisoner_poll ] WRN  An unassociated Kit disconnected.| wsd/COOLWSD.cpp:3290

I noticed that the font was not present inside the /opt/cool/systemplate/usr/share/fonts/truetype/ folder. However, copying the font to this location manually does not change anything. coolwsd keeps crashing reproducible.

Is this a bug? Did I do something wrong?

Collabora Online Version: 22.05.8.4 (git hash: 2d5b312)

Welcome to the forum @dirdi and thanks so much for in-depth report! Maybe @tml1024 could have an answer (?)

What you are doing is not related to the work I did for adding fonts dynamically to a running COOL server. You are adding fonts normally to the whole Linux system. I would investigate what that mysterious “/usr/local/share/fonts/truetype/msftcorefonts: skipping, looped directory detected” thing means.

@pedro.silva thank you for the warm welcome :blush:

@tml1024 the log message /usr/local/share/fonts/truetype/msftcorefonts: skipping, looped directory detected seems to be expected behavior, as far as I can tell. There are similar message for noto, droid etc. and a previous log message that reads: /usr/local/share/fonts/truetype/msftcorefonts: caching, new cache contents: 1 fonts, 0 dirs

Just found this related bug report over at GitHub.

But for me it does not work, even if I put the additional fonts inside the /usr/share/fonts directory.

Was smb. able to add additional fonts to Collabora and would be willing to provide step-by-step instructions to me?