)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7040,"name":"GuoHui LIu","email":"liuguohui@gmail.com","username":"guohliu"},"change_message_id":"646b0621c0b42ada9f68290251b77efc02b57edd","unresolved":false,"context_lines":[{"line_number":25,"context_line":"handler for lifecycle events."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Change-Id: I090765802bfe443440f16722bc7c43b6280fe56a"},{"line_number":28,"context_line":"Fixes: bug #1240905"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAATH%2F%2FU0A%3D","line":28,"updated":"2013-10-17 17:52:04.000000000","message":"Closes-bug: #","commit_id":"67c5e34c4f9c0b071e526158bde8d4fc71a14662"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"9194a174172ffa0bd8f6c8c7e998275385181141","unresolved":false,"context_lines":[{"line_number":578,"context_line":""},{"line_number":579,"context_line":"    def _get_connection(self):"},{"line_number":580,"context_line":"        # multiple concurrent connections are protected by _wrapped_conn_lock"},{"line_number":581,"context_line":"        # lock must be dropped to call has_min_version()"},{"line_number":582,"context_line":"        new_conn \u003d False"},{"line_number":583,"context_line":"        with self._wrapped_conn_lock:"},{"line_number":584,"context_line":"            wrapped_conn \u003d self._wrapped_conn"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATX%2F%2F%2FFs%3D","line":581,"updated":"2013-10-23 09:17:15.000000000","message":"I don\u0027t think this is good. I think we want to have the lock held while we setup events on the new connection. ie the whole _get_connection method should be atomic. I understand you have to drop it to call has_min_version, but we could solve that by passing in a \"conn\" object, avoiding the re-entrancy problems.","commit_id":"a3597a36ccca3f2b688de7be9be0d542a443767f"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"4a8964d705bec1bd9757cd560e87e34095a9efb9","unresolved":false,"context_lines":[{"line_number":592,"context_line":"                else:"},{"line_number":593,"context_line":"                    wrapped_conn \u003d tpool.proxy_call("},{"line_number":594,"context_line":"                        (libvirt.virDomain, libvirt.virConnect),"},{"line_number":595,"context_line":"                        self._connect, self.uri(), self.read_only)"},{"line_number":596,"context_line":"                self._wrapped_conn \u003d wrapped_conn"},{"line_number":597,"context_line":""},{"line_number":598,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATn%2F%2F8nw%3D","line":595,"updated":"2013-10-24 18:54:13.000000000","message":"If you end up respinning this, I\u0027d really like to see the above broken out into a function instead of increasing the nesting level this much.","commit_id":"b2e64e379835f57128e66f507438130eda716814"}]}
