)]}'
{"tooz/drivers/mysql.py":[{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"dbf4e40addf5eba27e80df6adc185b775851b9f1","unresolved":false,"context_lines":[{"line_number":95,"context_line":"                                   encodeutils.exception_to_unicode(e),"},{"line_number":96,"context_line":"                                   cause\u003de)"},{"line_number":97,"context_line":"        else:"},{"line_number":98,"context_line":"            self._conn.close()"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    def __del__(self):"},{"line_number":101,"context_line":"        if self.acquired:"}],"source_content_type":"text/x-python","patch_set":4,"id":"5ff73747_709028ee","line":98,"updated":"2017-04-27 13:06:19.000000000","message":"This won\u0027t be executed, just move it on L92","commit_id":"7a706264daf73df3bf01241c4cd753a7064411e1"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"b5b2ffe31cd956d5d9be5610070e5c453a4739d2","unresolved":false,"context_lines":[{"line_number":95,"context_line":"                                   encodeutils.exception_to_unicode(e),"},{"line_number":96,"context_line":"                                   cause\u003de)"},{"line_number":97,"context_line":"        else:"},{"line_number":98,"context_line":"            self._conn.close()"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    def __del__(self):"},{"line_number":101,"context_line":"        if self.acquired:"}],"source_content_type":"text/x-python","patch_set":4,"id":"5ff73747_a47431ff","line":98,"in_reply_to":"5ff73747_04876511","updated":"2017-04-27 13:28:05.000000000","message":"actually wait, how would i close the connection inside the transaction?","commit_id":"7a706264daf73df3bf01241c4cd753a7064411e1"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"bf0f917e7db7c9ba0047ddc8a1cf9d47b148916b","unresolved":false,"context_lines":[{"line_number":95,"context_line":"                                   encodeutils.exception_to_unicode(e),"},{"line_number":96,"context_line":"                                   cause\u003de)"},{"line_number":97,"context_line":"        else:"},{"line_number":98,"context_line":"            self._conn.close()"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    def __del__(self):"},{"line_number":101,"context_line":"        if self.acquired:"}],"source_content_type":"text/x-python","patch_set":4,"id":"5ff73747_04876511","line":98,"in_reply_to":"5ff73747_709028ee","updated":"2017-04-27 13:24:16.000000000","message":"word.","commit_id":"7a706264daf73df3bf01241c4cd753a7064411e1"}],"tooz/drivers/pgsql.py":[{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"4b9a4191b4ace6b007b6c7dbcd383d4b3ae08d92","unresolved":false,"context_lines":[{"line_number":123,"context_line":"            if not self._conn or self._conn.closed:"},{"line_number":124,"context_line":"                self._conn \u003d PostgresDriver.get_connection(self._parsed_url,"},{"line_number":125,"context_line":"                                                           self._options)"},{"line_number":126,"context_line":"            with _translating_cursor(self._conn) as cur:"},{"line_number":127,"context_line":"                if blocking is True:"},{"line_number":128,"context_line":"                    cur.execute(\"SELECT pg_advisory_lock(%s, %s);\", self.key)"},{"line_number":129,"context_line":"                    cur.fetchone()"}],"source_content_type":"text/x-python","patch_set":3,"id":"5ff73747_0f4e6c96","line":126,"updated":"2017-04-27 07:21:25.000000000","message":"maybe here do a \"try: … finally: … self._conn.close()\" in case something goes bad?\n\nsame for mysql","commit_id":"2efed4433dafa7cda03eb6267765cce72e8e2a7b"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"14ca3472bbde7fa579e49796f4fa6f6a7c749cb1","unresolved":false,"context_lines":[{"line_number":123,"context_line":"            if not self._conn or self._conn.closed:"},{"line_number":124,"context_line":"                self._conn \u003d PostgresDriver.get_connection(self._parsed_url,"},{"line_number":125,"context_line":"                                                           self._options)"},{"line_number":126,"context_line":"            with _translating_cursor(self._conn) as cur:"},{"line_number":127,"context_line":"                if blocking is True:"},{"line_number":128,"context_line":"                    cur.execute(\"SELECT pg_advisory_lock(%s, %s);\", self.key)"},{"line_number":129,"context_line":"                    cur.fetchone()"}],"source_content_type":"text/x-python","patch_set":3,"id":"5ff73747_f0daf848","line":126,"in_reply_to":"5ff73747_0f4e6c96","updated":"2017-04-27 12:58:03.000000000","message":"you mean try-except? i think as you originally mentioned, we should keep connection if we get lock... that seems to be a safe argument so we don\u0027t connect-\u003eget lock-\u003edisconnect-\u003efail to reconnect because no more conns-\u003ecannot release.","commit_id":"2efed4433dafa7cda03eb6267765cce72e8e2a7b"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"4b9a4191b4ace6b007b6c7dbcd383d4b3ae08d92","unresolved":false,"context_lines":[{"line_number":155,"context_line":"                self.acquired \u003d False"},{"line_number":156,"context_line":"                return True"},{"line_number":157,"context_line":"        finally:"},{"line_number":158,"context_line":"            self._conn.close()"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"    def __del__(self):"},{"line_number":161,"context_line":"        if self.acquired:"}],"source_content_type":"text/x-python","patch_set":3,"id":"5ff73747_6f75f0ca","line":158,"updated":"2017-04-27 07:21:25.000000000","message":"i like the idea but if something is raised by e.g. fetchone() then self.acquired stays True and the next call to release() will likely fail anyway since the conn is now close. Are we sure it\u0027s ok to do that?","commit_id":"2efed4433dafa7cda03eb6267765cce72e8e2a7b"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"b9ee5c5313c1e682d1162e8b3250926f0db11062","unresolved":false,"context_lines":[{"line_number":155,"context_line":"                self.acquired \u003d False"},{"line_number":156,"context_line":"                return True"},{"line_number":157,"context_line":"        finally:"},{"line_number":158,"context_line":"            self._conn.close()"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"    def __del__(self):"},{"line_number":161,"context_line":"        if self.acquired:"}],"source_content_type":"text/x-python","patch_set":3,"id":"5ff73747_b5fb4277","line":158,"in_reply_to":"5ff73747_6f75f0ca","updated":"2017-04-27 12:37:36.000000000","message":"probably not.","commit_id":"2efed4433dafa7cda03eb6267765cce72e8e2a7b"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"dbf4e40addf5eba27e80df6adc185b775851b9f1","unresolved":false,"context_lines":[{"line_number":142,"context_line":"                            return False"},{"line_number":143,"context_line":"                        else:"},{"line_number":144,"context_line":"                            raise _retry.TryAgain"},{"line_number":145,"context_line":"            except Exception:"},{"line_number":146,"context_line":"                self._conn.close()"},{"line_number":147,"context_line":"                raise"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"        return _lock()"},{"line_number":150,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5ff73747_704dc8c2","line":147,"range":{"start_line":145,"start_character":11,"end_line":147,"end_character":21},"updated":"2017-04-27 13:06:19.000000000","message":"finally:\n    self._conn.close()","commit_id":"7a706264daf73df3bf01241c4cd753a7064411e1"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"bf0f917e7db7c9ba0047ddc8a1cf9d47b148916b","unresolved":false,"context_lines":[{"line_number":142,"context_line":"                            return False"},{"line_number":143,"context_line":"                        else:"},{"line_number":144,"context_line":"                            raise _retry.TryAgain"},{"line_number":145,"context_line":"            except Exception:"},{"line_number":146,"context_line":"                self._conn.close()"},{"line_number":147,"context_line":"                raise"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"        return _lock()"},{"line_number":150,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5ff73747_44968d41","line":147,"range":{"start_line":145,"start_character":11,"end_line":147,"end_character":21},"in_reply_to":"5ff73747_704dc8c2","updated":"2017-04-27 13:24:16.000000000","message":"but i don\u0027t want to close if i successfully acquire.","commit_id":"7a706264daf73df3bf01241c4cd753a7064411e1"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"dbf4e40addf5eba27e80df6adc185b775851b9f1","unresolved":false,"context_lines":[{"line_number":152,"context_line":"        if not self.acquired:"},{"line_number":153,"context_line":"            return False"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":"        try:"},{"line_number":156,"context_line":"            with _translating_cursor(self._conn) as cur:"},{"line_number":157,"context_line":"                cur.execute(\"SELECT pg_advisory_unlock(%s, %s);\","},{"line_number":158,"context_line":"                            self.key)"}],"source_content_type":"text/x-python","patch_set":4,"id":"5ff73747_9002943c","line":155,"range":{"start_line":155,"start_character":8,"end_line":155,"end_character":11},"updated":"2017-04-27 13:06:19.000000000","message":"no need for try here I think\n\nwhatever happens until you return you keep the conn open","commit_id":"7a706264daf73df3bf01241c4cd753a7064411e1"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"dbf4e40addf5eba27e80df6adc185b775851b9f1","unresolved":false,"context_lines":[{"line_number":159,"context_line":"                cur.fetchone()"},{"line_number":160,"context_line":"                self.acquired \u003d False"},{"line_number":161,"context_line":"                return True"},{"line_number":162,"context_line":"        except Exception:"},{"line_number":163,"context_line":"            raise"},{"line_number":164,"context_line":"        else:"},{"line_number":165,"context_line":"            self._conn.close()"},{"line_number":166,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5ff73747_10ce842d","line":163,"range":{"start_line":162,"start_character":8,"end_line":163,"end_character":17},"updated":"2017-04-27 13:06:19.000000000","message":"useless","commit_id":"7a706264daf73df3bf01241c4cd753a7064411e1"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"dbf4e40addf5eba27e80df6adc185b775851b9f1","unresolved":false,"context_lines":[{"line_number":162,"context_line":"        except Exception:"},{"line_number":163,"context_line":"            raise"},{"line_number":164,"context_line":"        else:"},{"line_number":165,"context_line":"            self._conn.close()"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    def __del__(self):"},{"line_number":168,"context_line":"        if self.acquired:"}],"source_content_type":"text/x-python","patch_set":4,"id":"5ff73747_f0e798ab","line":165,"range":{"start_line":165,"start_character":12,"end_line":165,"end_character":30},"updated":"2017-04-27 13:06:19.000000000","message":"put this on L161 before return","commit_id":"7a706264daf73df3bf01241c4cd753a7064411e1"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"26ca01f60cd0dd42a63e2fd67cd222131ce6422f","unresolved":false,"context_lines":[{"line_number":142,"context_line":"                            return False"},{"line_number":143,"context_line":"                        else:"},{"line_number":144,"context_line":"                            raise _retry.TryAgain"},{"line_number":145,"context_line":"            except Exception:"},{"line_number":146,"context_line":"                self._conn.close()"},{"line_number":147,"context_line":"                raise"},{"line_number":148,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5ff73747_c7497f31","line":145,"updated":"2017-04-27 13:44:35.000000000","message":"hm this will catch the TryAgain on L144 I think, maybe add an exception so there\u0027s no need to reconnect if it\u0027s just a TryAgain","commit_id":"5adfeae34d59aba837719b5546fab7cbc6690668"}]}
