Timeshift 21.09.1-1 broken after Rsync upgrade to 3.2.7-0ubuntu0.22.04.2
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
timeshift (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Jammy |
Fix Released
|
Medium
|
Ponnuvel Palaniyappan |
Bug Description
[ Impact ]
Timeshift is broken after upgrade to 21.09.1-1. This is because of
a change in behaviour by rsync; rsync 3.2.4 changed how the locale's
worked out. From https:/
"A long-standing bug was preventing rsync from figuring out the current locale's decimal point character, which made rsync always output numbers using the "C" locale. Since this is now fixed in 3.2.4, a script that parses rsync's decimal numbers (e.g. from the verbose footer) may want to setup the environment in a way that the output continues to be in the C locale. For instance, one of the following should work fine:
export LC_ALL=C.UTF-8
"
This broke timeshift and the workaround mentioned in rsync release
notes needed to be applied to fix the locale.
* justification for backporting the fix to the stable release.
While the behaviour change is external to timeshift (it's in rsync),
for anyone using newer rsync it broke timeshift completely and worse,
users aren't even aware that their existing snapshots and backups are no longer
working.
The said workaround has been applied in upstream timeshift
https:/
But we haven't got this fix in Jammy.
[ Test Plan ]
It's readily reproducible on Jammy:
1. Install Ubuntu 22.04 LTS
2. Install the latest Timeshift
3. Change locale to any language with a (,) decimal seperator (e.g. German)
4. (a) Launch Timeshift, start rsync-backup, log message said that rsync failed to create backup.
(b) Can use CLI too with `sudo timeshift --create` and see it fail.
5. Then use the timshift package from PPA https:/
which contains the fix and `sudo timeshift --create` will succeed.
[ Where problems could occur ]
This changes the locale to "C.UTF-8". If anyone relies existing broken behaviour
that won't work anymore. Similarly, if rsync doesn't changes behaviour again based
on locale, timeshift might start failing again.
[ Other Info ]
I've looked into Focal, Jammy, Mantic, and Noble for this issue.
Focal is using older rsync (before the locale change [0]), so it's unaffected.
Both Mantic, and Noble have the upstream fix [1] incorporated (fixed through new releases).
So they don't have this issue either.
Thus this is a Jammy-only backport of the fix [1].
[0] https:/
[1] https:/
description: | updated |
Changed in timeshift (Ubuntu Jammy): | |
assignee: | nobody → Ponnuvel Palaniyappan (pponnuvel) |
Changed in timeshift (Ubuntu): | |
status: | Confirmed → Fix Released |
Changed in timeshift (Ubuntu Jammy): | |
importance: | Undecided → Medium |
status: | Confirmed → In Progress |
I can confirm that behavior for these versions: ubuntu 22.04.2, rsync 3.2.7-0ubuntu0. 22.04.2, timeshift 21.09.1-1.
On my system the last successful timeshift snapshot was performed manually directly before upgrading rsync via software updater. Since then all automated snapshots (boot + all scheduled ones) fail to generate a snapshot. Triggering an "ondemand"-snapshot DOES perform a snapshot, but it does never appear in GUI list.
There is NO indication that automated snapshot are not performed if one does not startup the timeshift GUI or look into the logfiles - therefore I consider this bug is quite problematic.
The logfile does not contain any useful information for me: ------- ------- ------- ------- ------- ------- ------- ------- ------- ------- - backup list_for_ backup( ) exclude_ list_for_ backup( ) exclude_ list_for_ backup( ): exit dest='/ run/timeshift/ backup/ timeshift/ snapshots/ 2023-03- 07_09-05- 09/localhost/ ' --log-file= '/run/timeshift /backup/ timeshift/ snapshots/ 2023-03- 10_09-08- 18/rsync- log' --exclude- from='/ run/timeshift/ backup/ timeshift/ snapshots/ 2023-03- 10_09-08- 18/exclude. list' --delete-excluded '/' '/run/timeshift /backup/ timeshift/ snapshots/ 2023-03- 10_09-08- 18/localhost/ ' prepare( ): saved: /tmp/q1JzC4r1/ 2023-03- 10_09-08- 18/script. sh ------- ------- ------- ------- ------- ------- ------- ------- ------- ------- -
[09:08:18] -------
[09:08:18] Creating new snapshot...(RSYNC)
[09:08:18] Saving to device: /dev/nvme0n1p2, mounted at path: /run/timeshift/
[09:08:18] Linking from snapshot: 2023-03-07_09-05-09
[09:08:18] Main: save_exclude_
[09:08:18] Main: create_
[09:08:18] Main: create_
[09:08:18] Synching files with rsync...
[09:08:18] RsyncTask:execute()
[09:08:18] rsync -aii --recursive --verbose --delete --force --stats --sparse --delete-excluded --link-
[09:08:18] RsyncTask:
[09:08:18] AsyncTask: child_pid: 10234
[09:08:23] AsyncTask: finish(): enter
[09:08:23] exit_code: 0
[09:08:24] E: rsync returned an error
[09:08:24] E: Failed to create new snapshot
[09:08:24] Failed to create snapshot
[09:08:24] -------