)]}'
{"oslo/db/sqlalchemy/session.py":[{"author":{"_account_id":7536,"name":"Ilya Pekelny","email":"ipekelny@mirantis.com","username":"I159"},"change_message_id":"c239775a3404008c7412b23f9900b82f7e706091","unresolved":false,"context_lines":[{"line_number":504,"context_line":"    except Exception as ex:"},{"line_number":505,"context_line":"        if (engine.dialect.is_disconnect(ex, dbapi_conn, cursor) or"},{"line_number":506,"context_line":"            # NOTE(dmllr): Temporary workaround until the following is in:"},{"line_number":507,"context_line":"            # https://github.com/zzzeek/sqlalchemy/pull/87"},{"line_number":508,"context_line":"            (\u0027unknown error\u0027 in str(ex).partition(\u0027\\n\u0027)[0] and"},{"line_number":509,"context_line":"             getattr(dbapi_conn, \u0027closed\u0027, False))):"},{"line_number":510,"context_line":"            msg \u003d _LW(\u0027Database server has gone away: %s\u0027) % ex"}],"source_content_type":"text/x-python","patch_set":1,"id":"7adec928_175a07f3","line":507,"updated":"2014-05-13 15:04:55.000000000","message":"Actually, as Mike already knows about the problem and it will be fixed soon, I think it is bad idea to implement this temporary solution. Temporary solutions often stay in place for long time.","commit_id":"bb847fd337aebb5fd5fa347c043b15f0f4088d98"},{"author":{"_account_id":6593,"name":"Dirk Mueller","email":"dirk@dmllr.de","username":"dmllr"},"change_message_id":"fc1a8a8ad4ce7995c517845ef95a0199b7f8f5e1","unresolved":false,"context_lines":[{"line_number":504,"context_line":"    except Exception as ex:"},{"line_number":505,"context_line":"        if (engine.dialect.is_disconnect(ex, dbapi_conn, cursor) or"},{"line_number":506,"context_line":"            # NOTE(dmllr): Temporary workaround until the following is in:"},{"line_number":507,"context_line":"            # https://github.com/zzzeek/sqlalchemy/pull/87"},{"line_number":508,"context_line":"            (\u0027unknown error\u0027 in str(ex).partition(\u0027\\n\u0027)[0] and"},{"line_number":509,"context_line":"             getattr(dbapi_conn, \u0027closed\u0027, False))):"},{"line_number":510,"context_line":"            msg \u003d _LW(\u0027Database server has gone away: %s\u0027) % ex"}],"source_content_type":"text/x-python","patch_set":1,"id":"3ae8d1ca_e69a9613","line":507,"in_reply_to":"7adec928_109eb454","updated":"2014-05-27 20:26:09.000000000","message":"I can adjust it to the github change. for 2, there is also a pending review request for oslo-incubator, but it has been blocked due to the change missing in oslo.db.","commit_id":"bb847fd337aebb5fd5fa347c043b15f0f4088d98"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"9b5e9ad7385fa4984fa7be9fc047c4bec01d9dc0","unresolved":false,"context_lines":[{"line_number":504,"context_line":"    except Exception as ex:"},{"line_number":505,"context_line":"        if (engine.dialect.is_disconnect(ex, dbapi_conn, cursor) or"},{"line_number":506,"context_line":"            # NOTE(dmllr): Temporary workaround until the following is in:"},{"line_number":507,"context_line":"            # https://github.com/zzzeek/sqlalchemy/pull/87"},{"line_number":508,"context_line":"            (\u0027unknown error\u0027 in str(ex).partition(\u0027\\n\u0027)[0] and"},{"line_number":509,"context_line":"             getattr(dbapi_conn, \u0027closed\u0027, False))):"},{"line_number":510,"context_line":"            msg \u003d _LW(\u0027Database server has gone away: %s\u0027) % ex"}],"source_content_type":"text/x-python","patch_set":1,"id":"7adec928_109eb454","line":507,"in_reply_to":"7adec928_115ccc7d","updated":"2014-05-22 15:01:00.000000000","message":"1. This is probably a bit outdated as in your commit on the github you check \u0027closed\u0027 attribute first and return True, if it equals True.\n\n2. I\u0027m not sure we need to hurry here and merge a workaround (oslo.db hasn\u0027t had a stable release yet and is not used in any projects).\n\nProbably, you want to change olso-incubator (so that you would sync code to projects then).","commit_id":"bb847fd337aebb5fd5fa347c043b15f0f4088d98"},{"author":{"_account_id":6593,"name":"Dirk Mueller","email":"dirk@dmllr.de","username":"dmllr"},"change_message_id":"8ffab853e1bfe065431f3a85c0655fa7e461c078","unresolved":false,"context_lines":[{"line_number":504,"context_line":"    except Exception as ex:"},{"line_number":505,"context_line":"        if (engine.dialect.is_disconnect(ex, dbapi_conn, cursor) or"},{"line_number":506,"context_line":"            # NOTE(dmllr): Temporary workaround until the following is in:"},{"line_number":507,"context_line":"            # https://github.com/zzzeek/sqlalchemy/pull/87"},{"line_number":508,"context_line":"            (\u0027unknown error\u0027 in str(ex).partition(\u0027\\n\u0027)[0] and"},{"line_number":509,"context_line":"             getattr(dbapi_conn, \u0027closed\u0027, False))):"},{"line_number":510,"context_line":"            msg \u003d _LW(\u0027Database server has gone away: %s\u0027) % ex"}],"source_content_type":"text/x-python","patch_set":1,"id":"7adec928_da4b6685","line":507,"in_reply_to":"7adec928_175a07f3","updated":"2014-05-13 16:29:20.000000000","message":"It\u0027s a minor workaround that I\u0027ll be removing once weove to requiring a version of SQLAlchemy that has the fix. Right now this minor code change fixes a major issue regarding HA compatibility, so I think the benefit out weights the burden.","commit_id":"bb847fd337aebb5fd5fa347c043b15f0f4088d98"},{"author":{"_account_id":7536,"name":"Ilya Pekelny","email":"ipekelny@mirantis.com","username":"I159"},"change_message_id":"6d10577babdac78260cfcd95687880c43ae22e30","unresolved":false,"context_lines":[{"line_number":504,"context_line":"    except Exception as ex:"},{"line_number":505,"context_line":"        if (engine.dialect.is_disconnect(ex, dbapi_conn, cursor) or"},{"line_number":506,"context_line":"            # NOTE(dmllr): Temporary workaround until the following is in:"},{"line_number":507,"context_line":"            # https://github.com/zzzeek/sqlalchemy/pull/87"},{"line_number":508,"context_line":"            (\u0027unknown error\u0027 in str(ex).partition(\u0027\\n\u0027)[0] and"},{"line_number":509,"context_line":"             getattr(dbapi_conn, \u0027closed\u0027, False))):"},{"line_number":510,"context_line":"            msg \u003d _LW(\u0027Database server has gone away: %s\u0027) % ex"}],"source_content_type":"text/x-python","patch_set":1,"id":"7adec928_115ccc7d","line":507,"in_reply_to":"7adec928_da4b6685","updated":"2014-05-14 08:08:20.000000000","message":"Ok, I see.","commit_id":"bb847fd337aebb5fd5fa347c043b15f0f4088d98"}],"tests/sqlalchemy/test_sqlalchemy.py":[{"author":{"_account_id":7536,"name":"Ilya Pekelny","email":"ipekelny@mirantis.com","username":"I159"},"change_message_id":"100c7d3f79f377cd0add5d8859b18971e04630fe","unresolved":false,"context_lines":[{"line_number":230,"context_line":"        pass"},{"line_number":231,"context_line":""},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"class TestDBDisconnected(oslo_test.BaseTestCase):"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"    def _test_ping_listener_disconnected(self,"},{"line_number":236,"context_line":"                                         connection,"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_29a35601","line":233,"updated":"2014-06-24 13:07:55.000000000","message":"I agree with Ben. If you use database engine, you should use DbTestCase https://github.com/openstack/oslo.db/blob/master/oslo/db/sqlalchemy/test_base.py#L56. This test case uses a fixture which provides real engine https://github.com/openstack/oslo.db/blob/master/oslo/db/sqlalchemy/test_base.py#L52. Now we use opportunistic approach. So you can use real backend, it means you have real engine and real database for your tests. If your test is backend-specific you can decorate your test with `backend_specific` decorator https://github.com/openstack/oslo.db/blob/master/oslo/db/sqlalchemy/test_base.py#L74.","commit_id":"01287e84f2a3bf81b97534b414a7261b38e977be"},{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"85ac1cf0dbc2b75eae50935991c07b5b49f6d056","unresolved":false,"context_lines":[{"line_number":284,"context_line":"            raise OperationalError(\u0027unknown error\u0027)"},{"line_number":285,"context_line":"        with mock.patch.object(FakeCursor, \u0027execute\u0027,"},{"line_number":286,"context_line":"                               side_effect\u003dfake_execute):"},{"line_number":287,"context_line":"            # TODO(dmueller): Need a fake engine for postgresql since psycopg2"},{"line_number":288,"context_line":"            # is not in requirements. Change this code to use real psycopg2"},{"line_number":289,"context_line":"            # once it is available."},{"line_number":290,"context_line":"            fake_create_engine \u003d lambda *args, **kargs: FakePsqlEngine()"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ae8d1ca_74d8ecef","line":287,"updated":"2014-05-27 21:42:19.000000000","message":"I still have an issue with this comment.  psycopg2 is in global requirements, so there\u0027s no reason we can\u0027t use the real thing: http://git.openstack.org/cgit/openstack/requirements/tree/global-requirements.txt#n157\n\nAlso see my comment in https://review.openstack.org/#/c/86930/1/tests/unit/db/sqlalchemy/test_sqlalchemy.py","commit_id":"01287e84f2a3bf81b97534b414a7261b38e977be"}]}
