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

bedup fails if top-level subvolume has higher ID nr than its sub-subvolumes #78

Open
elmystico opened this issue Jul 14, 2016 · 1 comment

Comments

@elmystico
Copy link

elmystico commented Jul 14, 2016

In other words: bedup fails when scans for subvolumes and sub-subvolumes were created before its top-level subvolume.
When I've reordered subvolumes bedup stoped failing.

What I did:
Started bedup for first time. Seemed ok but took so long to finish so i decided to make a subvolume to dedup partially only in subvolume.
I've made a subvolume and mv all contents of a folder (that contained many subvolumes) to that newly created subvolume.

Now bedup fails with:

Traceback (most recent call last):
File "/usr/sbin/bedup", line 9, in
load_entry_point('bedup==0.10.1', 'console_scripts', 'bedup')()
File "/root/.local/lib/python3.5/site-packages/bedup-0.10.1-py3.5-linux-x86_64.egg/bedup/main.py", line 497, in script_main
sys.exit(main(sys.argv))
File "/root/.local/lib/python3.5/site-packages/bedup-0.10.1-py3.5-linux-x86_64.egg/bedup/main.py", line 486, in main
return args.action(args)
File "/root/.local/lib/python3.5/site-packages/bedup-0.10.1-py3.5-linux-x86_64.egg/bedup/main.py", line 127, in vol_cmd
vols = whole_fs.load_all_writable_vols(tt)
File "/root/.local/lib/python3.5/site-packages/bedup-0.10.1-py3.5-linux-x86_64.egg/bedup/filesystem.py", line 560, in load_all_writable_vols
fs.root_info
File "/root/.local/lib/python3.5/site-packages/SQLAlchemy-1.1.0b2-py3.5-linux-x86_64.egg/sqlalchemy/util/langhelpers.py", line 754, in get
obj.dict[self.name] = result = self.fget(obj)
File "/root/.local/lib/python3.5/site-packages/bedup-0.10.1-py3.5-linux-x86_64.egg/bedup/filesystem.py", line 193, in root_info
return read_root_tree(fd)
File "/root/.local/lib/python3.5/site-packages/bedup-0.10.1-py3.5-linux-x86_64.egg/bedup/platform/btrfs.py", line 545, in read_root_tree
for (root_id, ri) in ri_rel.items():
RuntimeError: dictionary changed size during iteration

@florianjacob
Copy link

I can reproduce this as well, bedup broke after Idid some rearrangements to my btrfs subvolume layout.

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