)]}'
{"os_brick/initiator/linuxscsi.py":[{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"4fabb62ec160200ca6b7d6d28beeb8c456ac5464","unresolved":false,"context_lines":[{"line_number":160,"context_line":"            if exc.exit_code \u003d\u003d 1 and \u0027map in use\u0027 in exc.stdout:"},{"line_number":161,"context_line":"                LOG.debug(\u0027Multipath is in use, cannot be flushed yet.\u0027)"},{"line_number":162,"context_line":"                raise"},{"line_number":163,"context_line":"            LOG.warning(_LW(\"multipath call failed exit %(code)s\"),"},{"line_number":164,"context_line":"                        {\u0027code\u0027: exc.exit_code})"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    def flush_multipath_devices(self):"},{"line_number":167,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa31d9ce_ab215f4f","line":164,"range":{"start_line":163,"start_character":0,"end_line":164,"end_character":48},"updated":"2017-02-13 15:56:29.000000000","message":"This is kind of a nit, but having both error messages here is kind-of confusing.  I think we still want the Warning but should have the debug after it so that the cause/effect relationship is clearer.","commit_id":"46be34f0da1387f018a4a58eed4c17c03428830b"},{"author":{"_account_id":12924,"name":"Patrick East","email":"east.patrick@gmail.com","username":"patrick.east"},"change_message_id":"2cb9ead76ef4d07c7ad59eef8017d37e4d1b7ed8","unresolved":false,"context_lines":[{"line_number":160,"context_line":"            if exc.exit_code \u003d\u003d 1 and \u0027map in use\u0027 in exc.stdout:"},{"line_number":161,"context_line":"                LOG.debug(\u0027Multipath is in use, cannot be flushed yet.\u0027)"},{"line_number":162,"context_line":"                raise"},{"line_number":163,"context_line":"            LOG.warning(_LW(\"multipath call failed exit %(code)s\"),"},{"line_number":164,"context_line":"                        {\u0027code\u0027: exc.exit_code})"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    def flush_multipath_devices(self):"},{"line_number":167,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa31d9ce_fa531937","line":164,"range":{"start_line":163,"start_character":0,"end_line":164,"end_character":48},"in_reply_to":"fa31d9ce_77f745f5","updated":"2017-02-13 19:57:02.000000000","message":"+1 I, think this is the right way to log this... I would also be happy to see exceptions raised for any issue here that could cause problems with cleanly detaching.","commit_id":"46be34f0da1387f018a4a58eed4c17c03428830b"},{"author":{"_account_id":7198,"name":"Jay Bryant","email":"jungleboyj@electronicjungle.net","username":"jsbryant"},"change_message_id":"8aa9aa6905b70752a35619d77706fe9668ba56b5","unresolved":false,"context_lines":[{"line_number":160,"context_line":"            if exc.exit_code \u003d\u003d 1 and \u0027map in use\u0027 in exc.stdout:"},{"line_number":161,"context_line":"                LOG.debug(\u0027Multipath is in use, cannot be flushed yet.\u0027)"},{"line_number":162,"context_line":"                raise"},{"line_number":163,"context_line":"            LOG.warning(_LW(\"multipath call failed exit %(code)s\"),"},{"line_number":164,"context_line":"                        {\u0027code\u0027: exc.exit_code})"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    def flush_multipath_devices(self):"},{"line_number":167,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa31d9ce_6c8521ac","line":164,"range":{"start_line":163,"start_character":0,"end_line":164,"end_character":48},"in_reply_to":"fa31d9ce_77f745f5","updated":"2017-02-16 15:36:02.000000000","message":"Ok, thank you for the explanation.  Hadn\u0027t considered the retry aspect.  This does make more sense.","commit_id":"46be34f0da1387f018a4a58eed4c17c03428830b"},{"author":{"_account_id":5997,"name":"Walt","display_name":"Hemna","email":"waboring@hemna.com","username":"walter-boring","status":"SAP"},"change_message_id":"a61a492e6c216f0e0e943ca4e87597173239cad6","unresolved":false,"context_lines":[{"line_number":160,"context_line":"            if exc.exit_code \u003d\u003d 1 and \u0027map in use\u0027 in exc.stdout:"},{"line_number":161,"context_line":"                LOG.debug(\u0027Multipath is in use, cannot be flushed yet.\u0027)"},{"line_number":162,"context_line":"                raise"},{"line_number":163,"context_line":"            LOG.warning(_LW(\"multipath call failed exit %(code)s\"),"},{"line_number":164,"context_line":"                        {\u0027code\u0027: exc.exit_code})"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    def flush_multipath_devices(self):"},{"line_number":167,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa31d9ce_d2ae3f84","line":164,"range":{"start_line":163,"start_character":0,"end_line":164,"end_character":48},"in_reply_to":"fa31d9ce_77f745f5","updated":"2017-02-13 18:34:35.000000000","message":"So, if we get the exception we will raise the exception, but the retry will detect it and issue another attempt.  You\u0027ll just see the debug log.  If it then continues to fail, we\u0027ll see the exception.  The warning will only happen if we get an error code that\u0027s not 1 and the map isn\u0027t busy.","commit_id":"46be34f0da1387f018a4a58eed4c17c03428830b"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"701c9c549c55f990feb2c1cdb1a76edf2203490b","unresolved":false,"context_lines":[{"line_number":160,"context_line":"            if exc.exit_code \u003d\u003d 1 and \u0027map in use\u0027 in exc.stdout:"},{"line_number":161,"context_line":"                LOG.debug(\u0027Multipath is in use, cannot be flushed yet.\u0027)"},{"line_number":162,"context_line":"                raise"},{"line_number":163,"context_line":"            LOG.warning(_LW(\"multipath call failed exit %(code)s\"),"},{"line_number":164,"context_line":"                        {\u0027code\u0027: exc.exit_code})"},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"    def flush_multipath_devices(self):"},{"line_number":167,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa31d9ce_77f745f5","line":164,"range":{"start_line":163,"start_character":0,"end_line":164,"end_character":48},"in_reply_to":"fa31d9ce_ab215f4f","updated":"2017-02-13 18:07:22.000000000","message":"I disagree... I originally had it like that but the unnecessary warning was distracting, so I decided to change it in the final patch.\n\nThis way the result we get is:\n\n- If there is no error, then we proceed normally\n- If there is an error but the retries succeed, then we don\u0027t have warnings and only debug logs.  So we have a tidier log file.\n- If there are errors and the multipath cannot be flushed what we get is an exception with the error and the detach doesn\u0027t continue (we would be losing data).\n\nI believe we should raise an exception if the flush fails in any case, but I didn\u0027t want to make the change to the original path.","commit_id":"46be34f0da1387f018a4a58eed4c17c03428830b"}]}
