)]}'
{"id":"openstack%2Fswift~7569","triplet_id":"openstack%2Fswift~master~Ic4af9aba66452214087efe2d664a7a9aca86bd7a","project":"openstack/swift","branch":"master","topic":"bug/959881","hashtags":[],"change_id":"Ic4af9aba66452214087efe2d664a7a9aca86bd7a","subject":"Adapt Swift for Webob 1.2b3","status":"ABANDONED","created":"2012-05-18 00:48:59.000000000","updated":"2012-06-06 05:00:16.000000000","total_comment_count":0,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"1be51dc9645884275ad1b3fefa705f670052edcc","_number":7569,"virtual_id_number":7569,"owner":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"actions":{},"labels":{"Verified":{"all":[{"date":"2012-06-02 03:58:39.000000000","_account_id":3,"name":"Jenkins","username":"jenkins"},{"_account_id":739,"name":"Michael Basnight","email":"mbasnight@gmail.com","username":"hubcap"},{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},{"_account_id":4405,"name":"Iryoung Jeong","email":"iryoung@gmail.com","username":"iryoung"},{"_account_id":24,"name":"Chuck Short","email":"charles.short@windriver.com","username":"zulcss"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"disliked":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"all":[{"value":-1,"date":"2012-06-02 03:58:39.000000000","permitted_voting_range":{"min":-1,"max":1},"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":739,"name":"Michael Basnight","email":"mbasnight@gmail.com","username":"hubcap"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":4405,"name":"Iryoung Jeong","email":"iryoung@gmail.com","username":"iryoung"},{"value":0,"permitted_voting_range":{"min":-1,"max":1},"_account_id":24,"name":"Chuck Short","email":"charles.short@windriver.com","username":"zulcss"}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","value":-1,"default_value":0,"optional":true},"Workflow":{"all":[{"_account_id":3,"name":"Jenkins","username":"jenkins"},{"_account_id":739,"name":"Michael Basnight","email":"mbasnight@gmail.com","username":"hubcap"},{"value":0,"permitted_voting_range":{"min":-1,"max":0},"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},{"_account_id":4405,"name":"Iryoung Jeong","email":"iryoung@gmail.com","username":"iryoung"},{"_account_id":24,"name":"Chuck Short","email":"charles.short@windriver.com","username":"zulcss"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":3,"name":"Jenkins","username":"jenkins"},{"_account_id":24,"name":"Chuck Short","email":"charles.short@windriver.com","username":"zulcss"},{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},{"_account_id":739,"name":"Michael Basnight","email":"mbasnight@gmail.com","username":"hubcap"},{"_account_id":4405,"name":"Iryoung Jeong","email":"iryoung@gmail.com","username":"iryoung"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2012-05-22 19:43:01.000000000","updated_by":{"_account_id":24,"name":"Chuck Short","email":"charles.short@windriver.com","username":"zulcss"},"reviewer":{"_account_id":24,"name":"Chuck Short","email":"charles.short@windriver.com","username":"zulcss"},"state":"REVIEWER"},{"updated":"2012-05-25 16:11:32.000000000","updated_by":{"_account_id":739,"name":"Michael Basnight","email":"mbasnight@gmail.com","username":"hubcap"},"reviewer":{"_account_id":739,"name":"Michael Basnight","email":"mbasnight@gmail.com","username":"hubcap"},"state":"REVIEWER"},{"updated":"2012-05-25 17:55:57.000000000","updated_by":{"_account_id":4405,"name":"Iryoung Jeong","email":"iryoung@gmail.com","username":"iryoung"},"reviewer":{"_account_id":4405,"name":"Iryoung Jeong","email":"iryoung@gmail.com","username":"iryoung"},"state":"REVIEWER"},{"updated":"2012-06-02 03:58:39.000000000","updated_by":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"reviewer":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"state":"REVIEWER"}],"messages":[{"id":"ccfc8b11843f1922038ff4aa16d0e3a50f9d4831","author":{"_account_id":24,"name":"Chuck Short","email":"charles.short@windriver.com","username":"zulcss"},"date":"2012-05-18 12:53:05.000000000","message":"Patch Set 1: I would prefer that you didn\u0027t merge this\n\nIt looks good however can you update the tools/pip-requires as well?\n\nThanks\nchuck","accounts_in_message":[],"_revision_number":1},{"id":"6b1dbf5c8ea55cee518ae3b1b4bc9680b354eafb","author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"date":"2012-05-22 19:08:27.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"14bac6acfcea8e1b85f55986c669a62695f52ee0","author":{"_account_id":24,"name":"Chuck Short","email":"charles.short@windriver.com","username":"zulcss"},"date":"2012-05-22 19:43:01.000000000","message":"Patch Set 2: Looks good to me, but someone else must approve\n\n","accounts_in_message":[],"_revision_number":2},{"id":"1b16d3bd7b3fb4806952a6b335b542b6e270eaab","author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"date":"2012-05-24 22:26:00.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"dff98f317353d743fb707690e914cd70f786063f","author":{"_account_id":739,"name":"Michael Basnight","email":"mbasnight@gmail.com","username":"hubcap"},"date":"2012-05-25 16:11:32.000000000","message":"Patch Set 3:\n\nGuys, i hit another issue with webob 1.2. Can yall make sure its covered here. I was using 1.2 from glance to send down a image to swift and hit this error via the webob 1.2 LimitedLengthFile. Thx!\n\n  File \"/usr/lib/python2.6/dist-packages/swift/common/client.py\", line 935, in put_object\n    orig_pos \u003d tell()\n  File \"/usr/lib/python2.6/io.py\", line 1021, in tell\n    return self.raw.tell() - len(self._read_buf) + self._read_pos\n  File \"/usr/lib/python2.6/io.py\", line 354, in tell\n    return self.seek(0, 1)\n  File \"/usr/lib/python2.6/io.py\", line 350, in seek\n    self._unsupported(\"seek\")\n  File \"/usr/lib/python2.6/io.py\", line 333, in _unsupported\n    (self.__class__.__name__, name))\nUnsupportedOperation: LimitedLengthFile.seek() not supported","accounts_in_message":[],"_revision_number":3},{"id":"57a6b9754a21bee084c55bf9861a488f680c7537","author":{"_account_id":4405,"name":"Iryoung Jeong","email":"iryoung@gmail.com","username":"iryoung"},"date":"2012-05-25 17:55:57.000000000","message":"Patch Set 3:\n\noops, I\u0027ve been trying to fix bug 888371, and today I got unittests passed version to fix the bug, and waiting to my CLA process is finished.\n\nBut there\u0027s another approach here :(\n\nI only check the bug 888371, and there\u0027s no action, so I thought nobody working on the webob issue.\nBecause I\u0027m new to this project, I can\u0027t sure what should I do.\nShoud I just create new review of bug 888371 with my code or just help this review to fix same issue?\n\nAnyway, this patchset 3 failed to pass .functests with both web 1.0.8 \u0026 web 1.2b3\n\nSome of error messages are like this:\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nERROR: testFileListingLimitMarkerPrefix (test.functional.tests.TestContainerUTF8)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n  File \"/home/simple/swift/test/functional/tests.py\", line 396, in testFileListingLimitMarkerPrefix\n    self.assert_(cont.files(parms\u003d{\u0027marker\u0027: f, \u0027prefix\u0027:f}) \u003d\u003d [])\n  File \"/home/simple/swift/test/functional/swift.py\", line 454, in files\n    raise ResponseError(self.conn.response)\nResponseError: 503: Internal Server Error\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nERROR: testPrefixAndLimit (test.functional.tests.TestContainerUTF8)\n----------------------------------------------------------------------\nTraceback (most recent call last):\n  File \"/home/simple/swift/test/functional/tests.py\", line 419, in testPrefixAndLimit\n    files \u003d cont.files(parms\u003d{\u0027prefix\u0027:prefix})\n  File \"/home/simple/swift/test/functional/swift.py\", line 454, in files\n    raise ResponseError(self.conn.response)\nResponseError: 503: Internal Server Error\n\n----------------------------------------------------------------------\n\nthanks.","accounts_in_message":[],"_revision_number":3},{"id":"851ec6ebd5851d20b6f54b272a32692be3d072fa","author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"date":"2012-05-25 18:22:49.000000000","message":"Patch Set 3:\n\nIn my opinion the best course of action would be to post to mailing list. Gerrit is a very wrong place for discussions.","accounts_in_message":[],"_revision_number":3},{"id":"9a832475b1df610ef4caa0bf477ca9250f22d287","author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"date":"2012-06-02 03:56:33.000000000","message":"Uploaded patch set 4.","accounts_in_message":[],"_revision_number":4},{"id":"4045249c926fdc39a4bc092daf4749c0523a867c","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2012-06-02 03:58:39.000000000","message":"Patch Set 4: I would prefer that you didn\u0027t merge this\n\nBuild Unstable \n \nhttps://jenkins.openstack.org/job/check-swift-pep8/28/ : UNSTABLE \nhttps://jenkins.openstack.org/job/check-swift-python27/29/ : SUCCESS \nhttps://jenkins.openstack.org/job/check-swift-python26/28/ : SUCCESS \nhttps://jenkins.openstack.org/job/check-swift-merge/28/ : SUCCESS","accounts_in_message":[],"_revision_number":4},{"id":"42c61cfc427a2726d37d8a9b94adb03a72255963","author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"date":"2012-06-06 05:00:16.000000000","message":"Patch Set 4: Abandoned\n\nLet\u0027s focus on Iryoung\u0027s patch. It incorporates the good parts of this one.","accounts_in_message":[],"_revision_number":4}],"current_revision_number":4,"current_revision":"caceb20b9eefef60173ee0d0e586beb6075c3cb5","revisions":{"b44c7cc50982d48550b67bdef7c8b71a67debfd5":{"kind":"REWORK","_number":1,"created":"2012-05-18 00:48:59.000000000","uploader":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"ref":"refs/changes/69/7569/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/69/7569/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/69/7569/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/69/7569/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/69/7569/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/69/7569/1"}}},"commit":{"parents":[{"commit":"3d3ed34f44646cc8a653dd0c75e664a03bc8d558","subject":"Adding StatsD logging to Swift.","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/3d3ed34f44646cc8a653dd0c75e664a03bc8d558"}]}],"author":{"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","date":"2012-05-18 00:39:07.000000000","tz":-360},"committer":{"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","date":"2012-05-18 00:46:30.000000000","tz":-360},"subject":"Adapt Swift for Webob 1.2b3","message":"Adapt Swift for Webob 1.2b3\n\nExisting Swift code targets Webob 1.0.8 and continues to work with\nWebob 1.1.1, using the compatibility and throwing a few deprecation\nwarnings. However, Webob 1.2 moved on from deprecation to outright\nremoval of certain API features that we need. Also, it moved to\nthe \"more Pythonic\" way of dealing with strings, e.g. all-unicode\nand border transformation.\n\nThis changeset produces a common Swift code that runs on both\nWebob 1.0.x and Webob 1.2.x. It is desirable for packagers working\nwith long-term Linux distributions.\n\nThe following compatibility issues were addressed:\n\n - str_params is gone. Use params instead.\n   This requires updating tests, too.\n\n - A UTF-8 encoded argument to parameter format\u003d leaks into HTTP header\n   Content-Type, and this tracebacks, because Webob does not allow UTF-8\n   in HTTP headers. The fix is to allow only \"xml\", \"json\", and \"plain\"\n   in format\u003d query argument. This is a compatibility change: previously\n   it was possible to set any garbage there, and receive garbage HTTP\n   headers with 200 OK code.\n\n - resp.environ is gone. Use req.environ instead.\n\n - req.range.ranges is no more, only one range is supported.\n\n - UTF-8 keys traceback all around. Operations such as quote()\n   and join() in particular cannot work unless arguments match.\n\n   Examples:\n\nTraceback (most recent call last):\n  File \"/usr/lib/python2.7/site-packages/eventlet/greenpool.py\", line 80, in _spawn_n_impl\n    func(*args, **kwargs)\n  File \"/usr/lib/python2.7/site-packages/eventlet/wsgi.py\", line 514, in process_request\n    proto \u003d self.protocol(socket, address, self)\n  File \"/usr/lib64/python2.7/SocketServer.py\", line 638, in __init__\n    self.handle()\n  File \"/usr/lib64/python2.7/BaseHTTPServer.py\", line 340, in handle\n    self.handle_one_request()\n  File \"/usr/lib/python2.7/site-packages/eventlet/wsgi.py\", line 232, in handle_one_request\n    self.handle_one_response()\n  File \"/usr/lib/python2.7/site-packages/eventlet/wsgi.py\", line 385, in handle_one_response\n    hook(self.environ, *args, **kwargs)\n  File \"/q/zaitcev/hail/swift-tip/swift/proxy/server.py\", line 2011, in posthooklogger\n    the_request \u003d quote(unquote(req.path))\n  File \"/usr/lib/python2.7/site-packages/webob/request.py\", line 482, in path\n    bpath \u003d bytes_(self.path_info, self.url_encoding)\n  File \"/usr/lib/python2.7/site-packages/webob/descriptors.py\", line 68, in fget\n    return req.encget(key, encattr\u003dencattr)\n  File \"/usr/lib/python2.7/site-packages/webob/request.py\", line 174, in encget\n    return val.decode(encoding)\n  File \"/usr/lib64/python2.7/encodings/utf_8.py\", line 16, in decode\n    return codecs.utf_8_decode(input, errors, True)\nUnicodeDecodeError: \u0027utf8\u0027 codec can\u0027t decode byte 0x80 in position 5: invalid start byte\n\nTraceback (most recent call last):\n  File \"/q/zaitcev/hail/swift-tip/swift/proxy/server.py\", line 1975, in handle_request\n    if not check_utf8(req.path_info):\n  File \"/q/zaitcev/hail/swift-tip/swift/common/constraints.py\", line 168, in check_utf8\n    string.decode(\u0027UTF-8\u0027)\n  File \"/usr/lib64/python2.7/encodings/utf_8.py\", line 16, in decode\n    return codecs.utf_8_decode(input, errors, True)\n\n   Basically, any attempt to access self.path_info blows up.\n\n   The only realistic fix that we found was forcing the Request\n   encoding to 1:1 or \"identity\" encoding (known as \u0027latin-1\u0027).\n\n - Same thing happens in all other servers: account, container\n   and object. However, it is feasible there to use the Pythonic\n   way and go all-unicode. The fix in this changeset is incomplete\n   in that it changes the 412 return code to 500 when Request\n   fails to parse before check_utf8 has a chance to trigger.\n   This is never seen by the user since Proxy server filters\n   requests for us. This may need fixing properly.\n\nBug: 959881\nChange-Id: Ic4af9aba66452214087efe2d664a7a9aca86bd7a\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/b44c7cc50982d48550b67bdef7c8b71a67debfd5"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/b44c7cc50982d48550b67bdef7c8b71a67debfd5"}]},"parents_data":[{"branch_name":"refs/heads/master","commit_id":"3d3ed34f44646cc8a653dd0c75e664a03bc8d558","is_merged_in_target_branch":true,"change_id":"Ie968a9ae8771f59ee7591e2ae11999c44bfe33b2","change_number":6058,"patch_set_number":6,"change_status":"MERGED"}],"branch":"refs/heads/master"},"eab7e5ec217cee637d63d5c034d7225fa83c5db4":{"kind":"REWORK","_number":2,"created":"2012-05-22 19:08:27.000000000","uploader":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"ref":"refs/changes/69/7569/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/69/7569/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/69/7569/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/69/7569/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/69/7569/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/69/7569/2"}}},"commit":{"parents":[{"commit":"1c3b75c29140939350807bf0e5faa2d35e7257a8","subject":"Reverted the pulling out of various middleware:","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/1c3b75c29140939350807bf0e5faa2d35e7257a8"}]}],"author":{"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","date":"2012-05-22 19:04:01.000000000","tz":-360},"committer":{"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","date":"2012-05-22 19:04:01.000000000","tz":-360},"subject":"Adapt Swift for Webob 1.2b3","message":"Adapt Swift for Webob 1.2b3\n\nExisting Swift code targets Webob 1.0.8 and continues to work with\nWebob 1.1.1, using the compatibility and throwing a few deprecation\nwarnings. However, Webob 1.2 moved on from deprecation to outright\nremoval of certain API features that we need. Also, it moved to\nthe \"more Pythonic\" way of dealing with strings, e.g. all-unicode\nand border transformation.\n\nThis changeset produces a common Swift code that runs on both\nWebob 1.0.x and Webob 1.2.x. It is desirable for packagers working\nwith long-term Linux distributions.\n\nThe following compatibility issues were addressed:\n\n- str_params is gone. Use params instead.\n  This requires updating tests, too.\n\n- A UTF-8-encoded argument to parameter format\u003d leaks into HTTP header\n  Content-Type, and this tracebacks, because Webob does not allow UTF-8\n  in HTTP headers. The fix is to allow only \"xml\", \"json\", and \"plain\"\n  in format\u003d query argument. This is a compatibility change: previously\n  it was possible to set any garbage there, and receive garbage HTTP\n  headers with 200 OK code.\n\n- resp.environ is gone. Use req.environ instead.\n\n- req.range.ranges is no more, only one range is supported.\n\n- UTF-8 keys traceback all around. Operations such as quote()\n  and join() in particular cannot work unless arguments match.\n\nExamples:\n\nTraceback (most recent call last):\n  File \"/usr/lib/python2.7/site-packages/eventlet/greenpool.py\", line 80, in _spawn_n_impl\n    func(*args, **kwargs)\n  File \"/usr/lib/python2.7/site-packages/eventlet/wsgi.py\", line 514, in process_request\n    proto \u003d self.protocol(socket, address, self)\n  File \"/usr/lib64/python2.7/SocketServer.py\", line 638, in __init__\n    self.handle()\n  File \"/usr/lib64/python2.7/BaseHTTPServer.py\", line 340, in handle\n    self.handle_one_request()\n  File \"/usr/lib/python2.7/site-packages/eventlet/wsgi.py\", line 232, in handle_one_request\n    self.handle_one_response()\n  File \"/usr/lib/python2.7/site-packages/eventlet/wsgi.py\", line 385, in handle_one_response\n    hook(self.environ, *args, **kwargs)\n  File \"/q/zaitcev/hail/swift-tip/swift/proxy/server.py\", line 2011, in posthooklogger\n    the_request \u003d quote(unquote(req.path))\n  File \"/usr/lib/python2.7/site-packages/webob/request.py\", line 482, in path\n    bpath \u003d bytes_(self.path_info, self.url_encoding)\n  File \"/usr/lib/python2.7/site-packages/webob/descriptors.py\", line 68, in fget\n    return req.encget(key, encattr\u003dencattr)\n  File \"/usr/lib/python2.7/site-packages/webob/request.py\", line 174, in encget\n    return val.decode(encoding)\n  File \"/usr/lib64/python2.7/encodings/utf_8.py\", line 16, in decode\n    return codecs.utf_8_decode(input, errors, True)\nUnicodeDecodeError: \u0027utf8\u0027 codec can\u0027t decode byte 0x80 in position 5: invalid start byte\n\nTraceback (most recent call last):\n  File \"/q/zaitcev/hail/swift-tip/swift/proxy/server.py\", line 1975, in handle_request\n    if not check_utf8(req.path_info):\n  File \"/q/zaitcev/hail/swift-tip/swift/common/constraints.py\", line 168, in check_utf8\n    string.decode(\u0027UTF-8\u0027)\n  File \"/usr/lib64/python2.7/encodings/utf_8.py\", line 16, in decode\n    return codecs.utf_8_decode(input, errors, True)\n\nBasically, any attempt to access self.path_info blows up.\n\nThe only realistic fix that we found was forcing the Request\nencoding to 1:1 or \"identity\" encoding (known as \u0027latin-1\u0027).\n\n- Same thing happens in all other servers: account, container\n  and object. However, it is feasible there to use the Pythonic\n  way and go all-unicode. The fix in this changeset is incomplete\n  in that it changes the 412 return code to 500 when Request\n  fails to parse before check_utf8 has a chance to trigger.\n  This is never seen by the user since Proxy server filters\n  requests for us. This may need fixing properly.\n\nBug: 959881\nChange-Id: Ic4af9aba66452214087efe2d664a7a9aca86bd7a\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/eab7e5ec217cee637d63d5c034d7225fa83c5db4"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/eab7e5ec217cee637d63d5c034d7225fa83c5db4"}]},"parents_data":[{"branch_name":"refs/heads/master","commit_id":"1c3b75c29140939350807bf0e5faa2d35e7257a8","is_merged_in_target_branch":true,"change_id":"I988e93e6f4aacb817a2e354d43a04e47516fdf88","change_number":7519,"patch_set_number":1,"change_status":"MERGED"}],"branch":"refs/heads/master"},"9e6bbf79b014d0a6cfdfbbcded7e419a8b1e5d6c":{"kind":"REWORK","_number":3,"created":"2012-05-24 22:26:00.000000000","uploader":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"ref":"refs/changes/69/7569/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/69/7569/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/69/7569/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/69/7569/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/69/7569/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/69/7569/3"}}},"commit":{"parents":[{"commit":"a74cd3b01b2d2d800ec29e78e872020ba508e54d","subject":"Merge \"Remove swift3 from here.\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/a74cd3b01b2d2d800ec29e78e872020ba508e54d"}]}],"author":{"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","date":"2012-05-24 22:23:36.000000000","tz":-360},"committer":{"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","date":"2012-05-24 22:23:36.000000000","tz":-360},"subject":"Adapt Swift for Webob 1.2b3","message":"Adapt Swift for Webob 1.2b3\n\nExisting Swift code targets Webob 1.0.8 and continues to work with\nWebob 1.1.1, using the compatibility and throwing a few deprecation\nwarnings. However, Webob 1.2 moved on from deprecation to outright\nremoval of certain API features that we need. Also, it moved to\nthe \"more Pythonic\" way of dealing with strings, e.g. all-unicode\nand border transformation.\n\nThis changeset produces a common Swift code that runs on both\nWebob 1.0.x and Webob 1.2.x. It is desirable for packagers working\nwith long-term Linux distributions.\n\nThe following compatibility issues were addressed:\n\n- str_params is gone. Use params instead.\n  This requires updating tests, too.\n\n- A UTF-8-encoded argument to parameter format\u003d leaks into HTTP header\n  Content-Type, and this tracebacks, because Webob does not allow UTF-8\n  in HTTP headers. The fix is to allow only \"xml\", \"json\", and \"plain\"\n  in format\u003d query argument. This is a compatibility change: previously\n  it was possible to set any garbage there, and receive garbage HTTP\n  headers with 200 OK code.\n\n- resp.environ is gone. Use req.environ instead.\n\n- req.range.ranges is no more, only one range is supported.\n\n- UTF-8 keys traceback all around. Operations such as quote()\n  and join() in particular cannot work unless arguments match.\n\n  Examples:\n\nTraceback (most recent call last):\n  File \"/usr/lib/python2.7/site-packages/eventlet/greenpool.py\", line 80, in _spawn_n_impl\n    func(*args, **kwargs)\n  File \"/usr/lib/python2.7/site-packages/eventlet/wsgi.py\", line 514, in process_request\n    proto \u003d self.protocol(socket, address, self)\n  File \"/usr/lib64/python2.7/SocketServer.py\", line 638, in __init__\n    self.handle()\n  File \"/usr/lib64/python2.7/BaseHTTPServer.py\", line 340, in handle\n    self.handle_one_request()\n  File \"/usr/lib/python2.7/site-packages/eventlet/wsgi.py\", line 232, in handle_one_request\n    self.handle_one_response()\n  File \"/usr/lib/python2.7/site-packages/eventlet/wsgi.py\", line 385, in handle_one_response\n    hook(self.environ, *args, **kwargs)\n  File \"/q/zaitcev/hail/swift-tip/swift/proxy/server.py\", line 2011, in posthooklogger\n    the_request \u003d quote(unquote(req.path))\n  File \"/usr/lib/python2.7/site-packages/webob/request.py\", line 482, in path\n    bpath \u003d bytes_(self.path_info, self.url_encoding)\n  File \"/usr/lib/python2.7/site-packages/webob/descriptors.py\", line 68, in fget\n    return req.encget(key, encattr\u003dencattr)\n  File \"/usr/lib/python2.7/site-packages/webob/request.py\", line 174, in encget\n    return val.decode(encoding)\n  File \"/usr/lib64/python2.7/encodings/utf_8.py\", line 16, in decode\n    return codecs.utf_8_decode(input, errors, True)\nUnicodeDecodeError: \u0027utf8\u0027 codec can\u0027t decode byte 0x80 in position 5: invalid start byte\n\nTraceback (most recent call last):\n  File \"/q/zaitcev/hail/swift-tip/swift/proxy/server.py\", line 1975, in handle_request\n    if not check_utf8(req.path_info):\n  File \"/q/zaitcev/hail/swift-tip/swift/common/constraints.py\", line 168, in check_utf8\n    string.decode(\u0027UTF-8\u0027)\n  File \"/usr/lib64/python2.7/encodings/utf_8.py\", line 16, in decode\n    return codecs.utf_8_decode(input, errors, True)\n\n  Basically, any attempt to access self.path_info blows up.\n\n  The only realistic fix that we found was forcing the Request\n  encoding to 1:1 or \"identity\" encoding (known as \u0027latin-1\u0027).\n\n- Same thing happens in all other servers: account, container\n  and object. However, it is feasible there to use the Pythonic\n  way and go all-unicode. The fix in this changeset is incomplete\n  in that it changes the 412 return code to 500 when Request\n  fails to parse before check_utf8 has a chance to trigger.\n  This is never seen by the user since Proxy server filters\n  requests for us. This may need fixing properly.\n\nThis version of the patch adds fixes for tempurl middleware\nsince it was re-accepted into the tree.\n\nBug: 959881\nChange-Id: Ic4af9aba66452214087efe2d664a7a9aca86bd7a\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/9e6bbf79b014d0a6cfdfbbcded7e419a8b1e5d6c"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/9e6bbf79b014d0a6cfdfbbcded7e419a8b1e5d6c"}]},"parents_data":[{"branch_name":"refs/heads/master","commit_id":"a74cd3b01b2d2d800ec29e78e872020ba508e54d","is_merged_in_target_branch":true}],"branch":"refs/heads/master"},"caceb20b9eefef60173ee0d0e586beb6075c3cb5":{"kind":"REWORK","_number":4,"created":"2012-06-02 03:56:33.000000000","uploader":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"ref":"refs/changes/69/7569/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/swift","ref":"refs/changes/69/7569/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/swift refs/changes/69/7569/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/swift refs/changes/69/7569/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/swift refs/changes/69/7569/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/swift refs/changes/69/7569/4"}}},"commit":{"parents":[{"commit":"783f16035a8e251d2138eb5bbaa459e9e4486d90","subject":"Fix starvation in object server with fast clients.","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/783f16035a8e251d2138eb5bbaa459e9e4486d90"}]}],"author":{"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","date":"2012-06-02 03:54:27.000000000","tz":-360},"committer":{"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","date":"2012-06-02 03:54:27.000000000","tz":-360},"subject":"Adapt Swift for Webob 1.2b3","message":"Adapt Swift for Webob 1.2b3\n\nExisting Swift code targets Webob 1.0.8 and continues to work with\nWebob 1.1.1, using the compatibility and throwing a few deprecation\nwarnings. However, Webob 1.2 moved on from deprecation to outright\nremoval of certain API features that we need. Also, it moved to\nthe \"more Pythonic\" way of dealing with strings, e.g. all-unicode\nand border transformation.\n\nThis changeset produces a common Swift code that runs on both\nWebob 1.0.x and Webob 1.2.x. It is desirable for packagers working\nwith long-term Linux distributions.\n\nThe following compatibility issues were addressed:\n\n- str_params is gone. Use params instead.\n  This requires updating tests, too.\n\n- A UTF-8-encoded argument to parameter format\u003d leaks into HTTP header\n  Content-Type, and this tracebacks, because Webob does not allow UTF-8\n  in HTTP headers. The fix is to allow only \"xml\", \"json\", and \"plain\"\n  in format\u003d query argument. This is a compatibility change: previously\n  it was possible to set any garbage there, and receive garbage HTTP\n  headers with 200 OK code.\n\n- resp.environ is gone. Use req.environ instead.\n\n- req.range.ranges is no more, only one range is supported.\n\n- UTF-8 keys traceback all around. Operations such as quote()\n  and join() in particular cannot work unless arguments match.\n\n  Basically, any attempt to access self.path_info blows up.\n\n  The only realistic fix that we found was forcing the Request\n  encoding to 1:1 or \"identity\" encoding (known as \u0027latin-1\u0027).\n\n- Same thing happens in all other servers: account, container\n  and object. However, it is feasible there to use the Pythonic\n  way and go all-unicode. The fix in this changeset is incomplete\n  in that it changes the 412 return code to 500 when Request\n  fails to parse before check_utf8 has a chance to trigger.\n  This is never seen by the user since Proxy server filters\n  requests for us. This may need fixing properly.\n\n- Webob 1.2b3 seems to have a bug that makes the following to blow up:\n    req.range \u003d req.range\n\n  This is because the property accessors produce Range object on\n  get, but do not take Range on put.\n\nThis version of the patch adds fixes for tempurl middleware\nsince it was re-accepted into the tree.\n\nNot all functional tests appear to pass with this. We are working\non sorting it out. All unit tests pass.\n\nBug: 959881\nChange-Id: Ic4af9aba66452214087efe2d664a7a9aca86bd7a\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/caceb20b9eefef60173ee0d0e586beb6075c3cb5"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/swift/commit/caceb20b9eefef60173ee0d0e586beb6075c3cb5"}]},"parents_data":[{"branch_name":"refs/heads/master","commit_id":"783f16035a8e251d2138eb5bbaa459e9e4486d90","is_merged_in_target_branch":true,"change_id":"I8549adfb4a198739b80979236c27b76df607eebf","change_number":8064,"patch_set_number":1,"change_status":"MERGED"}],"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
