Reconstructor raises UnicodeDecodeError when reverting an obj with non-ascii chars in path
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Object Storage (swift) |
Fix Released
|
Critical
|
Alistair Coles |
Bug Description
First reported by Clay Gerrard in comment #1 here https:/
Quoting Clay from there:
"I'm having trouble duplicating this bug for replicated objects.
In my tests the handling of the object name and metadata in the object server is being treated consistently as utf-8 encoded bytes - not unicode strings.
object-6010: STDOUT: 'Content-Type': 'application/
object-6010: STDOUT: 'ETag': 'd41d8cd98f00b2
object-6010: STDOUT: 'X-Object-
object-6010: STDOUT: 'X-Object-
object-6010: STDOUT: 'X-Timestamp': '1490987405.84984'
On master, the EC reconstructor seems to blow up in an entirely different spot:
object-6030: STDERR: Traceback (most recent call last):
object-6030: STDERR: File "/usr/local/
object-6030: STDERR: timer()
object-6030: STDERR: File "/usr/local/
object-6030: STDERR: cb(*args, **kw)
object-6030: STDERR: File "/usr/local/
object-6030: STDERR: result = function(*args, **kwargs)
object-6030: STDERR: File "/vagrant/
object-6030: STDERR: self._responses
object-6030: STDERR: File "/vagrant/
object-6030: STDERR: full_path = _full_path(node, part, path, policy)
object-6030: STDERR: File "/vagrant/
object-6030: STDERR: 'policy': policy,
object-6030: STDERR: UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 20: ordinal not in range(128)
I'm creating objects from the command line using u'\N{SNOWMAN}' in the name & metadata
swift upload test ☃ -H 'x-object-meta-☃: ☃'
"
Changed in swift: | |
assignee: | nobody → Alistair Coles (alistair-coles) |
description: | updated |
Fix proposed to branch: master /review. openstack. org/452750
Review: https:/