freezer-agent tar restore broken in Windows

Bug #1808552 reported by Mohamed El Gindi
26
This bug affects 6 people
Affects Status Importance Assigned to Milestone
OpenStack Backup/Restore and DR (Freezer)
New
Undecided
Unassigned

Bug Description

Restore not working on windows 10 python 2.7 for 2 reasons:

1. Because of this commit https://github.com/openstack/freezer/commit/b08c785b78484902217b418c872068389f6aeac9

Looks for '/bin/bash' executable in freezer\engine\tar\tar.py, but it doesn't exist in Windows. (fixable by editing code)

2. Multiprocessing module seems to have problems pickling/unpickling.

Command:

freezer-agent --action restore --mode fs --restore-abs-path C:\Users\Administrator\Documents\freezer_dir --container freezer_win --backup-name test_win --log-file C:\Users\Administrator\Documents\freezer.log

Result:

Critical Error: Can't pickle <type 'thread.lock'>: it's not found as thread.lock

C:\Users\Administrator\Documents>Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "C:\Python27\lib\multiprocessing\forking.py", line 381, in main
    self = load(from_parent)
  File "C:\Python27\lib\pickle.py", line 1378, in load
    return Unpickler(file).load()
  File "C:\Python27\lib\pickle.py", line 858, in load
p dispatch[key](self)
  File "C:\Python27\lib\pickle.py", line 880, in load_eof
    raise EOFError
EOFError

More logging in log file:

2018-12-07 02:31:38.471 4084 INFO freezer.engine.engine [-] Creating restore path: C:\Users\Administrator\Documents\freezer_dir
2018-12-07 02:31:38.497 4084 INFO freezer.engine.engine [-] Restore path creation completed
2018-12-07 02:31:43.293 4084 INFO freezer.engine.engine [-] Restoring backup undefined-2016_test_win
2018-12-07 02:31:43.295 4084 INFO freezer.engine.engine [-] Restoring from level 0
2018-12-07 02:31:43.351 4084 ERROR freezer.main [-] Can't pickle <type 'thread.lock'>: it's not found as thread.lock: PicklingError: Can't pickle <type 'thread.lock'>: it's not found as thread.lock
2018-12-07 02:31:43.351 4084 ERROR freezer.main Traceback (most recent call last):
2018-12-07 02:31:43.351 4084 ERROR freezer.main File "C:\Python27\lib\site-packages\freezer\main.py", line 271, in main
2018-12-07 02:31:43.351 4084 ERROR freezer.main freezer_main(backup_args)
2018-12-07 02:31:43.351 4084 ERROR freezer.main File "C:\Python27\lib\site-packages\freezer\main.py", line 138, in freezer_main
2018-12-07 02:31:43.351 4084 ERROR freezer.main return run_job(backup_args, storage)
2018-12-07 02:31:43.351 4084 ERROR freezer.main File "C:\Python27\lib\site-packages\freezer\main.py", line 151, in run_job
2018-12-07 02:31:43.351 4084 ERROR freezer.main response = freezer_job.execute()
2018-12-07 02:31:43.351 4084 ERROR freezer.main File "C:\Python27\lib\site-packages\freezer\job.py", line 393, in execute
2018-12-07 02:31:43.351 4084 ERROR freezer.main backup_media=conf.mode)
2018-12-07 02:31:43.351 4084 ERROR freezer.main File "C:\Python27\lib\site-packages\freezer\engine\engine.py", line 268, in restore
2018-12-07 02:31:43.351 4084 ERROR freezer.main process_stream.start()
2018-12-07 02:31:43.351 4084 ERROR freezer.main File "C:\Python27\lib\multiprocessing\process.py", line 130, in start
2018-12-07 02:31:43.351 4084 ERROR freezer.main self._popen = Popen(self)
2018-12-07 02:31:43.351 4084 ERROR freezer.main File "C:\Python27\lib\multiprocessing\forking.py", line 277, in __init__
2018-12-07 02:31:43.351 4084 ERROR freezer.main dump(process_obj, to_child, HIGHEST_PROTOCOL)
2018-12-07 02:31:43.351 4084 ERROR freezer.main File "C:\Python27\lib\multiprocessing\forking.py", line 199, in dump
2018-12-07 02:31:43.351 4084 ERROR freezer.main ForkingPickler(file, protocol).dump(obj)
2018-12-07 02:31:43.351 4084 ERROR freezer.main File "C:\Python27\lib\pickle.py", line 224, in dump
2018-12-07 02:31:43.351 4084 ERROR freezer.main self.save(obj)
2018-12-07 02:31:43.351 4084 ERROR freezer.main File "C:\Python27\lib\pickle.py", line 331, in save
2018-12-07 02:31:43.351 4084 ERROR freezer.main self.save_reduce(obj=obj, *rv)
2018-12-07 02:31:43.351 4084 ERROR freezer.main File "C:\Python27\lib\pickle.py", line 419, in save_reduce
2018-12-07 02:31:43.351 4084 ERROR freezer.main save(state)
2018-12-07 02:31:43.351 4084 ERROR freezer.main File "C:\Python27\lib\pickle.py", line 286, in save
2018-12-07 02:31:43.351 4084 ERROR freezer.main f(self, obj) # Call unbound method with explicit self
2018-12-07 02:31:43.351 4084 ERROR freezer.main File "C:\Python27\lib\pickle.py", line 649, in save_dict
2018-12-07 02:31:43.351 4084 ERROR freezer.main self._batch_setitems(obj.iteritems())
2018-12-07 02:31:43.351 4084 ERROR freezer.main File "C:\Python27\lib\pickle.py", line 681, in _batch_setitems
2018-12-07 02:31:43.351 4084 ERROR freezer.main save(v)
2018-12-07 02:31:43.351 4084 ERROR freezer.main File "C:\Python27\lib\pickle.py", line 286, in save

Mohamed El Gindi (gindi)
description: updated
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.