backintime icon indicating copy to clipboard operation
backintime copied to clipboard

Catch warning "filesystem was unmounted, but failed to update userspace mount table." and report directly to the user. (was: Different mount point from start and managing profile with error on mounting options)

Open adinriv opened this issue 2 months ago • 7 comments

BIT 1.5.5, Ubuntu 25.10


Problem

When trying to change the settings on the "profile" (or even just opening and closing the "Manage profiles" window) I get an error

Unable to unmount sshfs from /home/usr/.local/share/backintime/mnt/9094CD03/mountpoint.

Checking the mounting point manually, I can mount it.

One interesting thing is that when backintime starts, I can see that it is mounting on a particular folder (8ECCEBB9). Yet, when I open the "manage profile" window the error on the mounting directory is 9094CD03. See the logs of running it on a terminal for the exact paths.

$ backintime-qt 

Back In Time
Version: 1.5.5

Back In Time comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions; type `backintime --license' for details.

INFO: mount ssh: bktm_usr@host:backup on /home/usr/.local/share/backintime/mnt/8ECCEBB9/mountpoint
INFO: mount ssh: bktm_usr@host:backup on /home/usr/.local/share/backintime/mnt/9094CD03/mountpoint
umount: /home/usr/.local/share/backintime/mnt/9094CD03/mountpoint: filesystem was unmounted, but failed to update userspace mount table.
umount: /home/usr/.local/share/backintime/mnt/8ECCEBB9/mountpoint: filesystem was unmounted, but failed to update userspace mount table.

Steps to reproduce

  1. Open backintime
  2. Click "manage profile"
  3. Click "Ok" to close it
  4. An error message appears as describe above

Diagnostics

I'm using backintime 1.5.5 from the Ubuntu 25.10 default packages.

backintime --diagnostics
<sys>:0: Warning: g_main_context_pop_thread_default: assertion 'stack != NULL' failed
{
    "backintime": {
        "name": "Back In Time",
        "version": "1.5.5",
        "running-as-root": false,
        "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",
        "user-callback": "/home/UsernameReplaced/.config/backintime/user-callback",
        "keyring-supported": true
    },
    "host-setup": {
        "OS": {
            "/etc/os-release": "Ubuntu 25.10",
            "/etc/lsb-release": "DISTRIB_ID=Ubuntu\nDISTRIB_RELEASE=25.10\nDISTRIB_CODENAME=questing\nDISTRIB_DESCRIPTION=\"Ubuntu 25.10\"\n",
            "/etc/debian_version": "forky/sid\n"
        },
        "platform": "Linux-6.17.0-5-generic-x86_64-with-glibc2.42",
        "system": "Linux #5-Ubuntu SMP PREEMPT_DYNAMIC Mon Sep 22 10:00:33 UTC 2025",
        "display-system": "wayland",
        "locale": "en_US, UTF-8",
        "PATH": "/home/UsernameReplaced/miniconda3/condabin:/home/UsernameReplaced/.rbenv/shims:/snap/bin:/usr/local/texlive/2025/bin/x86_64-linux:/home/UsernameReplaced/miniconda3/bin:/home/UsernameReplaced/.gems/bin:/home/UsernameReplaced/.rbenv/plugins/ruby-build/bin:/home/UsernameReplaced/.rbenv/shims:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin",
        "RSYNC_OLD_ARGS": "(not set)",
        "RSYNC_PROTECT_ARGS": "(not set)"
    },
    "python-setup": {
        "python": "3.13.7 main Aug 20 2025 22:17:40 CPython GCC 15.2.0",
        "python-executable": "/usr/bin/python3",
        "python-executable-symlink": true,
        "python-executable-resolved": "/usr/bin/python3.13",
        "sys.path": [
            "/usr/share/backintime/qt/plugins",
            "/usr/share/backintime/common/plugins",
            "/usr/share/backintime/plugins",
            "/usr/share/backintime/common",
            "/usr/lib/python313.zip",
            "/usr/lib/python3.13",
            "/usr/lib/python3.13/lib-dynload",
            "/usr/local/lib/python3.13/dist-packages",
            "/usr/lib/python3/dist-packages"
        ],
        "qt": {
            "Version": "PyQt 6.9.1 / Qt 6.9.2",
            "Theme": "Yaru",
            "Theme Search Paths": [
                "/usr/share/icons",
                "/var/lib/snapd/desktop/icons",
                ":/icons"
            ],
            "Fallback Theme": "",
            "Fallback Search Paths": []
        }
    },
    "external-programs": {
        "rsync": {
            "version": "3.4.1",
            "protocol": "32.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_10.0p2 Ubuntu-5ubuntu5, OpenSSL 3.5.3 16 Sep 2025",
        "sshfs": "3.7.3",
        "encfs": "(no encfs)",
        "shell": "/bin/bash",
        "shell-version": "GNU bash, version 5.2.37(1)-release (x86_64-pc-linux-gnu)"
    }
}

adinriv avatar Oct 13 '25 12:10 adinriv

Hello adinriv,

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.

I do not see a real error in your output. There is just a warning from the mount system. The filesystem was unmounted "but failed to update userspace mount table", which is not a big deal. The two mountpoint names are usual and random generated. BIT does create several mount points for the same profiles depending on the action to take. Maybe I should make that a DEBUG message to prevent confusing users.

But to be sure that there is no problem at all, can you provide some more information? In this order please.

  1. Describe your profile in more details. SSH? With or without password? Proprietary NAS device, e.g. Synology?
  2. Provide the output of journalctl --identifier=backintime --since "1 days ago" --no-pager
  3. Run BIT in debug mode backintime-qt --debug, reproduce the problem and provide the output please.

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 and priorities:

Best regards, Christian

buhtz avatar Oct 13 '25 12:10 buhtz

  1. It is SSH with the identity file setup. I can see and perform backups with the original setup. I can login with the SSH commands from the terminal using the identity file.
  2. journalctl.txt
  3. debug.txt

adinriv avatar Oct 14 '25 07:10 adinriv

Thank you for the feedback. I am not sure. But I am assuming that BIT behaves correct. There is something wired going on with your mounting and your volumes. But I can not tell what it is. /etc/mtab might be involved.

I have never seen this message before:

filesystem was unmounted, but failed to update userspace mount table.

I searched for it in the web but couldn't find a clear hint. I would like to reproduce this error.

In my current state of research and knowledge I would say this is not a bug. But BIT could be improved in that way that it should catch that message and show it (via the message box) to the users. So I keep this open, more as a feature request.

I would suggest you to contact the BIT community via our mailing list, and/or via the Ubuntu forums. You might find someone who has a better idea than me.

Regards, Christian

buhtz avatar Oct 14 '25 08:10 buhtz

Thanks for the tip. I will check if there is something wrong with the mounting and volumes and report back.

One question, is BIT that selects the ID number that is used when mounting it on the system? (I mean 8ECCEBB9 vs. 9094CD03) Or is that selected by the OS and the mounting filesystem?

adinriv avatar Oct 14 '25 12:10 adinriv

The ID is temporary and randomly generated.

buhtz avatar Oct 14 '25 13:10 buhtz

It is strange since the error, I have been checking the mounting point and it is always the same two IDs (8ECCEBB9 at the beginning of opening BIT and 9094CD03 when trying to open the "profiles" window).

Shouldn't BIT assign different IDs after rebooting or trying to open the service at different times?

adinriv avatar Oct 14 '25 13:10 adinriv

I might have been wrong about the random thing. I have not developed that part of BIT and I am also not deep enough into it. I'll need to check it.

buhtz avatar Oct 14 '25 14:10 buhtz