)]}'
{"test/unit/common/test_memcached.py":[{"author":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"change_message_id":"783c2fc3936c0c667e170ae3e2d4e929ca324aba","unresolved":false,"context_lines":[{"line_number":509,"context_line":""},{"line_number":510,"context_line":"            # so far so good, everyone is still waiting"},{"line_number":511,"context_line":"            sleep(0)"},{"line_number":512,"context_line":"            self.assertEqual(pending[\u00271.2.3.5:11211\u0027], 8)"},{"line_number":513,"context_line":"            self.assertEqual(len(memcache_client._errors[\u00271.2.3.5:11211\u0027]), 0)"},{"line_number":514,"context_line":""},{"line_number":515,"context_line":"            # but they won\u0027t wait longer than pool_timeout"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F93Xs%3D","side":"PARENT","line":512,"updated":"2014-02-03 05:36:50.000000000","message":"On a really slow system, it seems possible for the co-routines to have already timed out, such that they all were pending, but now have all gone and waited on the other connection.","commit_id":"4b9667d9d678e97f915eb14c22b4573bb1f1b86c"},{"author":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"change_message_id":"783c2fc3936c0c667e170ae3e2d4e929ca324aba","unresolved":false,"context_lines":[{"line_number":498,"context_line":"                p.spawn(memcache_client.set, \u0027key\u0027, \u0027value\u0027)"},{"line_number":499,"context_line":""},{"line_number":500,"context_line":"            # let everyone block"},{"line_number":501,"context_line":"            sleep(0)"},{"line_number":502,"context_line":"            self.assertEqual(pending[\u00271.2.3.5:11211\u0027], 10)"},{"line_number":503,"context_line":""},{"line_number":504,"context_line":"            # hand out a couple slow connection"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F93ZM%3D","line":501,"updated":"2014-02-03 05:36:50.000000000","message":"So under a slow VM, it seems possible that more than 0.1 seconds pass from when at least one of the spawned co-routines times out waiting on the connection queue.  When a timeout occurs, line 482 above is not executed, where pending is decremented, so the assertion on line 502 will not fail, and we won\u0027t know were are in this state.\n\nOn a really fast system, it may also be possible that the sleep(0) never yields (although I am still trying to verify this, see https://gist.github.com/portante/8778905).","commit_id":"15c04f6869c3ae4bb8906b3783551df0e718d462"},{"author":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"change_message_id":"783c2fc3936c0c667e170ae3e2d4e929ca324aba","unresolved":false,"context_lines":[{"line_number":508,"context_line":"            connections[\u00271.2.3.5:11211\u0027].put(mock_conn)"},{"line_number":509,"context_line":""},{"line_number":510,"context_line":"            # so far so good, everyone is still waiting"},{"line_number":511,"context_line":"            self.assertEqual(pending[\u00271.2.3.5:11211\u0027], 10)"},{"line_number":512,"context_line":"            self.assertEqual(len(memcache_client._errors[\u00271.2.3.5:11211\u0027]), 0)"},{"line_number":513,"context_line":""},{"line_number":514,"context_line":"            # but they won\u0027t wait longer than pool_timeout"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F93XI%3D","line":511,"updated":"2014-02-03 05:36:50.000000000","message":"I don\u0027t believe there is a point to this assertion now, as there is no cooperative yield or scheduling point since the previous assertion on line 502.","commit_id":"15c04f6869c3ae4bb8906b3783551df0e718d462"},{"author":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"change_message_id":"783c2fc3936c0c667e170ae3e2d4e929ca324aba","unresolved":false,"context_lines":[{"line_number":509,"context_line":""},{"line_number":510,"context_line":"            # so far so good, everyone is still waiting"},{"line_number":511,"context_line":"            self.assertEqual(pending[\u00271.2.3.5:11211\u0027], 10)"},{"line_number":512,"context_line":"            self.assertEqual(len(memcache_client._errors[\u00271.2.3.5:11211\u0027]), 0)"},{"line_number":513,"context_line":""},{"line_number":514,"context_line":"            # but they won\u0027t wait longer than pool_timeout"},{"line_number":515,"context_line":"            mock_conn \u003d MagicMock(), MagicMock()"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F93Xo%3D","line":512,"updated":"2014-02-03 05:36:50.000000000","message":"In the case where they all have timed out by the time this assertion fires, this assertion should now fail, but it seems that it won\u0027t because we still have not encountered any cooperative scheduling points yet. So it appears to be kinda useless.","commit_id":"15c04f6869c3ae4bb8906b3783551df0e718d462"},{"author":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"change_message_id":"783c2fc3936c0c667e170ae3e2d4e929ca324aba","unresolved":false,"context_lines":[{"line_number":515,"context_line":"            mock_conn \u003d MagicMock(), MagicMock()"},{"line_number":516,"context_line":"            connections[\u00271.2.3.4:11211\u0027].put(mock_conn)"},{"line_number":517,"context_line":"            connections[\u00271.2.3.4:11211\u0027].put(mock_conn)"},{"line_number":518,"context_line":"            p.waitall()"},{"line_number":519,"context_line":"            self.assertEqual(len(memcache_client._errors[\u00271.2.3.5:11211\u0027]), 8)"},{"line_number":520,"context_line":"            self.assertEqual(served[\u00271.2.3.5:11211\u0027], 2)"},{"line_number":521,"context_line":"            self.assertEqual(len(memcache_client._errors[\u00271.2.3.4:11211\u0027]), 0)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F93Xc%3D","line":518,"updated":"2014-02-03 05:36:50.000000000","message":"I think we want to setup all the slow and fast connections before we create the co-routines. Then we just create the co-routines, let them do their thing, and then go back and assert all the pending and _errors and queue sizes.","commit_id":"15c04f6869c3ae4bb8906b3783551df0e718d462"}]}
