Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Snapper is failing to create snapshots #901

Closed
mfgbhatti opened this issue Apr 19, 2024 · 4 comments
Closed

Snapper is failing to create snapshots #901

mfgbhatti opened this issue Apr 19, 2024 · 4 comments

Comments

@mfgbhatti
Copy link

Operating System:
Linux arch 6.8.7-arch1-1

Versions:
snapper version 0.10.7
libsnapper version 7.4.0

Snapper Config:

# subvolume to snapshot
SUBVOLUME="/"

# filesystem type
FSTYPE="btrfs"

# btrfs qgroup for space aware cleanup algorithms
QGROUP="1/0"

# fraction or absolute size of the filesystems space the snapshots may use
SPACE_LIMIT="0.5"

# fraction or absolute size of the filesystems space that should be free
FREE_LIMIT="0.2"

# users and groups allowed to work with config
ALLOW_USERS="farhan"
ALLOW_GROUPS="wheel"

# sync users and groups from ALLOW_USERS and ALLOW_GROUPS to .snapshots
# directory
SYNC_ACL="yes"

# start comparing pre- and post-snapshot in background after creating
# post-snapshot
BACKGROUND_COMPARISON="yes"

# run daily number cleanup
NUMBER_CLEANUP="yes"

# limit for number cleanup
NUMBER_MIN_AGE="3600"
NUMBER_LIMIT="6-12"
NUMBER_LIMIT_IMPORTANT="8-10"

# create hourly snapshots
TIMELINE_CREATE="yes"

# cleanup hourly snapshots after some time
TIMELINE_CLEANUP="yes"

# limits for timeline cleanup
TIMELINE_MIN_AGE="3600"
TIMELINE_LIMIT_HOURLY="5"
TIMELINE_LIMIT_DAILY="3"
TIMELINE_LIMIT_WEEKLY="2"
TIMELINE_LIMIT_MONTHLY="3"
TIMELINE_LIMIT_YEARLY="0"

# cleanup empty pre-post-pairs
EMPTY_PRE_POST_CLEANUP="yes"

# limits for empty pre-post-pair cleanup
EMPTY_PRE_POST_MIN_AGE="1800"

Pacman Hooks:
Yes, I am using snap-pac for pre and post upgrade snapshots

Btrfs Subvolumes:

ID 258 gen 43274 top level 5 path @log
ID 259 gen 43128 top level 5 path @spool
ID 260 gen 43264 top level 5 path @cache
ID 262 gen 43013 top level 5 path @opt
ID 265 gen 43268 top level 5 path @snapshots
ID 1122 gen 42984 top level 265 path @snapshots/825/snapshot
ID 1124 gen 43274 top level 5 path @

Snapper Log:

  MIL libsnapper(2561) snapperd.cc(main):315 - Exiting
  MIL libsnapper(3328) Snapper.cc(Snapper):97 - Snapper constructor
  MIL libsnapper(3328) Snapper.cc(Snapper):98 - snapper version 0.10.7
  MIL libsnapper(3328) Snapper.cc(Snapper):99 - libsnapper version 7.4.0
  MIL libsnapper(3328) Snapper.cc(Snapper):100 - config_name:root root_prefix:/ disable_filters:false
  MIL libsnapper(3328) AsciiFile.cc(reload):922 - loading file /etc/snapper/configs/root
  MIL libsnapper(3328) AsciiFile.cc(get_value):1078 - key:SUBVOLUME value:/
  MIL libsnapper(3328) AsciiFile.cc(get_value):1078 - key:FSTYPE value:btrfs
  MIL libsnapper(3328) AsciiFile.cc(get_value):1078 - key:QGROUP value:1/0
  MIL libsnapper(3328) AsciiFile.cc(get_value):1078 - key:SYNC_ACL value:yes
  MIL libsnapper(3328) AsciiFile.cc(get_value):1078 - key:ALLOW_USERS value:farhan
  MIL libsnapper(3328) AsciiFile.cc(get_value):1078 - key:ALLOW_GROUPS value:wheel
  MIL libsnapper(3328) Snapper.cc(Snapper):130 - subvolume:/ filesystem:btrfs
  MIL libsnapper(3328) Snapper.cc(loadIgnorePatterns):204 - number of ignore patterns:8
  MIL libsnapper(3328) Snapshot.cc(read):344 - found 2 snapshots
  WAR libsnapper(3328) Client.cc(check_permission):436 - THROW: no permissions
  WAR libsnapper(3328) Client.cc(dispatch):1947 - CAUGHT: no permissions
  MIL libsnapper(3328) Snapper.cc(~Snapper):142 - Snapper destructor
  MIL libsnapper(3328) snapperd.cc(main):315 - Exiting

Pacman Log:

 [PACMAN] synchronizing package lists
 [PACMAN] starting full system upgrade
 [PACMAN] Running 'pacman -Syu'
 [PACMAN] synchronizing package lists
 [PACMAN] starting full system upgrade
 [ALPM] running '05-snap-pac-pre.hook'...
 [ALPM-SCRIPTLET] Creating snapshot failed.
 [ALPM-SCRIPTLET] ==> root:
 [ALPM] transaction started
 [ALPM] transaction completed
 [ALPM] running 'zz-snap-pac-post.hook'...
 [ALPM-SCRIPTLET] Invalid snapshot '--type'.
 [ALPM-SCRIPTLET] ==> root:

Snapshots Directory Permissions:

drwxr-x---+   1 root root    6 Apr 19 00:24 .snapshots

Command snapper -c root create --description test worked but it created two single snapshots. Running same command again produced one snapshot. Just read snapper log, I already pasted above, there is a discrepancy. There was only one snapshot as you can see in btrfs output but snapper is reporting found 2 snapshots. This behavior started after I restored a snapshot by using live arch usb.

Steps Taken to resolve:

  1. Deleted .snapshots directory
  2. reinstalled snapper, snap-pac
@aschnell
Copy link
Member

One thing is AFAIS that you hit bug #856:

WAR libsnapper(3328) Client.cc(check_permission):436 - THROW: no permissions

But that should not cause further problems.

What really looks strange is this:

[ALPM-SCRIPTLET] Invalid snapshot '--type'.

As if a program passes --type instead of a snapshot number.

@mfgbhatti
Copy link
Author

mfgbhatti commented Apr 19, 2024

I am using snap-pac. It was working as expected before I restored. There is also pre-upgrade snapshot [ALPM-SCRIPTLET] Creating snapshot failed.
One interesting thing happening as you can see in ls -la /.snapshot

drwxr-x---+ 1 root root  24 Apr 19 18:34 .
drwxr-xr-x  1 root root 158 Apr 18 18:35 ..
drwxr-xr-x  1 root root  32 Apr 17 23:55 825
drwxr-xr-x  1 root root  32 Apr 19 00:45 826
drwxr-xr-x  1 root root  32 Apr 19 00:45 827
drwxr-xr-x  1 root root  32 Apr 19 00:48 828

But in snapper.log I can still see MIL libsnapper(3038) Snapshot.cc(read):344 - found 5 snapshots

@mfgbhatti
Copy link
Author

After upgrading to latest version, everything is working as expected. Here is the latest snapper.log.

  MIL libsnapper(3004) Snapper.cc(Snapper):97 - Snapper constructor
  MIL libsnapper(3004) Snapper.cc(Snapper):98 - snapper version 0.11.0
  MIL libsnapper(3004) Snapper.cc(Snapper):99 - libsnapper version 7.4.3
  MIL libsnapper(3004) Snapper.cc(Snapper):100 - config_name:root root_prefix:/ disable_filters:false
  MIL libsnapper(3004) AsciiFile.cc(reload):920 - loading file /etc/snapper/configs/root
  MIL libsnapper(3004) AsciiFile.cc(get_value):1076 - key:SUBVOLUME value:/
  MIL libsnapper(3004) AsciiFile.cc(get_value):1076 - key:FSTYPE value:btrfs
  MIL libsnapper(3004) AsciiFile.cc(get_value):1076 - key:QGROUP value:1/0
  ERR libsnapper(3004) Btrfs.cc(evalConfigInfo):116 - qgroup '1/0' does not exist
  MIL libsnapper(3004) AsciiFile.cc(get_value):1076 - key:SYNC_ACL value:yes
  MIL libsnapper(3004) AsciiFile.cc(get_value):1076 - key:ALLOW_USERS value:farhan
  MIL libsnapper(3004) AsciiFile.cc(get_value):1076 - key:ALLOW_GROUPS value:wheel
  MIL libsnapper(3004) Snapper.cc(Snapper):130 - subvolume:/ filesystem:btrfs
  MIL libsnapper(3004) Snapper.cc(loadIgnorePatterns):204 - number of ignore patterns:8
  MIL libsnapper(3004) Snapshot.cc(read):340 - found 3 snapshots
  WAR libsnapper(3004) FileUtils.cc(SDir):88 - THROW: open failed path://.snapshots/830 errno:2 (No such file or directory)
  WAR libsnapper(3004) Btrfs.cc(checkSnapshot):484 - CAUGHT: open failed path://.snapshots/830 errno:2 (No such file or directory)
  WAR libsnapper(3004) FileUtils.cc(SDir):88 - THROW: open failed path://.snapshots/831 errno:2 (No such file or directory)
  WAR libsnapper(3004) Btrfs.cc(checkSnapshot):484 - CAUGHT: open failed path://.snapshots/831 errno:2 (No such file or directory)
  MIL libsnapper(3004) AsciiFile.cc(get_value):1076 - key:BACKGROUND_COMPARISON value:yes
  MIL libsnapper(3004) Comparison.cc(Comparison):60 - num1:830 num2:831
  MIL libsnapper(3004) Comparison.cc(load):272 - num1:830 num2:831
  MIL libsnapper(3004) Comparison.cc(create):141 - num1:830 num2:831
  MIL libsnapper(3004) Btrfs.cc(cmpDirs):1360 - special btrfs cmpDirs
  MIL libsnapper(3004) Btrfs.cc(process):1331 - dir1:'//.snapshots/830/snapshot' dir2:'//.snapshots/831/snapshot'
  MIL libsnapper(3004) Btrfs.cc(cmpDirs):1372 - stopwatch 3.184126s for comparing directories
  MIL libsnapper(3004) Comparison.cc(create):161 - found 1256 lines
  MIL libsnapper(3004) Comparison.cc(save):318 - num1:830 num2:831
  MIL libsnapper(3004) Snapper.cc(~Snapper):142 - Snapper destructor
  MIL libsnapper(3004) snapperd.cc(main):315 - Exiting

@aschnell
Copy link
Member

Unclear cause but is fixed now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants