lapce: Crashes in some environments: no default font found

Lapce Version

0.3.0

System information

  • FreeBSD 15-CURRENT amd64
  • Rust 1.7.3
  • lapce compilation made without rust optimization

Describe the bug

Crashes

Additional information

env RUST_BACKTRACE=full lapce -w
thread 'main' panicked at /wrkdirs/usr/ports/editors/lapce/work/cosmic-text-5bfa288f19970a0b482ad75d5f460ad2c4e08900/src/buffer_line.rs:192:41:
no default font found
stack backtrace:
   0:     0x26a6681c863b - <unknown>
   1:     0x26a6681fff1c - <unknown>
   2:     0x26a6681bad0e - <unknown>
   3:     0x26a6681c8414 - <unknown>
   4:     0x26a6681afbe3 - <unknown>
   5:     0x26a6681af84f - <unknown>
   6:     0x26a6681b0e47 - <unknown>
   7:     0x26a6681c93b7 - <unknown>
   8:     0x26a6681c8846 - <unknown>
   9:     0x26a6681b0a72 - <unknown>
  10:     0x26a6682061e3 - <unknown>
  11:     0x26a6682124a3 - <unknown>
  12:     0x26a667f326ab - <unknown>
  13:     0x26a667f32758 - <unknown>
  14:     0x26a667f47667 - <unknown>
  15:     0x26a667f47e59 - <unknown>
  16:     0x26a667f473da - <unknown>
  17:     0x26a66660d0ec - <unknown>
  18:     0x26a665ffffa5 - <unknown>
  19:     0x26a66819bccb - <unknown>
  20:     0x26a66819f6f9 - <unknown>
  21:     0x26a665f247aa - <unknown>
  22:     0x26a66639cfee - <unknown>
  23:     0x26a665bd3f03 - <unknown>
  24:     0x26a665ca02d8 - <unknown>
  25:     0x26a665b92ad2 - <unknown>
  26:     0x26a665b510f9 - <unknown>
  27:     0x26a66775109f - <unknown>
  28:     0x26a6677db541 - <unknown>
  29:     0x26a667760e2e - <unknown>
  30:     0x26a665bb8f18 - <unknown>
  31:     0x26a665b2b7b3 - <unknown>
  32:     0x26a665b2b7c9 - <unknown>
  33:     0x26a6681afd57 - <unknown>
  34:     0x26a6681bf5bb - <unknown>
  35:     0x26a665b2b825 - <unknown>
  36:     0x26ae8da5be5a - __libc_start1
                               at /usr/src/lib/libc/csu/libc_start1.c:157:7
  37:     0x26a665b2b72d - <unknown>

FreeBSD issue: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=274852

Any hints?

About this issue

  • Original URL
  • State: open
  • Created 8 months ago
  • Comments: 31 (2 by maintainers)

Most upvoted comments

@panekj

I think we can close this PR.

Run is fixed by using “unix.rs” and not “other.rs” (since freebsd isn’t listed) in cosmic-text:

--- ../cosmic-text-f7a20704d6ebbe8fb82d0bb579c37c53e7ae9747/src/font/fallback/mod.rs.orig       2023-12-31 09:09:22.570192000 +0000
+++ ../cosmic-text-f7a20704d6ebbe8fb82d0bb579c37c53e7ae9747/src/font/fallback/mod.rs    2023-12-31 09:09:48.358365000 +0000
@@ -11,7 +11,7 @@
 use self::platform::*;

 #[cfg(not(any(target_os = "linux", target_os = "macos", target_os = "windows",)))]
-#[path = "other.rs"]
+#[path = "unix.rs"]
 mod platform;

 #[cfg(target_os = "macos")]

So, this is a cosmic-text issue to be discussed with upstream about adding “freebsd” support to it.

Any sugestions to open an PR?

@nunotexbsd I just tried creating this symbolic link, and lapce still failed with no default font found :

sudo mkdir -p /usr/local/etc/fonts
ln -s /usr/share/defaults/fonts/fonts.conf /usr/local/etc/fonts/fonts.conf
lapce

Then I tried creating this symbolic link instead (after deleting the above non-working one):

sudo mkdir /etc/fonts
sudo ln -s /usr/share/defaults/fonts/fonts.conf /etc/fonts/fonts.conf
lapce

And that one worked! (At least with the nightly build of lapce.)

Here is a better stacktrace

Thread 1 hit Breakpoint 1, cosmic_text::buffer_line::TextLayoutLine::shape (self=0x80d3ef000) at src/buffer_line.rs:188
188             if self.shape_opt.is_none() {
(gdb) n
189                 let attrs = self.attrs_list.defaults();
(gdb) n
190                 let family = attrs.family;
(gdb) n
191                 let mut font_iter = FontFallbackIter::new(attrs, family, vec![Script::Latin]);
(gdb)
192                 let font = font_iter.next().expect("no default font found");
(gdb)
[LWP 194845 of process 77282 exited]
[LWP 194849 of process 77282 exited]
[New LWP 194852 of process 77282]
[New LWP 194853 of process 77282]
[New LWP 194855 of process 77282]
[New LWP 194854 of process 77282]
[New LWP 194856 of process 77282]
[LWP 194856 of process 77282 exited]
[LWP 194844 of process 77282 exited]
2023-11-03T09:47:56.875817Z ERROR lapce_app::app: failed to fetch grammars: error sending request for url (https://api.github.com/repos/lapce/tree-sitter-grammars/releases/latest): operation timed out
[LWP 194843 of process 77282 exited]
192                 let font = font_iter.next().expect("no default font found");
(gdb) n
thread 'main' panicked at /usr/ports/editors/lapce/work/cosmic-text-5bfa288f19970a0b482ad75d5f460ad2c4e08900/src/buffer_line.rs:192:41:
no default font found
stack backtrace:
   0: rust_begin_unwind
   1: core::panicking::panic_fmt
   2: core::option::expect_failed
   3: core::option::Option<T>::expect
             at /wrkdirs/usr/ports/lang/rust/work/rustc-1.73.0-src/library/core/src/option.rs:898:21
   4: cosmic_text::buffer_line::TextLayoutLine::shape
             at /usr/ports/editors/lapce/work/cosmic-text-5bfa288f19970a0b482ad75d5f460ad2c4e08900/src/buffer_line.rs:192:24
   5: cosmic_text::buffer_line::TextLayoutLine::layout
             at /usr/ports/editors/lapce/work/cosmic-text-5bfa288f19970a0b482ad75d5f460ad2c4e08900/src/buffer_line.rs:222:25
   6: cosmic_text::buffer::TextLayout::shape_until
             at /usr/ports/editors/lapce/work/cosmic-text-5bfa288f19970a0b482ad75d5f460ad2c4e08900/src/buffer.rs:395:26
   7: cosmic_text::buffer::TextLayout::shape_until_scroll
             at /usr/ports/editors/lapce/work/cosmic-text-5bfa288f19970a0b482ad75d5f460ad2c4e08900/src/buffer.rs:454:28
   8: cosmic_text::buffer::TextLayout::set_text
             at /usr/ports/editors/lapce/work/cosmic-text-5bfa288f19970a0b482ad75d5f460ad2c4e08900/src/buffer.rs:585:9
   9: cosmic_text::buffer::TextLayout::new
             at /usr/ports/editors/lapce/work/cosmic-text-5bfa288f19970a0b482ad75d5f460ad2c4e08900/src/buffer.rs:359:9
  10: lapce_app::window_tab::WindowTabData::new::{{closure}}
             at /usr/ports/editors/lapce/work/lapce-0.3.0/lapce-app/src/window_tab.rs:321:35
  11: floem_reactive::memo::create_memo::{{closure}}::{{closure}}
             at /usr/ports/editors/lapce/work/floem-4fbe6f4489c3dcca232df2e2787b6ab7ac8f83c9/reactive/src/memo.rs:85:29
  12: floem_reactive::signal::signal_with_untracked
             at /usr/ports/editors/lapce/work/floem-4fbe6f4489c3dcca232df2e2787b6ab7ac8f83c9/reactive/src/signal.rs:386:5
  13: floem_reactive::signal::ReadSignal<T>::with_untracked
             at /usr/ports/editors/lapce/work/floem-4fbe6f4489c3dcca232df2e2787b6ab7ac8f83c9/reactive/src/signal.rs:242:9
  14: floem_reactive::memo::create_memo::{{closure}}
             at /usr/ports/editors/lapce/work/floem-4fbe6f4489c3dcca232df2e2787b6ab7ac8f83c9/reactive/src/memo.rs:84:41
  15: <floem_reactive::effect::Effect<T,F> as floem_reactive::effect::EffectTrait>::run
             at /usr/ports/editors/lapce/work/floem-4fbe6f4489c3dcca232df2e2787b6ab7ac8f83c9/reactive/src/effect.rs:128:25
  16: floem_reactive::effect::run_effect::{{closure}}
             at /usr/ports/editors/lapce/work/floem-4fbe6f4489c3dcca232df2e2787b6ab7ac8f83c9/reactive/src/effect.rs:85:9
  17: floem_reactive::scope::with_scope
             at /usr/ports/editors/lapce/work/floem-4fbe6f4489c3dcca232df2e2787b6ab7ac8f83c9/reactive/src/scope.rs:129:18
  18: floem_reactive::effect::run_effect
             at /usr/ports/editors/lapce/work/floem-4fbe6f4489c3dcca232df2e2787b6ab7ac8f83c9/reactive/src/effect.rs:83:5
  19: floem_reactive::effect::create_effect
             at /usr/ports/editors/lapce/work/floem-4fbe6f4489c3dcca232df2e2787b6ab7ac8f83c9/reactive/src/effect.rs:59:5
  20: floem_reactive::memo::create_memo
             at /usr/ports/editors/lapce/work/floem-4fbe6f4489c3dcca232df2e2787b6ab7ac8f83c9/reactive/src/memo.rs:82:5
  21: floem_reactive::scope::Scope::create_memo::{{closure}}
             at /usr/ports/editors/lapce/work/floem-4fbe6f4489c3dcca232df2e2787b6ab7ac8f83c9/reactive/src/scope.rs:77:29
  22: floem_reactive::scope::with_scope
             at /usr/ports/editors/lapce/work/floem-4fbe6f4489c3dcca232df2e2787b6ab7ac8f83c9/reactive/src/scope.rs:129:18
  23: floem_reactive::scope::Scope::create_memo
             at /usr/ports/editors/lapce/work/floem-4fbe6f4489c3dcca232df2e2787b6ab7ac8f83c9/reactive/src/scope.rs:77:9
  24: lapce_app::window_tab::WindowTabData::new
             at /usr/ports/editors/lapce/work/lapce-0.3.0/lapce-app/src/window_tab.rs:319:30
  25: lapce_app::window::WindowData::new
             at /usr/ports/editors/lapce/work/lapce-0.3.0/lapce-app/src/window.rs:87:38
  26: lapce_app::app::AppData::app_view
             at /usr/ports/editors/lapce/work/lapce-0.3.0/lapce-app/src/app.rs:405:27
  27: lapce_app::app::AppData::create_windows::{{closure}}
             at /usr/ports/editors/lapce/work/lapce-0.3.0/lapce-app/src/app.rs:364:34
  28: floem::app::Application::window::{{closure}}
             at /usr/ports/editors/lapce/work/floem-4fbe6f4489c3dcca232df2e2787b6ab7ac8f83c9/src/app.rs:106:43
  29: core::ops::function::FnOnce::call_once{{vtable.shim}}
             at /wrkdirs/usr/ports/lang/rust/work/rustc-1.73.0-src/library/core/src/ops/function.rs:250:5
  30: <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once
             at /wrkdirs/usr/ports/lang/rust/work/rustc-1.73.0-src/library/alloc/src/boxed.rs:2007:9
  31: floem::window_handle::WindowHandle::new::{{closure}}
             at /usr/ports/editors/lapce/work/floem-4fbe6f4489c3dcca232df2e2787b6ab7ac8f83c9/src/window_handle.rs:83:46
  32: floem_reactive::scope::with_scope
             at /usr/ports/editors/lapce/work/floem-4fbe6f4489c3dcca232df2e2787b6ab7ac8f83c9/reactive/src/scope.rs:129:18
  33: floem::window_handle::WindowHandle::new
             at /usr/ports/editors/lapce/work/floem-4fbe6f4489c3dcca232df2e2787b6ab7ac8f83c9/src/window_handle.rs:83:20
  34: floem::app_handle::ApplicationHandle::new_window
             at /usr/ports/editors/lapce/work/floem-4fbe6f4489c3dcca232df2e2787b6ab7ac8f83c9/src/app_handle.rs:204:29
  35: floem::app::Application::window
             at /usr/ports/editors/lapce/work/floem-4fbe6f4489c3dcca232df2e2787b6ab7ac8f83c9/src/app.rs:104:9
  36: lapce_app::app::AppData::create_windows
             at /usr/ports/editors/lapce/work/lapce-0.3.0/lapce-app/src/app.rs:363:19
  37: lapce_app::app::launch
             at /usr/ports/editors/lapce/work/lapce-0.3.0/lapce-app/src/app.rs:3454:15
  38: lapce::main
             at /usr/ports/editors/lapce/work/lapce-0.3.0/lapce-app/src/bin/lapce.rs:4:5
  39: core::ops::function::FnOnce::call_once
             at /wrkdirs/usr/ports/lang/rust/work/rustc-1.73.0-src/library/core/src/ops/function.rs:250:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.