bit-team / backintime

Back In Time - An easy-to-use backup tool for GNU/Linux using rsync in the back
https://backintime.readthedocs.io
GNU General Public License v2.0
2.11k stars 208 forks source link

Smart remove has a problem around leap years (29th February) #1874

Open mikefairbank opened 2 months ago

mikefairbank commented 2 months ago

Here is the problem (See image): image Smart remove did not handle the data 2024-02-29. It has left many days from that month, when it was only meant to leave one day from that month.


mike@mike-desktop:~$ backintime --diagnostics
Gtk-Message: 08:37:35.697: Failed to load module "atk-bridge": 'gtk_module_display_init': /usr/lib/x86_64-linux-gnu/gtk-2.0/modules/libgail.so: undefined symbol: gtk_module_display_init
{
    "backintime": {
        "name": "Back In Time",
        "version": "1.4.3",
        "latest-config-version": 6,
        "local-config-file": "/home/UsernameReplaced/.config/backintime/config",
        "local-config-file-found": true,
        "global-config-file": "/etc/backintime/config",
        "global-config-file-found": false,
        "started-from": "/usr/share/backintime/common",
        "running-as-root": false,
        "user-callback": "/home/UsernameReplaced/.config/backintime/user-callback",
        "keyring-supported": true
    },
    "host-setup": {
        "platform": "Linux-6.8.0-44-generic-x86_64-with-glibc2.39",
        "system": "Linux #44-Ubuntu SMP PREEMPT_DYNAMIC Tue Aug 13 13:35:26 UTC 2024",
        "OS": {
            "/etc/os-release": "Ubuntu 24.04.1 LTS",
            "/etc/lsb-release": "DISTRIB_ID=Ubuntu\nDISTRIB_RELEASE=24.04\nDISTRIB_CODENAME=noble\nDISTRIB_DESCRIPTION=\"Ubuntu 24.04.1 LTS\"\n",
            "/etc/debian_version": "trixie/sid\n"
        },
        "display-system": "x11",
        "locale": "en_US, UTF-8",
        "PATH": "/home/UsernameReplaced/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin",
        "RSYNC_OLD_ARGS": "(not set)",
        "RSYNC_PROTECT_ARGS": "(not set)"
    },
    "python-setup": {
        "python": "3.12.3 main Jul 31 2024 17:43:48 CPython GCC 13.2.0",
        "python-executable": "/usr/bin/python3",
        "python-executable-symlink": true,
        "python-executable-resolved": "/usr/bin/python3.12",
        "sys.path": [
            "/usr/share/backintime/qt/plugins",
            "/usr/share/backintime/common/plugins",
            "/usr/share/backintime/plugins",
            "/usr/share/backintime/common",
            "/usr/lib/python312.zip",
            "/usr/lib/python3.12",
            "/usr/lib/python3.12/lib-dynload",
            "/usr/local/lib/python3.12/dist-packages",
            "/usr/lib/python3/dist-packages"
        ],
        "qt": {
            "Version": "PyQt 5.15.10 / Qt 5.15.13",
            "Theme": "Yaru-MATE-light",
            "Theme Search Paths": [
                "/home/UsernameReplaced/.icons",
                "/home/UsernameReplaced/.local/share/icons",
                "/usr/share/icons",
                "/var/lib/snapd/desktop/icons",
                ":/icons"
            ],
            "Fallback Theme": "mate",
            "Fallback Search Paths": []
        }
    },
    "external-programs": {
        "rsync": {
            "version": "3.2.7",
            "protocol": "31.0",
            "capabilities": {
                "file_bits": 64,
                "inum_bits": 64,
                "timestamp_bits": 64,
                "long_int_bits": 64,
                "socketpairs": true,
                "symlinks": true,
                "symtimes": true,
                "hardlinks": true,
                "hardlink_specials": true,
                "hardlink_symlinks": true,
                "IPv6": true,
                "atimes": true,
                "batchfiles": true,
                "inplace": true,
                "append": true,
                "ACLs": true,
                "xattrs": true,
                "secluded_args": "optional",
                "iconv": true,
                "prealloc": true,
                "stop_at": true,
                "crtimes": false
            },
            "optimizations": {
                "SIMD_roll": true,
                "asm_roll": false,
                "openssl_crypto": true,
                "asm_MD5": false
            },
            "checksum_list": [
                "xxh128",
                "xxh3",
                "xxh64",
                "md5",
                "md4",
                "sha1",
                "none"
            ],
            "compress_list": [
                "zstd",
                "lz4",
                "zlibx",
                "zlib",
                "none"
            ],
            "daemon_auth_list": [
                "sha512",
                "sha256",
                "sha1",
                "md5",
                "md4"
            ]
        },
        "ssh": "OpenSSH_9.6p1 Ubuntu-3ubuntu13.5, OpenSSL 3.0.13 30 Jan 2024",
        "sshfs": "(no sshfs)",
        "encfs": "(no encfs)",
        "shell": "/bin/bash",
        "shell-version": "GNU bash, version 5.2.21(1)-release (x86_64-pc-linux-gnu)"
    }
}
buhtz commented 2 months ago

Hello Mike,

Thank you for taking the time to report the bug and providing the details. I appreciate your feedback, will investigate the issue, and work on a solution to the best of my ability. This is a nice report because the problem seems to be very clear and is quit easy to solve because of that.

If you have any more details to share, feel free to reach out.

Not sure when we'll find the time to work on it. Please see the projects background information to get an idea about our workflow andn priorities:

Best regards, Christian

mikefairbank commented 1 month ago

This "bug" has mysteriously fixed itself. I think I might be wasting your time asking you to fix this one - maybe it was a problem with my own file system and some dodgy moving from one drive to another which I'd been doing. Here is the situation now: image

So all working now. So if the code around leap-year Februaries, and smart remove looks fine, then please delete this issue. Sorry!

buhtz commented 1 month ago

Thank you very much for reporting back. No problem. Sometimes magic happens. 😆 We have other issues around smart remove and need to improve the unit tests. I will take you leap years use case into account when improving the unit tests. So I keep the issue open.