{"push_id":817517838,"size":90,"distinct_size":90,"ref":"refs/heads/master","head":"84687ee3249bd4c358bd1528b0ce1aec78a648f1","before":"59550070f96a9baed2510a3a83f94ca79ebfc497","commits":[{"sha":"5b246e875fe9ac3d764ea581ad52b04238f5bcc8","author":{"email":"b85786341dcda8a68c3ff8c714cda3ae712b6d6e@lab.ntt.co.jp","name":"Kota Tsuyuzaki"},"message":"Fix EC range GET/COPY handling\n\nWhen range GET (or COPY) for an EC object requested, if the requested range\nstarts from more than last segments alignment (i.e.\nceil(object_size/segment_size) * segment_size), proxy server will return\nthe original content length w/o body, though Swift should return an error\nmassage as a body and the length of message as the content length.\nThe current behavior will cause stuck on some client. (e.g. curl)\n\nThis patch fixes that proxy enables to return correct response, even if such\nan over range requested.\n\nCo-Authored-By: Clay Gerrard <clay.gerrard@gmail.com>\n\nChange-Id: I21f81c842f563ac4dddc69011ed759b744bb20bd\nCloses-Bug: #1475499","distinct":true,"url":"https://api.github.com/repos/notmyname/swift/commits/5b246e875fe9ac3d764ea581ad52b04238f5bcc8"},{"sha":"4de6e32bcaaa1ae1ac437c8d4f0ebd722b91f712","author":{"email":"b85786341dcda8a68c3ff8c714cda3ae712b6d6e@lab.ntt.co.jp","name":"Kota Tsuyuzaki"},"message":"Change POST container semantics\n\nTo achieve last modified header on GETorHEAD container\nwe should allow POST container to overwrite put-timestamp.\nThat is because following patches will change the the put-timestamp\nvalue semantics in both container db and account db as \"container\nlast modified\".\n\nIf we achieved this and followings, we will be able to retrieve the\ncontainer timestamp which is suggested when the container metadata\nmodified.\n\nExample:\n- Create a container.\n- Change the ACL with POST container. (e.g. x-container-read)\n- After that, we can know the container was changed by comparing\n  between the timestamp from container creation and the last modified\n  generated from put-timestamp.\n\nChange-Id: I1a545fcd1896798dfa7cb5e5af97c78f5d7d7e4d","distinct":true,"url":"https://api.github.com/repos/notmyname/swift/commits/4de6e32bcaaa1ae1ac437c8d4f0ebd722b91f712"},{"sha":"5b01c5eadc3a13607d2581a55007700fca0b00af","author":{"email":"f20163438d79aeb034c6e13ae8e198cbd6734dd2@us.ibm.com","name":"Bill Huber"},"message":"Add unit test for container_update for unmounted device\n\nThis unit test case gains coverage for container/update.py\nwhere a device (i.e. sda1) is not mounted and the code\nresponds with a warning logger that the device is not\nmounted and continues.  Coverage increases 2% as a result.\n\nChange-Id: I33d247a930b28604093df4ade1ce7dbbd24aac54","distinct":true,"url":"https://api.github.com/repos/notmyname/swift/commits/5b01c5eadc3a13607d2581a55007700fca0b00af"},{"sha":"4765189ef3f67b3f709c3141f222e15c6d89a62d","author":{"email":"e0d1a1efbf8c2a4a153c6f2e9eb772b10f8de1f1@ca.ibm.com","name":"Carlos Cavanna"},"message":"Improving statistics sent to Graphite.\n\nCurrently, statistics are organized by command. However, it would also be\nuseful to display statistics organized by policy. Different policies may be\nbased on different storage properties (ie, faster disks).\nWith this change, all the statistics for object timers will be sent per policy\nas well.\nPolicy statistics reporting will use policy index and the name in Graphite will\nshow as proxy-server.object.policy.<policy-index>.<verb>, etc.\nUpdated unit tests for per-policy stat reporting and added new unit tests for\ninvalid cases.\nUpdated documentation in the Administrator's Guide to reflect this new\naggregation.\n\nChange-Id: Id70491e4833791a3fb8ff385953d69018514cd9c","distinct":true,"url":"https://api.github.com/repos/notmyname/swift/commits/4765189ef3f67b3f709c3141f222e15c6d89a62d"},{"sha":"ae129bf5e8c918efd8ee66279f98ee85e7c97b24","author":{"email":"b85786341dcda8a68c3ff8c714cda3ae712b6d6e@lab.ntt.co.jp","name":"Kota Tsuyuzaki"},"message":"eventlet.posthook related code needn't anymore\n\nIn the past, older Swift seemed to use eventlet.posthooks scheme for the\nlogging on proxy with posthooklogger method. However, for now, Swift\nattaches no method to eventlet.posthooks everywhere so we don't have\nto maintain the posthooks anymore.\n\nChange-Id: Ie63941a202d448532d980252a4d25575f8edab9c","distinct":true,"url":"https://api.github.com/repos/notmyname/swift/commits/ae129bf5e8c918efd8ee66279f98ee85e7c97b24"},{"sha":"17efa343c605d0361b3f423696babbab3f3d972d","author":{"email":"b85786341dcda8a68c3ff8c714cda3ae712b6d6e@lab.ntt.co.jp","name":"Kota Tsuyuzaki"},"message":"Fix EC GET backend stream iteration state\n\nIn EC case, When GET object requested, proxy-server always makes a log\nline \"Client disconnected on read\" even though the request succeeded.\n\nThat is because ECAppIter class doesn't maintain a bunch of backend\nstream when closing the app_iter. It will cause unfortunately\nGeneratorExit on backend stream ResumingGetter.\n\nThis patch fixes to set non_client_disconnected to propagate the state\nto the backend streams when the range iteration stopped successful.\n\nCo-Authored-By: Clay Gerrard <clay.gerrard@gmail.com>\n\nChange-Id: I77af9807816bea1444d66534a17e2a210bcf09f8\nCloses-Bug: #1472201","distinct":true,"url":"https://api.github.com/repos/notmyname/swift/commits/17efa343c605d0361b3f423696babbab3f3d972d"},{"sha":"8086a0e53406dc95856df2d3e015d3eaaf81380a","author":{"email":"0bb77f197006485a08470695af4d30d45f8c97bc@intel.com","name":"Tushar Gohad"},"message":"Restrict PyECLib version to 1.0.7\n\nv1.0.9 rev of PyECLib replaces Jerasure with a native EC\nimplementation (liberasurecode_rs_vand) as the default\nEC scheme.  Going forward, Jerasure will not be bundled\nwith PyPI version of PyECLib as it used to be, until\nv1.0.7.\n\nThis is an interim change to Swift requirements until we\nget v1.0.9 PyECLib included into global-requirements and\nready patches that change Swift default ec_type (for doc,\nconfig samples and unit tests) from \"jerasure_rs_vand\"\nto \"liberasurecode_rs_vand.\"\n\nChange-Id: Ica4fee2cdea2bc7f5edd0e51ad637a4457faf3b4","distinct":true,"url":"https://api.github.com/repos/notmyname/swift/commits/8086a0e53406dc95856df2d3e015d3eaaf81380a"},{"sha":"c690bcb68331818a04c94741b25f40cc40f7b3c4","author":{"email":"a8bbc4e58df4ad2d5b003be222d7651a3c25142a@lab.ntt.co.jp","name":"Kazuhiro MIYAHARA"},"message":"Fix dispersion-reports error message\n\nThis patch fixes Swift to show message\n\"No objects to query. Has swift-dispersion-populate been run?\"\nfor \"swift-dispersion-report —object-only”\nwith no container for object dispersion.\n\nChange-Id: I82da56709cfc296a27f5180681709bc56adbc13d\nCloses-Bug: #1468120","distinct":true,"url":"https://api.github.com/repos/notmyname/swift/commits/c690bcb68331818a04c94741b25f40cc40f7b3c4"},{"sha":"58a10a5fffec69304d7bcce0f1c43bd2a9f9ff52","author":{"email":"3e53127f3ad0d91a1ed4651b133d989b076d9d27@hp.com","name":"Alistair Coles"},"message":"Add test that a tempurl POST cannot set a DLO manifest header\n\nFollow up to [1] to add tests for tempurl POSTs not being allowed\nto set a DLO manifest header.\n\n[1] I11e68830009d3f6bff44ae4011a41b67139146f6\n\nChange-Id: I7c0ad5a936f71e56c599b8495a586913d3334422\nRelated-Bug: 1453948","distinct":true,"url":"https://api.github.com/repos/notmyname/swift/commits/58a10a5fffec69304d7bcce0f1c43bd2a9f9ff52"},{"sha":"bb5e38569ee25573673223bf933ba81e3f36e2ec","author":{"email":"d95b56ce41a2e1ac4cecdd398defd7414407cc08@review.openstack.org","name":"Jenkins"},"message":"Merge \"Restrict PyECLib version to 1.0.7\"","distinct":true,"url":"https://api.github.com/repos/notmyname/swift/commits/bb5e38569ee25573673223bf933ba81e3f36e2ec"},{"sha":"893f30c61d280804e417790dd34ba7bc3fb4f6fc","author":{"email":"406c10c87a7387f3d87f3c8a56f16d3548de329c@intel.com","name":"paul luse"},"message":"EC GET path: require fragments to be of same set\n\nAnd if they are not, exhaust the node iter to go get more.  The\nproblem without this implementation is a simple overwrite where\na GET follows before the handoff has put the newer obj back on\nthe 'alive again' node such that the proxy gets n-1 fragments\nof the newest set and 1 of the older.\n\nThis patch bucketizes the fragments by etag and if it doesn't\nhave enough continues to exhaust the node iterator until it\nhas a large enough matching set.\n\nChange-Id: Ib710a133ce1be278365067fd0d6610d80f1f7372\nCo-Authored-By: Clay Gerrard <clay.gerrard@gmail.com>\nCo-Authored-By: Alistair Coles <alistair.coles@hp.com>\nCloses-Bug: 1457691","distinct":true,"url":"https://api.github.com/repos/notmyname/swift/commits/893f30c61d280804e417790dd34ba7bc3fb4f6fc"},{"sha":"993ee4e37af1961adba2047d5aa2eb210e423eb3","author":{"email":"1e658a7fe58d217956aea67ad75f543d1e5af5f6@nttdata.co.jp","name":"nakagawamsa"},"message":"Remove duplicate X-Backend-Storage-Policy-Index key\n\nThere is duplicate 'X-Backend-Storage-Policy-Index' dictionary key in unit.obj.test_server.py.\nOne key has fixed policy index value, and another has random value.\nUnittest should done with random policy index, so remove key which is set fixed value.\n\nChange-Id: Ic91fcf44d48297d0feee33c928ca682def9790a3","distinct":true,"url":"https://api.github.com/repos/notmyname/swift/commits/993ee4e37af1961adba2047d5aa2eb210e423eb3"},{"sha":"05de1305a903ee4ce9c8c50fde53c552d5b90d51","author":{"email":"5908cf536e9267f3c74e45326928d92a7461a903@gmail.com","name":"Clay Gerrard"},"message":"Make ssync_sender send valid chunked requests\n\nThe connect method of ssync_sender tells the remote connection that it's\ngoing to send a valid HTTP chunked request, but if the remote end needs\nto respond with an error of any kind sender throws HTTP right out the\nwindow, picks up his ball, and closes the socket down hard - much to the\nsurprise of the eventlet.wsgi server who up to this point had been\nplaying along quite nicely with this 'SSYNC' nonsense assuming that\neveryone here is consenting mature adults.\n\nIf you're going to make a \"Transfer-Encoding: chunked\" request have the\ngood decency to finish the job with a proper '0\\r\\n\\r\\n'. [1]\n\nN.B. It might be possible to handle an error status during the\ninitialize_request phase with some sort of 100-continue support, but\nhonestly it's not entirely clear to me when the server isn't going to\nclose the connection if the client is still expected to send the body\n[2] - further if the error comes later during missing_check or updates\nwe'll for sure want to send the chunk transfer termination line before\nwe close down the socket and this way we cover both.\n\n1. Really, eventlet.wsgi shouldn't be so blasted brittle about this [3]\n2. https://lists.w3.org/Archives/Public/ietf-http-wg/2005AprJun/0007.html\n3. https://github.com/eventlet/eventlet/commit/c3ce3eef0b4d0dfdbfb1ec0186d4bb204fb8ecd5\n\nCloses-Bug #1489587\nChange-Id: Ic17c6c3075553f8cf6ef6213e62a00282f0d01cf","distinct":true,"url":"https://api.github.com/repos/notmyname/swift/commits/05de1305a903ee4ce9c8c50fde53c552d5b90d51"},{"sha":"ec800bc534a78c898bf674d29e2b389e6790604b","author":{"email":"d95b56ce41a2e1ac4cecdd398defd7414407cc08@review.openstack.org","name":"Jenkins"},"message":"Merge \"Fix EC GET backend stream iteration state\"","distinct":true,"url":"https://api.github.com/repos/notmyname/swift/commits/ec800bc534a78c898bf674d29e2b389e6790604b"},{"sha":"524c89b7eeff037b8a6b421888771e15f98c2da2","author":{"email":"b1c1d8736f20db3fb6c1c66bb1455ed43909f0d8@not.mn","name":"John Dickinson"},"message":"Updated CHANGELOG, AUTHORS, and .mailmap for 2.4.0 release.\n\nChange-Id: Ic6301146b839c9921bb85c4f4c1e585c9ab66661","distinct":true,"url":"https://api.github.com/repos/notmyname/swift/commits/524c89b7eeff037b8a6b421888771e15f98c2da2"},{"sha":"3b8755098a1786c5447abf158bd686293a82977c","author":{"email":"bbc046deb6b230bf2fb4644ac0f266475e036fa6@gmail.com","name":"janonymous"},"message":"Replace a / b with a // b to use integer division where needed\n\nChange-Id: I72c81faa62786e140b0de00e3a04934bf1b5adbd","distinct":true,"url":"https://api.github.com/repos/notmyname/swift/commits/3b8755098a1786c5447abf158bd686293a82977c"},{"sha":"51819f1179db246b3d2b9c6fd660e0f81a383db5","author":{"email":"d95b56ce41a2e1ac4cecdd398defd7414407cc08@review.openstack.org","name":"Jenkins"},"message":"Merge \"Updated CHANGELOG, AUTHORS, and .mailmap for 2.4.0 release.\"","distinct":true,"url":"https://api.github.com/repos/notmyname/swift/commits/51819f1179db246b3d2b9c6fd660e0f81a383db5"},{"sha":"d077b0cd81f8b2a841a5e848510557e324e61a7a","author":{"email":"d95b56ce41a2e1ac4cecdd398defd7414407cc08@review.openstack.org","name":"Jenkins"},"message":"Merge \"Remove duplicate X-Backend-Storage-Policy-Index key\"","distinct":true,"url":"https://api.github.com/repos/notmyname/swift/commits/d077b0cd81f8b2a841a5e848510557e324e61a7a"},{"sha":"cde92d98dceb70e58ee649e9d62a110765942b41","author":{"email":"d95b56ce41a2e1ac4cecdd398defd7414407cc08@review.openstack.org","name":"Jenkins"},"message":"Merge \"Make ssync_sender send valid chunked requests\"","distinct":true,"url":"https://api.github.com/repos/notmyname/swift/commits/cde92d98dceb70e58ee649e9d62a110765942b41"},{"sha":"615c7a204b9386e05c5bab658bfe96766ad1e680","author":{"email":"867ea38fbd216248e9799c5edab87e309ec6501a@softlayer.com","name":"Brian Cline"},"message":"Adds useful dispersion info from changelog\n\nChange-Id: I1a45088fc32620b02ff9a754b02ec1eb75a59d6e","distinct":true,"url":"https://api.github.com/repos/notmyname/swift/commits/615c7a204b9386e05c5bab658bfe96766ad1e680"}]}