)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ab5b6bef46d79f62c199f6e7eedfd6dd062227e7","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"privsep: Handle ENOENT when checking for direct IO support"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"We\u0027ve seen an issue in some cloud providers [1] that suggest direct IO"},{"line_number":10,"context_line":"support checks can fail in other ways. In those cases, the tests are"},{"line_number":11,"context_line":"failing with FileNotFoundError, which is a Python 3-only exception type."},{"line_number":12,"context_line":"Fortunately we can mimic this by looking for IOError and checking the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3f79a3b5_f71393ff","line":9,"range":{"start_line":9,"start_character":20,"end_line":9,"end_character":47},"updated":"2018-08-27 15:40:03.000000000","message":"There are at least 6 unique providers in logstash for this bug so it\u0027s not a problem in the underlying image used for the CI run. I would remove this.","commit_id":"d4443617972e7bc62835a3d210aa00cf74d71c59"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a0966abdb844209abf9f964c396f1a584c14f736","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"privsep: Handle ENOENT when checking for direct IO support"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"We\u0027ve seen an issue in some cloud providers [1] that suggest direct IO"},{"line_number":10,"context_line":"support checks can fail in other ways. In those cases, the tests are"},{"line_number":11,"context_line":"failing with FileNotFoundError, which is a Python 3-only exception type."},{"line_number":12,"context_line":"Fortunately we can mimic this by looking for IOError and checking the"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3f79a3b5_f76e332a","line":9,"range":{"start_line":9,"start_character":20,"end_line":9,"end_character":47},"in_reply_to":"3f79a3b5_f71393ff","updated":"2018-08-27 15:59:56.000000000","message":"Done","commit_id":"d4443617972e7bc62835a3d210aa00cf74d71c59"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2acaf6aa365c90a209db7cb4d8a004e00a73294f","unresolved":false,"context_lines":[{"line_number":12,"context_line":"we can mimic this by looking for checking for the errno attribute of the"},{"line_number":13,"context_line":"OSError exception. This is what we do."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"[1] http://status.openstack.org/elastic-recheck/#1788922"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I8aab86bb62cbc8ad538c706af037a30437c7964d"},{"line_number":18,"context_line":"Closes-Bug: #1788922"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3f79a3b5_5adaae4a","line":15,"updated":"2018-08-27 16:03:08.000000000","message":"nit: I would just remove this because once the bug is fixed and we no longer have hits in e-r, we\u0027ll eventually remove the e-r query and this link won\u0027t work.","commit_id":"4554d45c8bf87e1d81e9bd1eda9796265b124dc4"}],"nova/privsep/utils.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ab5b6bef46d79f62c199f6e7eedfd6dd062227e7","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        os.write(fd, m)"},{"line_number":51,"context_line":"        LOG.debug(\"Path \u0027%(path)s\u0027 supports direct I/O\","},{"line_number":52,"context_line":"                  {\u0027path\u0027: dirpath})"},{"line_number":53,"context_line":"    except (OSError, IOError) as e:"},{"line_number":54,"context_line":"        if e.errno in (errno.EINVAL, errno.ENOENT):"},{"line_number":55,"context_line":"            LOG.debug(\"Path \u0027%(path)s\u0027 does not support direct I/O: \""},{"line_number":56,"context_line":"                      \"\u0027%(ex)s\u0027\", {\u0027path\u0027: dirpath, \u0027ex\u0027: e})"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_37ccab87","line":53,"range":{"start_line":53,"start_character":21,"end_line":53,"end_character":28},"updated":"2018-08-27 15:40:03.000000000","message":"Why is this needed? https://docs.python.org/3.5/library/exceptions.html#FileNotFoundError says FileNotFoundError extends OSError.","commit_id":"d4443617972e7bc62835a3d210aa00cf74d71c59"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"a0966abdb844209abf9f964c396f1a584c14f736","unresolved":false,"context_lines":[{"line_number":50,"context_line":"        os.write(fd, m)"},{"line_number":51,"context_line":"        LOG.debug(\"Path \u0027%(path)s\u0027 supports direct I/O\","},{"line_number":52,"context_line":"                  {\u0027path\u0027: dirpath})"},{"line_number":53,"context_line":"    except (OSError, IOError) as e:"},{"line_number":54,"context_line":"        if e.errno in (errno.EINVAL, errno.ENOENT):"},{"line_number":55,"context_line":"            LOG.debug(\"Path \u0027%(path)s\u0027 does not support direct I/O: \""},{"line_number":56,"context_line":"                      \"\u0027%(ex)s\u0027\", {\u0027path\u0027: dirpath, \u0027ex\u0027: e})"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f79a3b5_d773f714","line":53,"range":{"start_line":53,"start_character":21,"end_line":53,"end_character":28},"in_reply_to":"3f79a3b5_37ccab87","updated":"2018-08-27 15:59:56.000000000","message":"I went here https://stackoverflow.com/questions/21367320/searching-for-equivalent-of-filenotfounderror-in-python-2","commit_id":"d4443617972e7bc62835a3d210aa00cf74d71c59"}],"nova/tests/unit/privsep/test_utils.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"72338325132a312bed8d902d13fb101073fc02a2","unresolved":false,"context_lines":[{"line_number":34,"context_line":"            self.addCleanup(delattr, os, \u0027O_DIRECT\u0027)"},{"line_number":35,"context_line":"        self.einval \u003d OSError()"},{"line_number":36,"context_line":"        self.einval.errno \u003d errno.EINVAL"},{"line_number":37,"context_line":"        self.enoent \u003d OSError()"},{"line_number":38,"context_line":"        self.enoent.errno \u003d errno.ENOENT"},{"line_number":39,"context_line":"        self.test_path \u003d os.path.join(\u0027.\u0027, \u0027.directio.test\u0027)"},{"line_number":40,"context_line":"        self.io_flags \u003d os.O_CREAT | os.O_WRONLY | os.O_DIRECT"},{"line_number":41,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_9ade060f","line":38,"range":{"start_line":37,"start_character":7,"end_line":38,"end_character":40},"updated":"2018-08-27 16:09:10.000000000","message":"since this is only used in one test case you proably should not be setting it here but ok.","commit_id":"ecfcf8653815f658c0399b000e9386adc121312b"}]}
