Invalid data in hashes.pkl doesn't get fixed
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Object Storage (swift) |
Fix Released
|
Undecided
|
Christian Schwede |
Bug Description
If the data in hashes.pkl is invalid (eg. corrupted, but pickle still able to load it) it will raise TypeErrors and gets never fixed. For example:
May 29 09:58:11 controller-0 object-server: Starting object replication pass.
May 29 09:58:11 controller-0 object-server: Error syncing partition: #012Traceback (most recent call last):#012 File "/usr/lib/
May 29 09:58:11 controller-0 object-server: 1/1 (100.00%) partitions replicated in 0.01s (193.88/sec, 0s remaining)
May 29 09:58:11 controller-0 object-server: 0 successes, 0 failures
May 29 09:58:11 controller-0 object-server: Object replication complete. (0.00 minutes)
May 29 09:58:11 controller-0 object-server: Replication sleeping for 30 seconds.
May 29 09:58:24 controller-0 object-server: ERROR __call__ error with REPLICATE /d1/174 : #012Traceback (most recent call last):#012 File "/usr/lib/
A simple reproducer is to create a dict with a NULL byte, eg:
with open("/
fh.
fh.close()
This gets never fixed by the replicators.
Changed in swift: | |
assignee: | nobody → Christian Schwede (cschwede) |
status: | New → In Progress |
Note: manual fix is to remove the hashes.pkl files from the partition directories that raise an error.