You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
kernel: timeshift[19966]: segfault at 28 ip 000073bbfc0f23fb sp 000073bbf65ff6f0 error 4 in libgobject-2.0.so.0.8000.0[73bbfc0dd000+37000] likely on CPU 8 (core 4, socket 0)
To Reproduce
Unknown. I suspect that Timeshift was running an automated job.
Expected behavior
No segfault reported in the log.
Other information
I have set Timeshift to backup /home, and to put all its backups on a separate partition. (I did this after a crash wiped out stuff beyond recovery.) But I have had segfaults on Timeshift before I adopted that strategy.
On my other Mint PC, and on a now dead PC that ran Mint, System Report never supplied crash dumps. Now, on a new PC, System Report does provide crash dumps - sometimes; there is no dump for this timeshift crash.
I have not seen any adverse behaviour from Timeshift, but possibly a scheduled action was aborted or did not write data properly. Anyhow, segfaults are bad (which is why I have a script to report them to me).
System:
Linux Distribution Name and Version: Mint 22
Desktop: Cinnamon
Application version: 24.06.03
Framwork 13 laptop (but, as I say above, I have had segfaults on a variety of hardware)
Kernel: 6.8
EDIT: This too appeared in the log:
kernel: snapshot-taker[483769]: segfault at 30 ip 000079dc3f28c61a sp 000079dc333ff780 error 4 in libgobject-2.0.so.0.8000.0[79dc3f277000+37000] likely on CPU 1 (core 0, socket 0)
Please compare #278, which concerns segfaults on restore (obviously: very bad) and contains thorough debugging and an identification of what seems to be the - or at least a - culprit.
Can I please add also to this or some other thread?:
I selected 56 snapshots at once, only after 20 I think, I got a segfault, do not really understand it so deep, so this something like a bug report. Thank you in advance for your kind elaboration, if that is an error on Timeshift-GTK side of course. Cheers
Just now I had another segfault. System Reports found no stack trace. Here is the system log:
2025-02-24T00:00:42.111060+00:00 F13 kernel: timeshift[940490]: segfault at 30 ip 000072434ad6261a sp 00007243451ff780 error 4 in libgobject-2.0.so.0.8000.0[72434ad4d000+37000] likely on CPU 3 (core 1, socket 0)
If you have systemd-coredump installed, it may have saved the crash dump.
You can list all known crashes with sudo coredumpctl list and get more details with sudo coredumpctl info <pid> or sudo coredumpctl debug <pid>.
Feel free to upload the core file from /var/lib/systemd/coredump or a log from a gdb session with thread apply all bt full
systemd-coredump wasn't installed on my Ubuntu Server 24, but I have now installed it.
It is installed on my desktop & HTPC (both Linux Mint 21.3 with timeshift 24.01.1) and my workshop PC (Linux Mint 22.2 with timeshift 25.07.7), but they don't have any recent timeshift crashes.
Just hopping in here to note that I discovered this was happening every time Timeshift ran and in fact a complete backup (which I have set to run daily) hasn't completed in two weeks, so this segfault can happen in a way that's not even immediately obvious.
Same crash on Ubuntu 24.04, Timeshift 24.01.1 (24.01.1-1build2), GLib 2.80, hourly cron timeshift --check --scripted on a 40-thread machine. About 4 crashes in 4 days, always ~37 s after the backup disk is mounted, i.e. during the snapshot's rsync. Kernel: segfault at 30 … in libgobject-2.0.so.0.8000.0[2461a,…], i.e. call *0x30(%rax) (finalize) in g_object_unref on an already-freed object.
Backtrace from the apport core (no symbols): crashed thread = g_object_unref ← timeshift+0x2b210 ← timeshift+0x2ba85 ← GLib thread wrapper. Disassembly of the stripped binary (my reading, unverified against source): +0x2b160 is AsyncTask.finish() (it logs "AsyncTask: finish(): enter"). It checks a flag at priv+0x3c, sets it with a plain store, then does if (stream != NULL) { g_object_unref(stream); stream = NULL; } on an output stream, with no lock. It's called from the end of the stdout/stderr reader-thread function when both "open" flags are 0. A second thread had a frame inside the same function (+0x2b42f, in g_file_query_exists) when the core was taken. Likely both reader threads finish together when rsync closes its pipes, both call finish(), and the stream is unref'd twice.
make the finish_called test-and-set atomic (mutex, or an atomic compare-and-swap), and don't NULL the stream pointer after unref outside that guard.
What happens
It crashed twice on the same day (12:21 and 16:13). The runs in between and after completed normally. Both times the rsync had finished with exit_code: 0, and the process segfaulted in the same second:
[12:21:03] AsyncTask: finish(): enter
[12:21:03] exit_code: 0
kernel: async-task-stde[251865]: segfault at 30 ip 00007fd595b2b4fb sp 00007fd58b7fd750 error 4 in libgobject-2.0.so.0.8400.4[1d4fb,7fd595b1e000+35000]
kernel: async-task-stdo[534144]: segfault at 30 ip 00007f20c69d04fb sp 00007f20c11fd760 error 4 in libgobject-2.0.so.0.8400.4[1d4fb,7f20c69c3000+35000]
The crashing thread differs between the two crashes: the stderr reader the first time (async-task-stde) and the stdout reader the second time (async-task-stdo). The offset in libgobject is identical (1d4fb). This fits the analysis by @mkilicar: both reader threads reach finish() at the same time.
The snapshot directory is left without info.json, so that hour's snapshot is lost and the backup device stays mounted under /run/timeshift/<pid>/backup until the next run.
Current master
The guard at the top of finish() in src/Utility/AsyncTask.vala is still a plain check-then-set with no lock:
if (finish_called) { return; }
finish_called =true;
Both threads can pass that check before either one sets the flag. As far as I can tell, the race is still present in 26.09.0. An atomic compare-and-swap, or doing the check and the set under a mutex, should be enough to make finish() run only once.
I have the two systemd-coredump cores. I can run coredumpctl debug / thread apply all bt on them if that helps.
Activity
LinuxOnTheDesktop commentedon Oct 8, 2024
Please compare #278, which concerns segfaults on restore (obviously: very bad) and contains thorough debugging and an identification of what seems to be the - or at least a - culprit.
burianvlastimil commentedon Dec 5, 2024
Can I please add also to this or some other thread?:
I selected 56 snapshots at once, only after 20 I think, I got a segfault, do not really understand it so deep, so this something like a bug report. Thank you in advance for your kind elaboration, if that is an error on Timeshift-GTK side of course. Cheers
grep NVM /etc/fstab
UUID=62575d63-cff1-4653-8fce-b8164d24ef93 /mnt/nvm ext4 nofail,nouser,auto,rw,async,x-gvfs-show,x-gvfs-name=NVM 0 0
timeshift-gtk
App config loaded: /etc/timeshift/timeshift.json
Mounted '/dev/nvme0n1p1' at '/run/timeshift/14229/backup'
Removing '2024-09-03_19-00-01'...
Removed '2024-09-03_19-00-01'
Removing '2024-09-04_19-00-01'...
Removed '2024-09-04_19-00-01'
Removing '2024-09-05_19-00-02'...
Removed '2024-09-05_19-00-02'
Removing '2024-09-06_19-00-01'...
Removed '2024-09-06_19-00-01'
Removing '2024-09-07_19-00-01'...
Removed '2024-09-07_19-00-01'
Removing '2024-09-08_19-00-01'...
Removed '2024-09-08_19-00-01'
Removing '2024-09-09_19-00-01'...
Removed '2024-09-09_19-00-01'
Removing '2024-09-10_19-00-01'...
Removed '2024-09-10_19-00-01'
Removing '2024-09-11_19-00-01'...
Removed '2024-09-11_19-00-01'
Removing '2024-09-12_19-00-01'...
Removed '2024-09-12_19-00-01'
Removing '2024-09-13_19-00-02'...
Removed '2024-09-13_19-00-02'
Removing '2024-09-14_19-00-01'...
Removed '2024-09-14_19-00-01'
Removing '2024-09-16_04-00-01'...
Removed '2024-09-16_04-00-01'
Removing '2024-09-17_04-00-01'...
Removed '2024-09-17_04-00-01'
Removing '2024-09-18_04-00-01'...
Removed '2024-09-18_04-00-01'
Removing '2024-09-19_05-00-01'...
Removed '2024-09-19_05-00-01'
Removing '2024-09-20_09-00-01'...
Removed '2024-09-20_09-00-01'
Removing '2024-09-21_09-00-01'...
Removed '2024-09-21_09-00-01'
Removing '2024-09-22_09-00-02'...
Removed '2024-09-22_09-00-02'
Removing '2024-09-23_09-00-01'...
Segmentation fault (core dumped)ning)
dmesg # (relevant snippets)
[Tue Nov 5 12:22:48 2024] delete[15859]: segfault at 28 ip 00007d12e32b23fb sp 00007d12d55ff780 error 4 in libgobject-2.0.so.0.8000.0[7d12e329d000+37000] likely on CPU 4 (core 0, socket 0)
[Tue Nov 5 12:22:48 2024] Code: 00 83 f8 01 0f 85 55 02 00 00 4c 8d 73 0c 8b 43 0c a8 10 0f 85 e6 00 00 00 48 89 df e8 1e 15 ff ff 48 89 df 49 89 c5 48 8b 03 50 28 8b 43 08 89 45 bc 83 f8 01 0f 8e be 01 00 00 4d 85 ed 0f
3 core dumps while deleting all snapshots attached below:
core-dumps.zip
LinuxOnTheDesktop commentedon Jan 15, 2025
I'm still getting periodic segfaults. It's very disconcerting.
LinuxOnTheDesktop commentedon Feb 24, 2025
Just now I had another segfault. System Reports found no stack trace. Here is the system log:
2025-02-24T00:00:42.111060+00:00 F13 kernel: timeshift[940490]: segfault at 30 ip 000072434ad6261a sp 00007243451ff780 error 4 in libgobject-2.0.so.0.8000.0[72434ad4d000+37000] likely on CPU 3 (core 1, socket 0)woodward2 commentedon Sep 25, 2025
Also getting sporadic (though becoming more frequent?) segfaults.
The most recent:
program output:
from timeshift log:
from syslog:
System:
OS: Ubuntu Server 24.04.3 LTS
Kernel: 6.8.0-84-generic
Timeshift: 24.01.1
ygerlach commentedon Sep 26, 2025
If you have
systemd-coredumpinstalled, it may have saved the crash dump.You can list all known crashes with
sudo coredumpctl listand get more details withsudo coredumpctl info <pid>orsudo coredumpctl debug <pid>.Feel free to upload the core file from
/var/lib/systemd/coredumpor a log from a gdb session withthread apply all bt fullwoodward2 commentedon Sep 27, 2025
systemd-coredumpwasn't installed on my Ubuntu Server 24, but I have now installed it.It is installed on my desktop & HTPC (both Linux Mint 21.3 with
timeshift24.01.1) and my workshop PC (Linux Mint 22.2 withtimeshift25.07.7), but they don't have any recenttimeshiftcrashes.Will monitor and await developments...
woodward2 commentedon Dec 20, 2025
Crashed this morning:
Tried to upload the core file ... "File type .zst not supported"
ygerlach commentedon Dec 20, 2025
try uploading it elsewhere and share the link here.
woodward2 commentedon Dec 20, 2025
Link to core dump: https://limewire.com/d/qDn7T#DyTTT0KGoD
woodward2 commentedon Jan 6, 2026
Failed again this morning (slightly different error):
Link to core dump: https://limewire.com/d/7oidm#qAaLkTM2ME
bubbaprog commentedon Apr 3, 2026
Just hopping in here to note that I discovered this was happening every time Timeshift ran and in fact a complete backup (which I have set to run daily) hasn't completed in two weeks, so this segfault can happen in a way that's not even immediately obvious.
mkilicar commentedon Sep 23, 2026
Same crash on Ubuntu 24.04, Timeshift 24.01.1 (24.01.1-1build2), GLib 2.80, hourly cron timeshift --check --scripted on a 40-thread machine. About 4 crashes in 4 days, always ~37 s after the backup disk is mounted, i.e. during the snapshot's rsync. Kernel: segfault at 30 … in libgobject-2.0.so.0.8000.0[2461a,…], i.e. call *0x30(%rax) (finalize) in g_object_unref on an already-freed object.
Backtrace from the apport core (no symbols): crashed thread = g_object_unref ← timeshift+0x2b210 ← timeshift+0x2ba85 ← GLib thread wrapper. Disassembly of the stripped binary (my reading, unverified against source): +0x2b160 is AsyncTask.finish() (it logs "AsyncTask: finish(): enter"). It checks a flag at priv+0x3c, sets it with a plain store, then does if (stream != NULL) { g_object_unref(stream); stream = NULL; } on an output stream, with no lock. It's called from the end of the stdout/stderr reader-thread function when both "open" flags are 0. A second thread had a frame inside the same function (+0x2b42f, in g_file_query_exists) when the core was taken. Likely both reader threads finish together when rsync closes its pipes, both call finish(), and the stream is unref'd twice.
make the finish_called test-and-set atomic (mutex, or an atomic compare-and-swap), and don't NULL the stream pointer after unref outside that guard.
Arcaudas commentedon Oct 15, 2026
Same crash here, on a newer Timeshift and GLib than the reports above.
Environment
24.06.6+fayepackage), Debian 13 (trixie), kernel 6.12.107+deb13-amd64libglib2.0-0t64 2.84.4-3~deb13u5)timeshift --check --scripted, 16 logical CPUsWhat happens
It crashed twice on the same day (12:21 and 16:13). The runs in between and after completed normally. Both times the rsync had finished with
exit_code: 0, and the process segfaulted in the same second:The crashing thread differs between the two crashes: the stderr reader the first time (
async-task-stde) and the stdout reader the second time (async-task-stdo). The offset in libgobject is identical (1d4fb). This fits the analysis by @mkilicar: both reader threads reachfinish()at the same time.The snapshot directory is left without
info.json, so that hour's snapshot is lost and the backup device stays mounted under/run/timeshift/<pid>/backupuntil the next run.Current master
The guard at the top of
finish()insrc/Utility/AsyncTask.valais still a plain check-then-set with no lock:Both threads can pass that check before either one sets the flag. As far as I can tell, the race is still present in 26.09.0. An atomic compare-and-swap, or doing the check and the set under a mutex, should be enough to make
finish()run only once.I have the two systemd-coredump cores. I can run
coredumpctl debug/thread apply all bton them if that helps.