restore dialog slows down on lots of files
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Back In Time |
Fix Released
|
Undecided
|
Unassigned | ||
Linux Mint |
New
|
Undecided
|
Unassigned |
Bug Description
Old HD died, luckily there's a backup. Its size is about 1TB and *a lot* of files.
Now if I restore the contents with backintime-kde4 I see:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
18624 root 20 0 915m 415m 42m R 99.4 10.6 19:35.57 python
19494 root 20 0 254m 67m 1140 S 1.7 1.7 0:52.50 rsync
19496 root 20 0 261m 9648 540 S 1.3 0.2 0:54.61 rsync
Mostly it's just python (aka backintime) consuming 99-100% of the CPU and the machine ventilating like crazy. rsync mostly don't even show up in the top processes that is they are mostly blocked waiting for some I/O from the part of the python process. If I do:
lsof | grep rsync
I see that rsync is spending about 10s on each file no matter how tiny. With that speed there's no hope my restore will be finished this year.
I had a look at the code and I see that backintime seems to launch rsync and is getting callbacked. So I am guessing that the callback is taking too much time.
Either python doesn't handle well the restore (log) dialog and is repainting like crazy. Or the code is putting the file that rsync has restored in some list, which doesn't grow linearily with respect to resource usage (so f.ex. sorting or growing (reallocating!) the list or doing lookups in it explodes exponentially or something).
So what I did was to call rsync by hand to restore my files. However that would not restore the original permissions.
What I'd envision is commenting out the "_execute" call in the restore code (since the data is allready restored by manually calling rsync) and thus to only have the permission restoring done.
Is there an easy way to do the latter - that is to restore permissions? If you think you are able to help me quickly (2012-10-11 to 2012-10-12 - if it's later I'll have it figured out since I need the data) then please let me know your price.
Thanks,
*t ( tpo_deb a+t sourcepole.ch )
Changed in backintime: | |
status: | Fix Committed → Fix Released |
converted from https:/ /answers. launchpad. net/backintime/ +question/ 213871