)]}'
{"id":"openstack%2Fliberasurecode~393595","triplet_id":"openstack%2Fliberasurecode~master~Icee788a0931fe692fe0de31fabc4ba450e338a87","project":"openstack/liberasurecode","branch":"master","topic":"isa-l-invert-matrix-check","hashtags":[],"change_id":"Icee788a0931fe692fe0de31fabc4ba450e338a87","subject":"Fix error handling on gf_ivnert_matrix in isa-l backend","status":"MERGED","created":"2016-11-04 05:33:48.000000000","updated":"2016-11-10 20:25:20.000000000","submitted":"2016-11-09 23:36:02.000000000","submitter":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"total_comment_count":1,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"c06a04ef044d6dd19e5aeebc2ab294b21fbb7f44","_number":393595,"virtual_id_number":393595,"owner":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"all":[{"value":0,"date":"2016-11-10 04:24:11.000000000","post_submit":true,"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},{"value":0,"_account_id":8433,"name":"Kevin Greenan","email":"kmgreen2@gmail.com","username":"kmg"},{"value":2,"date":"2016-11-09 23:36:02.000000000","post_submit":true,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},{"value":0,"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"value":0,"_account_id":7485,"name":"Tushar Gohad","email":"tushar.gohad@intel.com","username":"tsg"}],"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":{"approved":{"_account_id":7485,"name":"Tushar Gohad","email":"tushar.gohad@intel.com","username":"tsg"},"recommended":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"all":[{"value":0,"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},{"value":1,"date":"2016-11-09 23:28:55.000000000","permitted_voting_range":{"min":1,"max":2},"_account_id":8433,"name":"Kevin Greenan","email":"kmgreen2@gmail.com","username":"kmg"},{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},{"value":1,"date":"2016-11-09 23:28:55.000000000","permitted_voting_range":{"min":1,"max":2},"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"value":2,"date":"2016-11-09 23:28:55.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":7485,"name":"Tushar Gohad","email":"tushar.gohad@intel.com","username":"tsg"}],"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":{"approved":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"all":[{"value":0,"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},{"value":0,"_account_id":8433,"name":"Kevin Greenan","email":"kmgreen2@gmail.com","username":"kmg"},{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":1,"date":"2016-11-09 23:30:23.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},{"value":0,"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"value":0,"_account_id":7485,"name":"Tushar Gohad","email":"tushar.gohad@intel.com","username":"tsg"}],"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":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},{"_account_id":7485,"name":"Tushar Gohad","email":"tushar.gohad@intel.com","username":"tsg"},{"_account_id":8433,"name":"Kevin Greenan","email":"kmgreen2@gmail.com","username":"kmg"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2016-11-09 20:59:00.000000000","updated_by":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"reviewer":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"state":"REVIEWER"},{"updated":"2016-11-09 22:49:12.000000000","updated_by":{"_account_id":7485,"name":"Tushar Gohad","email":"tushar.gohad@intel.com","username":"tsg"},"reviewer":{"_account_id":7485,"name":"Tushar Gohad","email":"tushar.gohad@intel.com","username":"tsg"},"state":"REVIEWER"},{"updated":"2016-11-09 22:55:11.000000000","updated_by":{"_account_id":8433,"name":"Kevin Greenan","email":"kmgreen2@gmail.com","username":"kmg"},"reviewer":{"_account_id":8433,"name":"Kevin Greenan","email":"kmgreen2@gmail.com","username":"kmg"},"state":"REVIEWER"},{"updated":"2016-11-09 23:30:23.000000000","updated_by":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"reviewer":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"state":"REVIEWER"},{"updated":"2016-11-09 23:36:02.000000000","updated_by":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"reviewer":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"state":"REVIEWER"}],"messages":[{"id":"ef7dc62646b458d2e513f3fb8bf741631458e055","author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"date":"2016-11-04 05:33:48.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"7ece7081c62f2817a724d94b9136b58c87e71f1f","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-11-04 05:37:04.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-liberasurecode-unit http://logs.openstack.org/95/393595/1/check/gate-liberasurecode-unit/c3b79ae/ : SUCCESS in 3m 02s","accounts_in_message":[],"_revision_number":1},{"id":"8b116b05204cf9bcd1ed90e2f1789481db4e5929","author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"date":"2016-11-04 05:39:45.000000000","message":"Patch Set 1: Workflow-1\n\n(1 comment)\n\nUnexpected tabs included, will fix soon.","accounts_in_message":[],"_revision_number":1},{"id":"50b1559dfb21d0baea5f80ea94319b86342152da","author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"date":"2016-11-04 05:43:05.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"fed445dd0972a1b6bd9f7a94659570e813c4e482","author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"date":"2016-11-04 05:45:23.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"fbac7b31b5c8c3ca9d5253c2addc45cf21941ea0","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-11-04 05:48:35.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-liberasurecode-unit http://logs.openstack.org/95/393595/3/check/gate-liberasurecode-unit/393e30f/ : SUCCESS in 3m 01s","accounts_in_message":[],"_revision_number":3},{"id":"695bd6157277a31dd73ae53531e4973269a9c83b","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2016-11-05 00:03:27.000000000","message":"Patch Set 3:\n\nso I setup vsaio with 12 disks so i could have a 6/5 policy\n\nI found the following erase lists:\n\n(\u0027isa_l_rs_vand\u0027, 6, 5) [[0, 3, 5, 8, 9], [0, 2, 5, 7, 8]] failed!\n\nand when I rm frags:\n\n    ubuntu@saio:~$ for fname in $(find /srv/node*/sdb*/objects* | egrep \".*#(0|3|5|8|9)*#d.data$\"); do echo $fname; rm -fr $(dirname $(dirname $(dirname $fname))); done\n    /srv/node1/sdb5/objects-1/895/904/dfc4b6c61f5cab3285844e1e11699904/1478303131.70140#8#d.data\n    /srv/node2/sdb10/objects-1/895/904/dfc4b6c61f5cab3285844e1e11699904/1478303131.70140#9#d.data\n    /srv/node2/sdb6/objects-1/895/904/dfc4b6c61f5cab3285844e1e11699904/1478303131.70140#3#d.data\n    /srv/node3/sdb7/objects-1/895/904/dfc4b6c61f5cab3285844e1e11699904/1478303131.70140#0#d.data\n    /srv/node4/sdb4/objects-1/895/904/dfc4b6c61f5cab3285844e1e11699904/1478303131.70140#5#d.data\n\nI do indeed get back garbage:\n\n    ubuntu@saio:~$ swift download ectest vagrant/.scratch/swift.tar.gz -o delete.me\n    Error downloading object \u0027ectest/vagrant/.scratch/swift.tar.gz\u0027: u\u0027Error downloading vagrant/.scratch/swift.tar.gz: md5sum !\u003d etag, 4f327eed4b9b9210d13a30c9441fefa1 !\u003d 5b60a22fcf65a356391cbdb08b9140d8\u0027\n\n... and of course reconstructor makes it all worse","accounts_in_message":[],"_revision_number":3},{"id":"5f1bf2a387b770f4321d6bad294f8f1341bfc80b","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2016-11-09 20:59:00.000000000","message":"Patch Set 3: Code-Review+1\n\nthis looks great!\n\nWhen I setup the same situation as before on my vsaio with this change; current pyeclib master gives me a good clean 500 [1]:\n\n  Nov  9 20:15:42 saio liberasurecode[15614]: Encountered error in backend decode function!\n  Nov  9 20:15:42 saio proxy-server: Error decoding fragments for \u0027/AUTH_test/ectest/swift.tar.gz\u0027: #012Traceback (most recent call last):#012  File \"/vagrant/swift/swift/proxy/controllers/obj.py\", line 1291, in _decode_segments_from_fragments#012    segment \u003d self.policy.pyeclib_driver.decode(fragments)#012  File \"/vagrant/pyeclib/pyeclib/ec_iface.py\", line 259, in decode#012    force_metadata_checks)#012  File \"/vagrant/pyeclib/pyeclib/core.py\", line 88, in decode#012    ranges, force_metadata_checks)#012ECDriverError: pyeclib_c_decode ERROR: Unknown error. Please inspect syslog for liberasurecode error report. (txn: txd29f1f6aa67b4a059b7ff-00582383ed) (client_ip: 127.0.0.1)\n  Nov  9 20:15:42 saio proxy-server: ERROR Unhandled exception in request: #012Traceback (most recent call last):#012  File \"/vagrant/swift/swift/proxy/server.py\", line 414, in handle_request#012    return handler(req)#012  File \"/vagrant/swift/swift/proxy/controllers/base.py\", line 268, in wrapped#012    return func(*a, **kw)#012  File \"/vagrant/swift/swift/proxy/controllers/obj.py\", line 201, in GET#012    return self.GETorHEAD(req)#012  File \"/vagrant/swift/swift/proxy/controllers/obj.py\", line 189, in GETorHEAD#012    resp \u003d self._get_or_head_response(req, node_iter, partition, policy)#012  File \"/vagrant/swift/swift/proxy/controllers/obj.py\", line 2270, in _get_or_head_response#012    app_iter.kickoff(req, resp)#012  File \"/vagrant/swift/swift/proxy/controllers/obj.py\", line 958, in kickoff#012    self.stashed_iter \u003d reiterate(self._real_iter(req, resp.headers))#012  File \"/vagrant/swift/swift/common/utils.py\", line 3296, in reiterate#012    chunk \u003d next(iterator)#012  File \"/vagrant/swift/swift/common/utils.py\", line 3972, in string_along#012    for x in useful_iter:#012  File \"/vagrant/swift/swift/proxy/controllers/obj.py\", line 1227, in _iter_one_range#012    for i, next_seg in enumerate(segment_iter):#012  File \"/vagrant/swift/swift/proxy/controllers/obj.py\", line 1291, in _decode_segments_from_fragments#012    segment \u003d self.policy.pyeclib_driver.decode(fragments)#012  File \"/vagrant/pyeclib/pyeclib/ec_iface.py\", line 259, in decode#012    force_metadata_checks)#012  File \"/vagrant/pyeclib/pyeclib/core.py\", line 88, in decode#012    ranges, force_metadata_checks)#012ECDriverError: pyeclib_c_decode ERROR: Unknown error. Please inspect syslog for liberasurecode error report. (txn: txd29f1f6aa67b4a059b7ff-00582383ed) (client_ip: 127.0.0.1)\n  Nov  9 20:15:42 saio proxy-server: 127.0.0.1 127.0.0.1 09/Nov/2016/20/15/42 GET /v1/AUTH_test/ectest/swift.tar.gz HTTP/1.0 500 - python-swiftclient-3.1.1.dev23 AUTH_tkb1e5f5f84... - 125 - txd29f1f6aa67b4a059b7ff-00582383ed - 0.4778 - - 1478722541.868649006 1478722542.346426964 1\n\nThe client reads the 500 loud and clear and does his exponential back off thing (which has a decent shot of being exactly what you want unless you\u0027re in the patholoical case where the frags you have available are exactly the degenerate set!)\n\n  ubuntu@saio:~$ swift download ectest swift.tar.gz -o delete.me\n  Error downloading object \u0027ectest/swift.tar.gz\u0027: Object GET failed: http://saio:8080/v1/AUTH_test/ectest/swift.tar.gz 500 Internal Error  [first 60 chars of response] \u003chtml\u003e\u003ch1\u003eInternal Error\u003c/h1\u003e\u003cp\u003eThe server has either erred \n\nI don\u0027t seem to be able to +2 this change, and I\u0027m not sure I know what I\u0027m doing anyway - but the change looks sane.  Tests fail like this if I revert it:\n\n  ...\n  ok 80 - test_verify_stripe_metadata_frag_idx_invalid: isa_l_rs_vand (idx\u003d0)\n  lt-liberasurecode_test: liberasurecode_test.c:1395: test_decode_reconstruct_specific_error_case: Assertion `rc \u003d\u003d -1\u0027 failed.\n  Makefile:961: recipe for target \u0027test\u0027 failed\n  make: *** [test] Aborted (core dumped)\n\n... which I\u0027m sorta buying it?  test_decode_reconstruct_specific_error_case is the same name as the new test, that line 1395 is an assert on the return code from liberasurecode_decode - and that looks basically like pyeclib is doing -\u003e https://github.com/openstack/pyeclib/blob/ab26abf78c5be0dc72dc4a6c91a13536cd049223/src/c/pyeclib_c/pyeclib_c.c#L903\n\nI may not know much, but I\u0027m pretty sure I\u0027d rather merge this change than not merge it?\n\n1. I think maybe there\u0027s some funny business going on with the proxy-\u003eobj connection cleanup but I\u0027m calling that an unrelated distraction for now -\u003e https://gist.github.com/clayg/4a1c742bf2ba6f02dd90d10da7f24a92","accounts_in_message":[],"_revision_number":3},{"id":"5be0df12a7afb753513fc78c1178d2d514d10f6e","author":{"_account_id":7485,"name":"Tushar Gohad","email":"tushar.gohad@intel.com","username":"tsg"},"date":"2016-11-09 22:49:12.000000000","message":"Patch Set 3: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":3},{"id":"3e9f68b453393a10660af79c526db5be8571efe8","author":{"_account_id":8433,"name":"Kevin Greenan","email":"kmgreen2@gmail.com","username":"kmg"},"date":"2016-11-09 22:55:11.000000000","message":"Patch Set 3: Code-Review+1","accounts_in_message":[],"_revision_number":3},{"id":"1d3a59d333796e666d4cb03a57bc182f2f5e1840","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-11-09 23:17:41.000000000","message":"Patch Set 3: Verified-1\n\nMerge Failed.\n\nThis change or one of its cross-repo dependencies was unable to be automatically merged with the current state of its repository. Please rebase the change and upload a new patchset.","accounts_in_message":[],"_revision_number":3},{"id":"6810840566396791f00a2e6d758b8de1930316dd","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2016-11-09 23:28:55.000000000","message":"Patch Set 4: Patch Set 3 was rebased","accounts_in_message":[],"_revision_number":3},{"id":"257aa821ec718ecc733a1e9eb82bd5cbbce400b8","author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"date":"2016-11-09 23:30:23.000000000","message":"Patch Set 4: Workflow+1","accounts_in_message":[],"_revision_number":4},{"id":"bc5fb462c77c50c9649e9dfe51af5601195c46c7","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-11-09 23:32:47.000000000","message":"Patch Set 4: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-liberasurecode-unit http://logs.openstack.org/95/393595/4/check/gate-liberasurecode-unit/5022ce5/ : SUCCESS in 3m 41s","accounts_in_message":[],"_revision_number":4},{"id":"2a050650a60cb339970851039a25c2ab4b897686","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-11-09 23:32:58.000000000","message":"Patch Set 4: -Verified\n\nStarting gate jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":4},{"id":"c96e35fa93a54e695d6bac7964048845626fee2d","date":"2016-11-09 23:36:02.000000000","message":"Change has been successfully merged into the git repository by Jenkins","accounts_in_message":[],"_revision_number":4},{"id":"06a2ea712db230c161c99b30c947226801e8d0cc","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2016-11-09 23:36:02.000000000","message":"Patch Set 4: Verified+2\n\nBuild succeeded (gate pipeline).\n\n- gate-liberasurecode-unit http://logs.openstack.org/95/393595/4/gate/gate-liberasurecode-unit/018e27e/ : SUCCESS in 3m 03s","accounts_in_message":[],"_revision_number":4},{"id":"5a99399ae1b4b5fa7542abe84a38326dc83f3cc5","author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"date":"2016-11-10 04:24:11.000000000","message":"Patch Set 4:\n\n@Clay\n\nI added small comments on your gist for syslog. Please let me make sure where they come from.","accounts_in_message":[],"_revision_number":4},{"id":"5b3c2c98827865eb2485f3bf026835aeb15711be","author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"date":"2016-11-10 20:25:20.000000000","message":"Patch Set 4:\n\nyes, you suggested the output was unittest output and I agree - nothing to worry about","accounts_in_message":[],"_revision_number":4}],"current_revision_number":4,"current_revision":"74eaa374c107d1a9e140fc7a8c1bf91386619940","revisions":{"b89968a0ea3f3f9755a0346afeb7e7a43cab8cae":{"kind":"REWORK","_number":1,"created":"2016-11-04 05:33:48.000000000","uploader":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"ref":"refs/changes/95/393595/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/liberasurecode","ref":"refs/changes/95/393595/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/liberasurecode refs/changes/95/393595/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/liberasurecode refs/changes/95/393595/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/liberasurecode refs/changes/95/393595/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/liberasurecode refs/changes/95/393595/1"}}},"commit":{"parents":[{"commit":"1cd0b05bd8f9b71d18e374985284c495cbcb2f86","subject":"Fix liberasurecode skipping a bunch of invalid_args tests","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/liberasurecode/commit/1cd0b05bd8f9b71d18e374985284c495cbcb2f86"}]}],"author":{"name":"Kota Tsuyuzaki","email":"tsuyuzaki.kota@lab.ntt.co.jp","date":"2016-11-04 02:49:49.000000000","tz":-420},"committer":{"name":"Kota Tsuyuzaki","email":"tsuyuzaki.kota@lab.ntt.co.jp","date":"2016-11-04 05:32:54.000000000","tz":-420},"subject":"Fix error handling on gf_ivnert_matrix in isa-l backend","message":"Fix error handling on gf_ivnert_matrix in isa-l backend\n\nCurrent isa-l has possibility to return corrupted decoded data or\ncorrupted reconstructed data on decode/reconstruct without error code.\n\nThat is from the specification of isa-l rs vandermond matrix discussed\nat [1]. With many # of parities cases, we may hit the case above due to\nfailing to get the inverse matrix from the encode matrix.\n\nThe isa-l maintener gbtucker suggests a good way to detect the failing\ninverse matrix, that we should handle the return value gf_invert_matrix.\nIf gf_invert_matrix returns not 0, we should stop to decode/reconstruct\nand return failure return code to the caller immediately. Otherwise, the\ncaller regards the garbage data/fragment as correct one.\n\nAnd this patch adds the specific test case we can hit the issue (it\nhappens not so general).\n\n1: https://github.com/01org/isa-l/issues/10\n\nChange-Id: Icee788a0931fe692fe0de31fabc4ba450e338a87\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/liberasurecode/commit/b89968a0ea3f3f9755a0346afeb7e7a43cab8cae"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/liberasurecode/commit/b89968a0ea3f3f9755a0346afeb7e7a43cab8cae"}]},"branch":"refs/heads/master"},"921b211f3ce77018f2d0c2a30216f67e3285fa5f":{"kind":"REWORK","_number":2,"created":"2016-11-04 05:43:05.000000000","uploader":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"ref":"refs/changes/95/393595/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/liberasurecode","ref":"refs/changes/95/393595/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/liberasurecode refs/changes/95/393595/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/liberasurecode refs/changes/95/393595/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/liberasurecode refs/changes/95/393595/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/liberasurecode refs/changes/95/393595/2"}}},"commit":{"parents":[{"commit":"1cd0b05bd8f9b71d18e374985284c495cbcb2f86","subject":"Fix liberasurecode skipping a bunch of invalid_args tests","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/liberasurecode/commit/1cd0b05bd8f9b71d18e374985284c495cbcb2f86"}]}],"author":{"name":"Kota Tsuyuzaki","email":"tsuyuzaki.kota@lab.ntt.co.jp","date":"2016-11-04 02:49:49.000000000","tz":-420},"committer":{"name":"Kota Tsuyuzaki","email":"tsuyuzaki.kota@lab.ntt.co.jp","date":"2016-11-04 05:41:03.000000000","tz":-420},"subject":"Fix error handling on gf_ivnert_matrix in isa-l backend","message":"Fix error handling on gf_ivnert_matrix in isa-l backend\n\nCurrent isa-l has possibility to return corrupted decoded data or\ncorrupted reconstructed data on decode/reconstruct without error code.\n\nThat is from the specification of isa-l rs vandermond matrix discussed\nat [1]. With many # of parities cases, we may hit the case above due to\nfailing to get the inverse matrix from the encode matrix.\n\nThe isa-l maintener gbtucker suggests a good way to detect the failing\ninverse matrix, that we should handle the return value gf_invert_matrix.\nIf gf_invert_matrix returns not 0, we should stop to decode/reconstruct\nand return failure return code to the caller immediately. Otherwise, the\ncaller regards the garbage data/fragment as correct one.\n\nAnd this patch adds the specific test case we can hit the issue (it\nhappens not so general).\n\n1: https://github.com/01org/isa-l/issues/10\n\nRelated-Change: I6eb150d9d0c3febf233570fa7729f9f72df2e9be\nChange-Id: Icee788a0931fe692fe0de31fabc4ba450e338a87\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/liberasurecode/commit/921b211f3ce77018f2d0c2a30216f67e3285fa5f"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/liberasurecode/commit/921b211f3ce77018f2d0c2a30216f67e3285fa5f"}]},"branch":"refs/heads/master"},"34026aa8a300129f66ed82e2ca6f623732c1d3a6":{"kind":"REWORK","_number":3,"created":"2016-11-04 05:45:23.000000000","uploader":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"ref":"refs/changes/95/393595/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/liberasurecode","ref":"refs/changes/95/393595/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/liberasurecode refs/changes/95/393595/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/liberasurecode refs/changes/95/393595/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/liberasurecode refs/changes/95/393595/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/liberasurecode refs/changes/95/393595/3"}}},"commit":{"parents":[{"commit":"1cd0b05bd8f9b71d18e374985284c495cbcb2f86","subject":"Fix liberasurecode skipping a bunch of invalid_args tests","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/liberasurecode/commit/1cd0b05bd8f9b71d18e374985284c495cbcb2f86"}]}],"author":{"name":"Kota Tsuyuzaki","email":"tsuyuzaki.kota@lab.ntt.co.jp","date":"2016-11-04 02:49:49.000000000","tz":-420},"committer":{"name":"Kota Tsuyuzaki","email":"tsuyuzaki.kota@lab.ntt.co.jp","date":"2016-11-04 05:44:16.000000000","tz":-420},"subject":"Fix error handling on gf_ivnert_matrix in isa-l backend","message":"Fix error handling on gf_ivnert_matrix in isa-l backend\n\nCurrent isa-l has possibility to return corrupted decoded data or\ncorrupted reconstructed data on decode/reconstruct without error code.\n\nThat is from the specification of isa-l rs vandermond matrix discussed\nat [1]. With many # of parities cases, we may hit the case above due to\nfailing to get the inverse matrix from the encode matrix.\n\nThe isa-l maintener gbtucker suggests a good way to detect the failing\ninverse matrix, that we should handle the return value gf_invert_matrix.\nIf gf_invert_matrix returns not 0, we should stop to decode/reconstruct\nand return failure return code to the caller immediately. Otherwise, the\ncaller regards the garbage data/fragment as correct one.\n\nAnd this patch adds the specific test case we can hit the issue (it\nhappens not so general).\n\n1: https://github.com/01org/isa-l/issues/10\n\nRelated-Change: I6eb150d9d0c3febf233570fa7729f9f72df2e9be\nChange-Id: Icee788a0931fe692fe0de31fabc4ba450e338a87\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/liberasurecode/commit/34026aa8a300129f66ed82e2ca6f623732c1d3a6"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/liberasurecode/commit/34026aa8a300129f66ed82e2ca6f623732c1d3a6"}]},"branch":"refs/heads/master"},"74eaa374c107d1a9e140fc7a8c1bf91386619940":{"kind":"TRIVIAL_REBASE","_number":4,"created":"2016-11-09 23:28:55.000000000","uploader":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"ref":"refs/changes/95/393595/4","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/liberasurecode","ref":"refs/changes/95/393595/4","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/liberasurecode refs/changes/95/393595/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/liberasurecode refs/changes/95/393595/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/liberasurecode refs/changes/95/393595/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/liberasurecode refs/changes/95/393595/4"}}},"commit":{"parents":[{"commit":"b96cf4b2cc98dbdcdf60c80cd4a353f5c11959c8","subject":"Merge \"Fix liberasurecode skipping a bunch of invalid_args tests\"","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/liberasurecode/commit/b96cf4b2cc98dbdcdf60c80cd4a353f5c11959c8"}]}],"author":{"name":"Kota Tsuyuzaki","email":"tsuyuzaki.kota@lab.ntt.co.jp","date":"2016-11-04 02:49:49.000000000","tz":-420},"committer":{"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","date":"2016-11-09 23:28:55.000000000","tz":0},"subject":"Fix error handling on gf_ivnert_matrix in isa-l backend","message":"Fix error handling on gf_ivnert_matrix in isa-l backend\n\nCurrent isa-l has possibility to return corrupted decoded data or\ncorrupted reconstructed data on decode/reconstruct without error code.\n\nThat is from the specification of isa-l rs vandermond matrix discussed\nat [1]. With many # of parities cases, we may hit the case above due to\nfailing to get the inverse matrix from the encode matrix.\n\nThe isa-l maintener gbtucker suggests a good way to detect the failing\ninverse matrix, that we should handle the return value gf_invert_matrix.\nIf gf_invert_matrix returns not 0, we should stop to decode/reconstruct\nand return failure return code to the caller immediately. Otherwise, the\ncaller regards the garbage data/fragment as correct one.\n\nAnd this patch adds the specific test case we can hit the issue (it\nhappens not so general).\n\n1: https://github.com/01org/isa-l/issues/10\n\nRelated-Change: I6eb150d9d0c3febf233570fa7729f9f72df2e9be\nChange-Id: Icee788a0931fe692fe0de31fabc4ba450e338a87\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/liberasurecode/commit/74eaa374c107d1a9e140fc7a8c1bf91386619940"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/liberasurecode/commit/74eaa374c107d1a9e140fc7a8c1bf91386619940"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
