Openstack / Freezer-agent issue on NOVA.py

Bug #1881891 reported by vivek shrivastava
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
OpenStack Backup/Restore and DR (Freezer)
New
Undecided
Unassigned

Bug Description

I am using freezer-agent command to take backup of NOVA instances in openstack 13 , Getting below error in

nova.py . a bytes-like object is required, not 'str': TypeError: a bytes-like object is required, not 'str'

2020-06-01 16:11:17.639 31007 INFO freezer.job [-] Executing nova backup. Instance ID: d7512c14-4339-4c65-aeb6-36396abd9008
2020-06-01 16:11:37.979 31007 INFO freezer.engine.nova.nova [-] Image type instance backup
2020-06-01 16:11:38.204 31007 INFO freezer.engine.nova.nova [-] Uploading image to storage path
2020-06-01 16:11:38.205 31007 ERROR freezer.utils.streaming [-] a bytes-like object is required, not 'str': TypeError: a bytes-like object is required, not 'str'
2020-06-01 16:11:38.205 31007 ERROR freezer.utils.streaming Traceback (most recent call last):
2020-06-01 16:11:38.205 31007 ERROR freezer.utils.streaming File "/usr/local/lib/python3.6/site-packages/freezer/utils/streaming.py", line 112, in run
2020-06-01 16:11:38.205 31007 ERROR freezer.utils.streaming super(QueuedThread, self).run()
2020-06-01 16:11:38.205 31007 ERROR freezer.utils.streaming File "/usr/lib64/python3.6/threading.py", line 864, in run
2020-06-01 16:11:38.205 31007 ERROR freezer.utils.streaming self._target(*self._args, **self._kwargs)
2020-06-01 16:11:38.205 31007 ERROR freezer.utils.streaming File "/usr/local/lib/python3.6/site-packages/freezer/engine/engine.py", line 101, in backup_stream
2020-06-01 16:11:38.205 31007 ERROR freezer.utils.streaming manifest_path))
2020-06-01 16:11:38.205 31007 ERROR freezer.utils.streaming File "/usr/local/lib/python3.6/site-packages/freezer/utils/streaming.py", line 69, in put_messages
2020-06-01 16:11:38.205 31007 ERROR freezer.utils.streaming for message in messages:
2020-06-01 16:11:38.205 31007 ERROR freezer.utils.streaming File "/usr/local/lib/python3.6/site-packages/freezer/engine/nova/nova.py", line 312, in backup_data
2020-06-01 16:11:38.205 31007 ERROR freezer.utils.streaming self.set_tenant_meta(manifest_path, headers)
2020-06-01 16:11:38.205 31007 ERROR freezer.utils.streaming File "/usr/local/lib/python3.6/site-packages/freezer/engine/nova/nova.py", line 357, in set_tenant_meta
2020-06-01 16:11:38.205 31007 ERROR freezer.utils.streaming fb.writelines(json.dumps(metadata))
2020-06-01 16:11:38.205 31007 ERROR freezer.utils.streaming TypeError: a bytes-like object is required, not 'str'
2020-06-01 16:11:38.205 31007 ERROR freezer.utils.streaming
2020-06-01 16:11:38.645 31007 ERROR freezer.utils.streaming [-] Forced stop: Exception: Forced stop
2020-06-01 16:11:38.645 31007 ERROR freezer.utils.streaming Traceback (most recent call last):
2020-06-01 16:11:38.645 31007 ERROR freezer.utils.streaming File "/usr/local/lib/python3.6/site-packages/freezer/utils/streaming.py", line 58, in get.

2020-06-01 14:45:25.073 1410 CRITICAL freezer.main [-] Run freezer agent process unsuccessfully: freezer.exceptions.engine.EngineException: ('Engine error. Failed to backup.', {})
2020-06-01 14:45:25.073 1410 CRITICAL freezer.main [-] Critical Error: ('Engine error. Failed to backup.', {})

using freezer-agent --action backup command to take backup manually , Need to check code in nova.py

fb.writelines(json.dumps(metadata)) , JSON.dumps always give output in str ...

Revision history for this message
dazhaoyu (lufus) wrote :

I also found this issue, when I made some change in /usr/local/lib/python3.6/site-packages/freezer/engine/nova/nova.py like below:
   fb.writelines(json.dumps(metadata)) --> fb.writelines(json.dumps(metadata).encode())

can work around this issue, but next will encounter another issue "must be str, not bytes "

I donot know how to fix it any more

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.