celeste icon indicating copy to clipboard operation
celeste copied to clipboard

[Bug]: Celeste crashes syncing

Open evazzoler opened this issue 1 year ago • 7 comments

Bug Description

While Celeste is checking and encounter a cetain Google Drive folder, it crashes. It is newly installed and never completed its first full sync process due to this crash. If I exclude that directory, it goes ahead until finds another directory it dislikes. Because don't exist a button for "pause sync" I have to exclude the directory before it crashes. Not easy!

image

Installation Source

Snap

What version of Celeste are you using?

Hunter Wittenborn

Storage Provider

Google Drive

evazzoler avatar Nov 25 '24 10:11 evazzoler

+1

In case it's useful, it started happening since I had a dialog about local and remote not matching. It's only been a recent thing - last week or so, with no version change. Version is latest at time of writing.

I tried:

  • removing and readding my Google Drive
  • reinstalling via snap instead of my package manager

It is non-deterministic for me - although it nearly always happens.

I've managed to reproduce a very similar issue once on a local devel branch debug build - it states it's hitting unreachable code (which might explain the non-determinism / slightly different error message from the snap build).

The interesting part of the backtrace is similar to the above (hence why I think it's the same):

thread 'main' panicked at src/launch.rs:2489:33:
internal error: entered unreachable code
stack backtrace:
   0: rust_begin_unwind
             at /rustc/a2545fd6fc66b4323f555223a860c451885d1d2b/library/std/src/panicking.rs:665:5
   1: core::panicking::panic_fmt
             at /rustc/a2545fd6fc66b4323f555223a860c451885d1d2b/library/core/src/panicking.rs:76:14
   2: core::panicking::panic
             at /rustc/a2545fd6fc66b4323f555223a860c451885d1d2b/library/core/src/panicking.rs:148:5
   3: celeste::launch::launch::sync_remote_directory
             at ./src/launch.rs:2489:33
   4: celeste::launch::launch
             at ./src/launch.rs:2559:17
   5: celeste::main::{{closure}}
             at ./src/main.rs:95:25

Thanks for making this! I hope this is helpful. Will post back if I find anything else useful / make a PR if I find a fix.

OMGtechy avatar Nov 29 '24 21:11 OMGtechy

It is panicing on a file that I deleted remotely whilst trying to sync that change. Here are the timestamps:

(gdb) p db_model.last_local_timestamp
$10 = 1732583291
(gdb) p db_model.last_remote_timestamp
$11 = 1732583291
(gdb) p l_timestamp
$12 = 1732583291
(gdb) p remote_timestamp
$13 = 1732583008

The file exists locally.

OMGtechy avatar Nov 29 '24 22:11 OMGtechy

Fix in PR https://github.com/hwittenborn/celeste/pull/240

OMGtechy avatar Nov 29 '24 22:11 OMGtechy

Fix in PR #240

For those that not compile from github, do you imagine how long will take to propagate the fix on snap (Ubuntu)?

evazzoler avatar Dec 09 '24 10:12 evazzoler

Fix in PR #240

For those that not compile from github, do you imagine how long will take to propagate the fix on snap (Ubuntu)?

Up to the repo owner.

OMGtechy avatar Dec 09 '24 14:12 OMGtechy

> flatpak list | gi celest
Celeste com.hunterwittenborn.Celeste    0.8.3   stable  flathub user

Same here:

thread 'main' panicked at src/launch.rs:1725:26:
called `Result::unwrap()` on an `Err` value: Os { code: 21, kind: IsADirectory, message: "Is a directory" }
stack backtrace:
thread 'main' panicked at library/core/src/panicking.rs:221:5:
panic in a function that cannot unwind
stack backtrace:
   0:     0x55df80bcb905 - <unknown>
   1:     0x55df80bfa5eb - <unknown>
   2:     0x55df80bc7ecf - <unknown>
   3:     0x55df80bcb6de - <unknown>
   4:     0x55df80bccc29 - <unknown>
   5:     0x55df80bcc9cc - <unknown>
   6:     0x55df80bcd201 - <unknown>
   7:     0x55df80bcd033 - <unknown>
   8:     0x55df80bcbdc9 - <unknown>
   9:     0x55df80bccd44 - <unknown>
  10:     0x55df80bf7565 - <unknown>
  11:     0x55df80bf75f2 - <unknown>
  12:     0x55df80bf7736 - <unknown>
  13:     0x55df7ecf7f04 - <unknown>
  14:     0x7efca71c191a - g_closure_invoke
  15:     0x7efca71d65c3 - <unknown>
  16:     0x7efca71d8071 - <unknown>
  17:     0x7efca71dde01 - g_signal_emit_valist
  18:     0x7efca71ddec3 - g_signal_emit
  19:     0x7efca62fe120 - <unknown>
  20:     0x7efca62fe2d7 - g_application_run
  21:     0x55df7ebc0ec8 - <unknown>
  22:     0x55df7ec680e7 - <unknown>
  23:     0x55df7ed9ba63 - <unknown>
  24:     0x55df7ec9bc79 - <unknown>
  25:     0x55df80bbf782 - <unknown>
  26:     0x55df7ec6b205 - <unknown>
  27:     0x7efca5deb188 - <unknown>
  28:     0x7efca5deb24b - __libc_start_main
  29:     0x55df7eb82025 - <unknown>
  30:                0x0 - <unknown>
thread caused non-unwinding panic. aborting.

josecastillolema avatar Dec 22 '24 21:12 josecastillolema

Still having the same Problem:

thread 'main' panicked at src/launch.rs:2489:33:
internal error: entered unreachable code
stack backtrace:
   0: rust_begin_unwind
   1: core::panicking::panic_fmt
   2: core::panicking::panic
   3: celeste::launch::launch::sync_remote_directory
   4: celeste::launch::launch
   5: <O as gio::auto::application::ApplicationExt>::connect_activate::activate_trampoline
   6: g_closure_invoke
   7: <unknown>
   8: <unknown>
   9: g_signal_emit_valist
  10: g_signal_emit
  11: <unknown>
  12: g_application_run
  13: <O as gio::application::ApplicationExtManual>::run_with_args
  14: celeste::main
thread 'main' panicked at library/core/src/panicking.rs:221:5:
panic in a function that cannot unwind
stack backtrace:
   0:     0x564f850ff905 - <std::sys::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hd7fe9da464dc613a
   1:     0x564f8512e5eb - core::fmt::write::h31992ea73d92ffa4
   2:     0x564f850fbecf - std::io::Write::write_fmt::h5015b998fbd1cf65
   3:     0x564f850ff6de - std::sys::backtrace::print::h5f3f79d7ee85f598
   4:     0x564f85100c29 - std::panicking::default_hook::{{closure}}::hf313047c6f9a0750
   5:     0x564f851009cc - std::panicking::default_hook::hd96acc715f65b6d7
   6:     0x564f85101201 - std::panicking::rust_panic_with_hook::hc3b55609717126a2
   7:     0x564f85101033 - std::panicking::begin_panic_handler::{{closure}}::h6a0db00056d37e77
   8:     0x564f850ffdc9 - std::sys::backtrace::__rust_end_short_backtrace::h8bf20a85e9b83f5c
   9:     0x564f85100d44 - rust_begin_unwind
  10:     0x564f8512b565 - core::panicking::panic_nounwind_fmt::hc22db378155c4432
  11:     0x564f8512b5f2 - core::panicking::panic_nounwind::he931df6ed8de2736
  12:     0x564f8512b736 - core::panicking::panic_cannot_unwind::h46449aa9b12c6d31
  13:     0x564f8322bf04 - <O as gio::auto::application::ApplicationExt>::connect_activate::activate_trampoline::hbe8669dd5c700595
  14:     0x7fa1d0d4183a - g_closure_invoke
  15:     0x7fa1d0d6042b - <unknown>
  16:     0x7fa1d0d6248f - <unknown>
  17:     0x7fa1d0d62709 - g_signal_emit_valist
  18:     0x7fa1d0d627c4 - g_signal_emit
  19:     0x7fa1cff14881 - <unknown>
  20:     0x7fa1cff14a35 - g_application_run
  21:     0x564f830f4ec8 - <O as gio::application::ApplicationExtManual>::run_with_args::hf3ae39b800c31d15
  22:     0x564f8319c0e7 - celeste::main::h478561235040638f
  23:     0x564f832cfa63 - std::sys::backtrace::__rust_begin_short_backtrace::h4e646722653f7fdc
  24:     0x564f831cfc79 - std::rt::lang_start::{{closure}}::hb1f9c1b6a30502c1
  25:     0x564f850f3782 - std::rt::lang_start_internal::h55c3af6c910a5833
  26:     0x564f8319f205 - main
  27:     0x7fa1cf827675 - <unknown>
  28:     0x7fa1cf827729 - __libc_start_main
  29:     0x564f830b6025 - _start
  30:                0x0 - <unknown>
thread caused non-unwinding panic. aborting.

JonasOech avatar Aug 15 '25 17:08 JonasOech