)]}'
{"oslo/messaging/_drivers/impl_rabbit.py":[{"author":{"_account_id":1994,"name":"Zhongyue Luo","email":"zhongyue.luo@gmail.com","username":"zyluo"},"change_message_id":"6d98394a2c3ab8fa6e6d035b90aa983ba612a9d7","unresolved":false,"context_lines":[{"line_number":669,"context_line":"                for queue in queues_head:"},{"line_number":670,"context_line":"                    queue.consume(nowait\u003dTrue)"},{"line_number":671,"context_line":"                queues_tail.consume(nowait\u003dFalse)"},{"line_number":672,"context_line":"                self.do_consume \u003d False"},{"line_number":673,"context_line":"            return self.connection.drain_events(timeout\u003dtimeout)"},{"line_number":674,"context_line":""},{"line_number":675,"context_line":"        for iteration in itertools.count(0):"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAQn%2F%2FGeY%3D","line":672,"updated":"2013-08-07 07:07:35.000000000","message":"I\u0027ve narrowed down to this line having problems when timeout\u003d0. Looks like something in the kombu lib is causing this problem.","commit_id":"7c305150ffba2d31083eba42ee1bf6e3244befe7"}],"tests/test_rabbit.py":[{"author":{"_account_id":1994,"name":"Zhongyue Luo","email":"zhongyue.luo@gmail.com","username":"zyluo"},"change_message_id":"4ffb1036099f9f1e5b6db6c936b8b45dd5ee6f66","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    _timeout \u003d ["},{"line_number":68,"context_line":"        (\u0027no_timeout\u0027, dict(timeout\u003dNone)),"},{"line_number":69,"context_line":"        (\u0027timeout\u0027, dict(timeout\u003d0.01)),  # FIXME(markmc): timeout\u003d0 is broken?"},{"line_number":70,"context_line":"    ]"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAQn%2F%2FOmA%3D","line":69,"updated":"2013-08-05 05:33:23.000000000","message":"What is the difference of the meaning between timeout\u003dNone and timeout\u003d0?","commit_id":"d718a1808d2c0adc069ef47d4aaab24b6086b6e2"},{"author":{"_account_id":1247,"name":"Mark McLoughlin","email":"markmc@redhat.com","username":"markmc"},"change_message_id":"f1747a496c1556ce05cee36da906958996b91a7a","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    _timeout \u003d ["},{"line_number":68,"context_line":"        (\u0027no_timeout\u0027, dict(timeout\u003dNone)),"},{"line_number":69,"context_line":"        (\u0027timeout\u0027, dict(timeout\u003d0.01)),  # FIXME(markmc): timeout\u003d0 is broken?"},{"line_number":70,"context_line":"    ]"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAQn%2F%2FNl8%3D","line":69,"in_reply_to":"AAAAQn%2F%2FNpk%3D","updated":"2013-08-05 12:19:13.000000000","message":"Same as e.g. http://docs.python.org/2/library/socket.html#socket.socket.settimeout","commit_id":"d718a1808d2c0adc069ef47d4aaab24b6086b6e2"},{"author":{"_account_id":1247,"name":"Mark McLoughlin","email":"markmc@redhat.com","username":"markmc"},"change_message_id":"0b87778ac92b96f3b56e7d56fb3566fe619db7cb","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    _timeout \u003d ["},{"line_number":68,"context_line":"        (\u0027no_timeout\u0027, dict(timeout\u003dNone)),"},{"line_number":69,"context_line":"        (\u0027timeout\u0027, dict(timeout\u003d0.01)),  # FIXME(markmc): timeout\u003d0 is broken?"},{"line_number":70,"context_line":"    ]"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAQn%2F%2FNpk%3D","line":69,"in_reply_to":"AAAAQn%2F%2FOmA%3D","updated":"2013-08-05 12:12:39.000000000","message":"timeout\u003dNone means block forever, timeout\u003d0 means don\u0027t block","commit_id":"d718a1808d2c0adc069ef47d4aaab24b6086b6e2"},{"author":{"_account_id":1994,"name":"Zhongyue Luo","email":"zhongyue.luo@gmail.com","username":"zyluo"},"change_message_id":"a5e602fa247ba4287adb4954212f326ca437a6bb","unresolved":false,"context_lines":[{"line_number":105,"context_line":"                                           wait_for_reply\u003dTrue,"},{"line_number":106,"context_line":"                                           timeout\u003dself.timeout))"},{"line_number":107,"context_line":"                self.assertFalse(self.failure)"},{"line_number":108,"context_line":"                self.assertFalse(self.timeout)"},{"line_number":109,"context_line":"            except (ZeroDivisionError, messaging.MessagingTimeout) as e:"},{"line_number":110,"context_line":"                replies.append(e)"},{"line_number":111,"context_line":"                self.assertTrue(self.failure or self.timeout)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAQn%2F%2FNVQ%3D","line":108,"updated":"2013-08-05 13:40:40.000000000","message":"Maybe this line and line 111 is why timeout\u003d0 is not working? timeout None and 0 would both assert to False","commit_id":"ed0cba921d8380f951f99f87fb4633065744af93"},{"author":{"_account_id":1247,"name":"Mark McLoughlin","email":"markmc@redhat.com","username":"markmc"},"change_message_id":"fdd7f6c61aa356d659eb2ceb90f0b57b48c8f97a","unresolved":false,"context_lines":[{"line_number":105,"context_line":"                                           wait_for_reply\u003dTrue,"},{"line_number":106,"context_line":"                                           timeout\u003dself.timeout))"},{"line_number":107,"context_line":"                self.assertFalse(self.failure)"},{"line_number":108,"context_line":"                self.assertFalse(self.timeout)"},{"line_number":109,"context_line":"            except (ZeroDivisionError, messaging.MessagingTimeout) as e:"},{"line_number":110,"context_line":"                replies.append(e)"},{"line_number":111,"context_line":"                self.assertTrue(self.failure or self.timeout)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAQn%2F%2FGrs%3D","line":108,"in_reply_to":"AAAAQn%2F%2FNRI%3D","updated":"2013-08-07 05:54:25.000000000","message":"I\u0027ve gone for\n\n  self.assertIsNone(self.timeout)\n\nand\n\n  self.assertTrue(self.failure or self.timeout is not None)\n\ni.e. tests for both timeout\u003d0 and timeout\u003d0.01 would make sense","commit_id":"ed0cba921d8380f951f99f87fb4633065744af93"},{"author":{"_account_id":1247,"name":"Mark McLoughlin","email":"markmc@redhat.com","username":"markmc"},"change_message_id":"fdd7f6c61aa356d659eb2ceb90f0b57b48c8f97a","unresolved":false,"context_lines":[{"line_number":105,"context_line":"                                           wait_for_reply\u003dTrue,"},{"line_number":106,"context_line":"                                           timeout\u003dself.timeout))"},{"line_number":107,"context_line":"                self.assertFalse(self.failure)"},{"line_number":108,"context_line":"                self.assertFalse(self.timeout)"},{"line_number":109,"context_line":"            except (ZeroDivisionError, messaging.MessagingTimeout) as e:"},{"line_number":110,"context_line":"                replies.append(e)"},{"line_number":111,"context_line":"                self.assertTrue(self.failure or self.timeout)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAQn%2F%2FGrc%3D","line":108,"in_reply_to":"AAAAQn%2F%2FNVQ%3D","updated":"2013-08-07 05:54:25.000000000","message":"Nah, it\u0027s more than this - I think it\u0027s something in rabbit itself that doesn\u0027t handle timeout\u003d0 properly","commit_id":"ed0cba921d8380f951f99f87fb4633065744af93"},{"author":{"_account_id":1994,"name":"Zhongyue Luo","email":"zhongyue.luo@gmail.com","username":"zyluo"},"change_message_id":"a318b8fb8810354e7d01c04c6fc5a8e414a1ad08","unresolved":false,"context_lines":[{"line_number":105,"context_line":"                                           wait_for_reply\u003dTrue,"},{"line_number":106,"context_line":"                                           timeout\u003dself.timeout))"},{"line_number":107,"context_line":"                self.assertFalse(self.failure)"},{"line_number":108,"context_line":"                self.assertFalse(self.timeout)"},{"line_number":109,"context_line":"            except (ZeroDivisionError, messaging.MessagingTimeout) as e:"},{"line_number":110,"context_line":"                replies.append(e)"},{"line_number":111,"context_line":"                self.assertTrue(self.failure or self.timeout)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAQn%2F%2FNRI%3D","line":108,"in_reply_to":"AAAAQn%2F%2FNVQ%3D","updated":"2013-08-05 13:55:04.000000000","message":"So the test scheme maybe should be\n\n 108: self.assertIsNone(self.timeout)\n 111: self.assertTrue(self.failure or self.timeout \u003d\u003d 0)\n\nI\u0027ll try it out on my machine.","commit_id":"ed0cba921d8380f951f99f87fb4633065744af93"}]}
