)]}'
{"glance/api/common.py":[{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"c61aac48958e0f77f24de45f9a2a67d80b066a89","unresolved":false,"context_lines":[{"line_number":45,"context_line":"                 \"for image %(image_id)s: %(err)s\") % {\u0027image_id\u0027: image_id,"},{"line_number":46,"context_line":"                                                       \u0027err\u0027: err})"},{"line_number":47,"context_line":"        LOG.error(msg)"},{"line_number":48,"context_line":"        raise exception.GlanceException(msg)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    if expected_size !\u003d bytes_written:"},{"line_number":51,"context_line":"        msg \u003d (_(\"Backend storage for image %(image_id)s \""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2B7OM%3D","line":48,"updated":"2013-11-18 14:28:08.000000000","message":"Do you think it will be better if we add a new catching for GlanceException? and only do this wrap for Exception like this. Since the original exception probably already is a GlanceException subclass object, and this wrap will lost original exception \"type\" for upper layer IMO.","commit_id":"a49a73210dae9e14913dc3111d30f58854953640"},{"author":{"_account_id":7817,"name":"Thomas Leaman","email":"thomas.leaman@hp.com","username":"bugsduggan"},"change_message_id":"6e146fd49680764a39f11863bead6726c4397a04","unresolved":false,"context_lines":[{"line_number":45,"context_line":"                 \"for image %(image_id)s: %(err)s\") % {\u0027image_id\u0027: image_id,"},{"line_number":46,"context_line":"                                                       \u0027err\u0027: err})"},{"line_number":47,"context_line":"        LOG.error(msg)"},{"line_number":48,"context_line":"        raise exception.GlanceException(msg)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    if expected_size !\u003d bytes_written:"},{"line_number":51,"context_line":"        msg \u003d (_(\"Backend storage for image %(image_id)s \""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2B2KE%3D","line":48,"in_reply_to":"AAAATn%2F%2B3b8%3D","updated":"2013-11-19 12:31:39.000000000","message":"Ah I understand now, thanks. I will add that.","commit_id":"a49a73210dae9e14913dc3111d30f58854953640"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"d648c39cf6ee83ec0d714589d3f17a31f20df890","unresolved":false,"context_lines":[{"line_number":45,"context_line":"                 \"for image %(image_id)s: %(err)s\") % {\u0027image_id\u0027: image_id,"},{"line_number":46,"context_line":"                                                       \u0027err\u0027: err})"},{"line_number":47,"context_line":"        LOG.error(msg)"},{"line_number":48,"context_line":"        raise exception.GlanceException(msg)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    if expected_size !\u003d bytes_written:"},{"line_number":51,"context_line":"        msg \u003d (_(\"Backend storage for image %(image_id)s \""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2B6lU%3D","line":48,"in_reply_to":"AAAATn%2F%2B6%2Fs%3D","updated":"2013-11-18 16:08:46.000000000","message":"Yes, I mean add a new caching for GlanceException and this code stay here.\n\nIMO my key concern is not for reasonable message but under your now change, the original *sub-GlanceException* exception object will be wrapped also and exception\u0027s original type will be lost, and this can ask upper layer miss best handling branch.","commit_id":"a49a73210dae9e14913dc3111d30f58854953640"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"387e535ab3564e3beb8d54f54961b733719a0cb3","unresolved":false,"context_lines":[{"line_number":45,"context_line":"                 \"for image %(image_id)s: %(err)s\") % {\u0027image_id\u0027: image_id,"},{"line_number":46,"context_line":"                                                       \u0027err\u0027: err})"},{"line_number":47,"context_line":"        LOG.error(msg)"},{"line_number":48,"context_line":"        raise exception.GlanceException(msg)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    if expected_size !\u003d bytes_written:"},{"line_number":51,"context_line":"        msg \u003d (_(\"Backend storage for image %(image_id)s \""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2B3b8%3D","line":48,"in_reply_to":"AAAATn%2F%2B6Xs%3D","updated":"2013-11-19 07:11:03.000000000","message":"Adding a dedicated catch for exception.GlanceException, and don\u0027t do this warp for that. This block (for Exception) is make sense to me.","commit_id":"a49a73210dae9e14913dc3111d30f58854953640"},{"author":{"_account_id":7817,"name":"Thomas Leaman","email":"thomas.leaman@hp.com","username":"bugsduggan"},"change_message_id":"000ddc4cd566ca532036feadb09db1bb5be53dd3","unresolved":false,"context_lines":[{"line_number":45,"context_line":"                 \"for image %(image_id)s: %(err)s\") % {\u0027image_id\u0027: image_id,"},{"line_number":46,"context_line":"                                                       \u0027err\u0027: err})"},{"line_number":47,"context_line":"        LOG.error(msg)"},{"line_number":48,"context_line":"        raise exception.GlanceException(msg)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    if expected_size !\u003d bytes_written:"},{"line_number":51,"context_line":"        msg \u003d (_(\"Backend storage for image %(image_id)s \""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2B6Xs%3D","line":48,"in_reply_to":"AAAATn%2F%2B6lU%3D","updated":"2013-11-18 16:52:15.000000000","message":"I\u0027m not quite clear on what you\u0027re asking, sorry. Are you suggesting we can an explicit set of Exceptions here and only wrap those?","commit_id":"a49a73210dae9e14913dc3111d30f58854953640"},{"author":{"_account_id":7817,"name":"Thomas Leaman","email":"thomas.leaman@hp.com","username":"bugsduggan"},"change_message_id":"19e6e6b8485f55f4f68fe09fa3a2853c58564d9d","unresolved":false,"context_lines":[{"line_number":45,"context_line":"                 \"for image %(image_id)s: %(err)s\") % {\u0027image_id\u0027: image_id,"},{"line_number":46,"context_line":"                                                       \u0027err\u0027: err})"},{"line_number":47,"context_line":"        LOG.error(msg)"},{"line_number":48,"context_line":"        raise exception.GlanceException(msg)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    if expected_size !\u003d bytes_written:"},{"line_number":51,"context_line":"        msg \u003d (_(\"Backend storage for image %(image_id)s \""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F%2B6%2Fs%3D","line":48,"in_reply_to":"AAAATn%2F%2B7OM%3D","updated":"2013-11-18 15:14:20.000000000","message":"The point of this is that the original exception is _not_ a GlanceException and therefore doesn\u0027t get caught/handled properly (leading to nova hangs). By wrapping it up in this way, the Exception gets propagated and handled correctly thus terminating any possible hanging requests.\n\nThe intent/state of the original wrapped Exception will still be available in the new GlanceException\u0027s msg which I think should provide enough info for debugging backend issues.","commit_id":"a49a73210dae9e14913dc3111d30f58854953640"}],"glance/image_cache/__init__.py":[{"author":{"_account_id":7884,"name":"Noboru Arai","email":"arai@mxa.nes.nec.co.jp","username":"NoboruArai"},"change_message_id":"6373bb2462e4d92172c03cda42936f4e309a94ff","unresolved":false,"context_lines":[{"line_number":235,"context_line":"        except exception.GlanceException:"},{"line_number":236,"context_line":"            raise"},{"line_number":237,"context_line":"        except Exception as err:"},{"line_number":238,"context_line":"            trace \u003d sys.exc_info()[2]"},{"line_number":239,"context_line":"            raise exception.GlanceCacheException("},{"line_number":240,"context_line":"                image_id\u003dimage_id, err\u003derr)"},{"line_number":241,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAATn%2F9lEo%3D","line":238,"updated":"2013-12-10 01:18:03.000000000","message":"\"trace\" variable is unused after line 238.","commit_id":"0ced87fe83a3708d9e5ee0d21f86434732145e6a"},{"author":{"_account_id":455,"name":"Stuart McLaren","email":"stuart.mclaren@hpe.com","username":"stuart-mclaren"},"change_message_id":"b647f0b470daf619ba5ec69369fa844c584b739a","unresolved":false,"context_lines":[{"line_number":232,"context_line":"        try:"},{"line_number":233,"context_line":"            with self.driver.open_for_write(image_id) as cache_file:"},{"line_number":234,"context_line":"                yield cache_file"},{"line_number":235,"context_line":"        except exception.GlanceException:"},{"line_number":236,"context_line":"            raise"},{"line_number":237,"context_line":"        except Exception as err:"},{"line_number":238,"context_line":"            trace \u003d sys.exc_info()[2]"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F9iqs%3D","line":235,"updated":"2013-12-10 12:44:48.000000000","message":"there\u0027s a couple places where we don\u0027t log the exception, I\u0027m guessing that\u0027s intentional -- that we\u0027re relying on the final excepts in \u0027cach_tee_iter\u0027 to do that?","commit_id":"6e02848c8e8cce22a6b90e8bc186d443fcc891b5"},{"author":{"_account_id":7817,"name":"Thomas Leaman","email":"thomas.leaman@hp.com","username":"bugsduggan"},"change_message_id":"aabd15e3f987d74f60640dd7092b625e704d5775","unresolved":false,"context_lines":[{"line_number":232,"context_line":"        try:"},{"line_number":233,"context_line":"            with self.driver.open_for_write(image_id) as cache_file:"},{"line_number":234,"context_line":"                yield cache_file"},{"line_number":235,"context_line":"        except exception.GlanceException:"},{"line_number":236,"context_line":"            raise"},{"line_number":237,"context_line":"        except Exception as err:"},{"line_number":238,"context_line":"            trace \u003d sys.exc_info()[2]"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAATn%2F9ipA%3D","line":235,"in_reply_to":"AAAATn%2F9iqs%3D","updated":"2013-12-10 12:49:33.000000000","message":"Yes this is simply wrapping the exception in order for it to be handled (and reported) appropriately in cache_tee_iter","commit_id":"6e02848c8e8cce22a6b90e8bc186d443fcc891b5"}]}
