)]}'
{"ceilometer/cli.py":[{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"228a702899bedb0b4f06f9e8fd4b563e2f3615fd","unresolved":false,"context_lines":[{"line_number":26,"context_line":"# NOTE(jd) We need to monkey patch the socket and select module for,"},{"line_number":27,"context_line":"# at least, oslo.rpc, otherwise everything\u0027s blocked on its first read()"},{"line_number":28,"context_line":"# or select()"},{"line_number":29,"context_line":"eventlet.monkey_patch(socket\u003dTrue, select\u003dTrue, thread\u003dTrue)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"from oslo.config import cfg"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2BNyM%3D","line":29,"updated":"2014-03-28 11:01:32.000000000","message":"Can we selectively monkey patch depending on which storage driver is loaded?\n\n... i.e. only do so if hbase is being used, and not otherwise?","commit_id":"58074c8bf550036491ae718209e7b45680e0f0f6"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"50dff0194fc90c40a602505283410430f8828d3e","unresolved":false,"context_lines":[{"line_number":26,"context_line":"# NOTE(jd) We need to monkey patch the socket and select module for,"},{"line_number":27,"context_line":"# at least, oslo.rpc, otherwise everything\u0027s blocked on its first read()"},{"line_number":28,"context_line":"# or select()"},{"line_number":29,"context_line":"eventlet.monkey_patch(socket\u003dTrue, select\u003dTrue, thread\u003dTrue)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"from oslo.config import cfg"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2BMQ0%3D","line":29,"in_reply_to":"AAAAWH%2F%2BNN4%3D","updated":"2014-03-28 14:27:30.000000000","message":"I\u0027m ok to reenable thread. Any ceilometer deps that use threading.local (and I think threading.(R]Lock too) force us to enable monkeypatching of threading module, otherwise the assumption done by the deps can be wrong.\n\nFYI, my oslo.messaging patch needs this to work too, because oslo.messaging use threading.local too.","commit_id":"58074c8bf550036491ae718209e7b45680e0f0f6"},{"author":{"_account_id":7478,"name":"Nadya Shakhat","email":"nadmi4@gmail.com","username":"nprivalova"},"change_message_id":"1a1f881ef5e8f1d3d8dd44caedb00932d15e213a","unresolved":false,"context_lines":[{"line_number":26,"context_line":"# NOTE(jd) We need to monkey patch the socket and select module for,"},{"line_number":27,"context_line":"# at least, oslo.rpc, otherwise everything\u0027s blocked on its first read()"},{"line_number":28,"context_line":"# or select()"},{"line_number":29,"context_line":"eventlet.monkey_patch(socket\u003dTrue, select\u003dTrue, thread\u003dTrue)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"from oslo.config import cfg"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2BM8c%3D","line":29,"in_reply_to":"AAAAWH%2F%2BNOg%3D","updated":"2014-03-28 13:11:56.000000000","message":"Julien, happybase ConnectionPool uses thread_local. Without this patching I get tons of \"simultanious file read on fileno 1 (2,3,4,....)\"","commit_id":"58074c8bf550036491ae718209e7b45680e0f0f6"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"09d35168c9e16e8b06dc9670fbcb9ad34e762964","unresolved":false,"context_lines":[{"line_number":26,"context_line":"# NOTE(jd) We need to monkey patch the socket and select module for,"},{"line_number":27,"context_line":"# at least, oslo.rpc, otherwise everything\u0027s blocked on its first read()"},{"line_number":28,"context_line":"# or select()"},{"line_number":29,"context_line":"eventlet.monkey_patch(socket\u003dTrue, select\u003dTrue, thread\u003dTrue)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"from oslo.config import cfg"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2BNN4%3D","line":29,"in_reply_to":"AAAAWH%2F%2BNYU%3D","updated":"2014-03-28 12:28:19.000000000","message":"@Nadya: OK fair enough, I was just being risk averse and thinking of minimizing the blast radius of this change (given that in the past we had explicitly set \u0027all\u003dFalse\u0027, though IIUC if any explicit arg is set to True, then \u0027all\u0027 reverts back to False).\n\njd_ \u0026 sileht have had more exposure to the hazards of eventlet, so I\u0027ll let them comment on the safety or otherwise of patching thread across the board.","commit_id":"58074c8bf550036491ae718209e7b45680e0f0f6"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"c72b7867b1ba245c43bffcb83e9dae0429fcfb6b","unresolved":false,"context_lines":[{"line_number":26,"context_line":"# NOTE(jd) We need to monkey patch the socket and select module for,"},{"line_number":27,"context_line":"# at least, oslo.rpc, otherwise everything\u0027s blocked on its first read()"},{"line_number":28,"context_line":"# or select()"},{"line_number":29,"context_line":"eventlet.monkey_patch(socket\u003dTrue, select\u003dTrue, thread\u003dTrue)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"from oslo.config import cfg"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2BNOg%3D","line":29,"in_reply_to":"AAAAWH%2F%2BNYU%3D","updated":"2014-03-28 12:24:48.000000000","message":"Why do we need to monkey patch threads? :(","commit_id":"58074c8bf550036491ae718209e7b45680e0f0f6"},{"author":{"_account_id":7478,"name":"Nadya Shakhat","email":"nadmi4@gmail.com","username":"nprivalova"},"change_message_id":"30ad240c80f9be93123125761f2ce5c951741475","unresolved":false,"context_lines":[{"line_number":26,"context_line":"# NOTE(jd) We need to monkey patch the socket and select module for,"},{"line_number":27,"context_line":"# at least, oslo.rpc, otherwise everything\u0027s blocked on its first read()"},{"line_number":28,"context_line":"# or select()"},{"line_number":29,"context_line":"eventlet.monkey_patch(socket\u003dTrue, select\u003dTrue, thread\u003dTrue)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"from oslo.config import cfg"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2BNYU%3D","line":29,"in_reply_to":"AAAAWH%2F%2BNwQ%3D","updated":"2014-03-28 12:00:22.000000000","message":"Eoghan, we need monkey-patching before config parsing. But without parsing we cannot determine backend type. So the answer is no","commit_id":"58074c8bf550036491ae718209e7b45680e0f0f6"},{"author":{"_account_id":7478,"name":"Nadya Shakhat","email":"nadmi4@gmail.com","username":"nprivalova"},"change_message_id":"b2900af6c4e02cc10a81514239fcb3f10d77d063","unresolved":false,"context_lines":[{"line_number":26,"context_line":"# NOTE(jd) We need to monkey patch the socket and select module for,"},{"line_number":27,"context_line":"# at least, oslo.rpc, otherwise everything\u0027s blocked on its first read()"},{"line_number":28,"context_line":"# or select()"},{"line_number":29,"context_line":"eventlet.monkey_patch(socket\u003dTrue, select\u003dTrue, thread\u003dTrue)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"from oslo.config import cfg"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAWH%2F%2BNwQ%3D","line":29,"in_reply_to":"AAAAWH%2F%2BNyM%3D","updated":"2014-03-28 11:06:58.000000000","message":"investigating this","commit_id":"58074c8bf550036491ae718209e7b45680e0f0f6"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"40cd6b75fcf2746cd5f459e11d210ed31c9069d4","unresolved":false,"context_lines":[{"line_number":26,"context_line":"# NOTE(jd) We need to monkey patch the socket and select module for,"},{"line_number":27,"context_line":"# at least, oslo.rpc, otherwise everything\u0027s blocked on its first read()"},{"line_number":28,"context_line":"# or select()"},{"line_number":29,"context_line":"eventlet.monkey_patch(socket\u003dTrue, select\u003dTrue, thread\u003dTrue)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"from oslo.config import cfg"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWH%2F%2BNE8%3D","line":29,"updated":"2014-03-28 12:54:59.000000000","message":"this worries me based on the past issues we had. we should really get Mehdi\u0027s opinion here.","commit_id":"10e8111ac68e757e63df3edfccc61ba8f7abcde4"},{"author":{"_account_id":7478,"name":"Nadya Shakhat","email":"nadmi4@gmail.com","username":"nprivalova"},"change_message_id":"1033262ffc0abfac123e43dddf7bbd71863fff17","unresolved":false,"context_lines":[{"line_number":26,"context_line":"# NOTE(jd) We need to monkey patch the socket and select module for,"},{"line_number":27,"context_line":"# at least, oslo.rpc, otherwise everything\u0027s blocked on its first read()"},{"line_number":28,"context_line":"# or select()"},{"line_number":29,"context_line":"eventlet.monkey_patch(socket\u003dTrue, select\u003dTrue, thread\u003dTrue)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"from oslo.config import cfg"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWH%2F%2BMKE%3D","line":29,"in_reply_to":"AAAAWH%2F%2BNE8%3D","updated":"2014-03-28 14:37:38.000000000","message":"Please take a look on Mehdi\u0027s comments in patch set 3","commit_id":"10e8111ac68e757e63df3edfccc61ba8f7abcde4"}],"ceilometer/storage/impl_hbase.py":[{"author":{"_account_id":6786,"name":"Sergey Lukjanov","email":"me@slukjanov.name","username":"slukjanov"},"change_message_id":"cf465e76326f3e1e898306e738d21e54bcd7e7f8","unresolved":false,"context_lines":[{"line_number":172,"context_line":""},{"line_number":173,"context_line":"    @staticmethod"},{"line_number":174,"context_line":"    def _get_connection_pool(conf):"},{"line_number":175,"context_line":"        \"\"\"Return a connection to the database."},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"        .. note::"},{"line_number":178,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2BT%2FU%3D","line":175,"updated":"2014-03-27 17:26:59.000000000","message":"connection pool","commit_id":"05fd022601ca8048c0ce0e497a6a327fa1ad7df1"},{"author":{"_account_id":7478,"name":"Nadya Shakhat","email":"nadmi4@gmail.com","username":"nprivalova"},"change_message_id":"3288c3eacc8a739beb5681e85df72e800eb1f13f","unresolved":false,"context_lines":[{"line_number":172,"context_line":""},{"line_number":173,"context_line":"    @staticmethod"},{"line_number":174,"context_line":"    def _get_connection_pool(conf):"},{"line_number":175,"context_line":"        \"\"\"Return a connection to the database."},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"        .. note::"},{"line_number":178,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2BOAY%3D","line":175,"in_reply_to":"AAAAWH%2F%2BT%2FU%3D","updated":"2014-03-28 10:26:39.000000000","message":"Done","commit_id":"05fd022601ca8048c0ce0e497a6a327fa1ad7df1"},{"author":{"_account_id":6786,"name":"Sergey Lukjanov","email":"me@slukjanov.name","username":"slukjanov"},"change_message_id":"cf465e76326f3e1e898306e738d21e54bcd7e7f8","unresolved":false,"context_lines":[{"line_number":177,"context_line":"        .. note::"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"          The tests use a subclass to override this and return an"},{"line_number":180,"context_line":"          in-memory connection."},{"line_number":181,"context_line":"        \"\"\""},{"line_number":182,"context_line":"        LOG.debug(_(\u0027connecting to HBase on %(host)s:%(port)s\u0027) % ("},{"line_number":183,"context_line":"                  {\u0027host\u0027: conf[\u0027host\u0027], \u0027port\u0027: conf[\u0027port\u0027]}))"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2BT%2FE%3D","line":180,"updated":"2014-03-27 17:26:59.000000000","message":"ditto","commit_id":"05fd022601ca8048c0ce0e497a6a327fa1ad7df1"},{"author":{"_account_id":7478,"name":"Nadya Shakhat","email":"nadmi4@gmail.com","username":"nprivalova"},"change_message_id":"3288c3eacc8a739beb5681e85df72e800eb1f13f","unresolved":false,"context_lines":[{"line_number":177,"context_line":"        .. note::"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"          The tests use a subclass to override this and return an"},{"line_number":180,"context_line":"          in-memory connection."},{"line_number":181,"context_line":"        \"\"\""},{"line_number":182,"context_line":"        LOG.debug(_(\u0027connecting to HBase on %(host)s:%(port)s\u0027) % ("},{"line_number":183,"context_line":"                  {\u0027host\u0027: conf[\u0027host\u0027], \u0027port\u0027: conf[\u0027port\u0027]}))"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAWH%2F%2BOAU%3D","line":180,"in_reply_to":"AAAAWH%2F%2BT%2FE%3D","updated":"2014-03-28 10:26:39.000000000","message":"Done","commit_id":"05fd022601ca8048c0ce0e497a6a327fa1ad7df1"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"40cd6b75fcf2746cd5f459e11d210ed31c9069d4","unresolved":false,"context_lines":[{"line_number":160,"context_line":"                      self.METER_TABLE,"},{"line_number":161,"context_line":"                      self.ALARM_TABLE,"},{"line_number":162,"context_line":"                      self.ALARM_HISTORY_TABLE]:"},{"line_number":163,"context_line":"            with self.conn_pool.connection() as conn:"},{"line_number":164,"context_line":"                try:"},{"line_number":165,"context_line":"                    conn.disable_table(table)"},{"line_number":166,"context_line":"                except Exception:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWH%2F%2BNHc%3D","line":163,"updated":"2014-03-28 12:54:59.000000000","message":"move this up so we use a single connection.","commit_id":"10e8111ac68e757e63df3edfccc61ba8f7abcde4"},{"author":{"_account_id":7478,"name":"Nadya Shakhat","email":"nadmi4@gmail.com","username":"nprivalova"},"change_message_id":"1033262ffc0abfac123e43dddf7bbd71863fff17","unresolved":false,"context_lines":[{"line_number":160,"context_line":"                      self.METER_TABLE,"},{"line_number":161,"context_line":"                      self.ALARM_TABLE,"},{"line_number":162,"context_line":"                      self.ALARM_HISTORY_TABLE]:"},{"line_number":163,"context_line":"            with self.conn_pool.connection() as conn:"},{"line_number":164,"context_line":"                try:"},{"line_number":165,"context_line":"                    conn.disable_table(table)"},{"line_number":166,"context_line":"                except Exception:"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAWH%2F%2BMKY%3D","line":163,"in_reply_to":"AAAAWH%2F%2BNHc%3D","updated":"2014-03-28 14:37:38.000000000","message":"Done","commit_id":"10e8111ac68e757e63df3edfccc61ba8f7abcde4"}]}
