[Bug]: Celeste crashes syncing
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!
Installation Source
Snap
What version of Celeste are you using?
Hunter Wittenborn
Storage Provider
Google Drive
+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.
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.
Fix in PR https://github.com/hwittenborn/celeste/pull/240
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)?
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.
> 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.
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.