)]}'
{"oslo_config/cfg.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3edb2b50b8e893852861a39098f7e2cc0692cd17","unresolved":false,"context_lines":[{"line_number":2623,"context_line":"            key \u003d (group, name)"},{"line_number":2624,"context_line":"        # Keep a counter of how many times we\u0027ve tried to access this value"},{"line_number":2625,"context_line":"        # to see if we\u0027re in an infinite loop."},{"line_number":2626,"context_line":"        count \u003d self._get_counter.setdefault(key, 0)"},{"line_number":2627,"context_line":"        if namespace is None:"},{"line_number":2628,"context_line":"            try:"},{"line_number":2629,"context_line":"                LOG.info(\u0027Getting value for option %s from cache.\u0027, key)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ffb9cba7_8778aef8","line":2626,"range":{"start_line":2626,"start_character":8,"end_line":2626,"end_character":52},"updated":"2019-04-22 14:38:46.000000000","message":"I need to reset the counter when we get a value.","commit_id":"7bc34f43211b5456175c9d119e647089700c01ff"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e73a6684ef2b9ccd4c1aa117fc0296cac9155ec5","unresolved":false,"context_lines":[{"line_number":2637,"context_line":"                # traceback to figure out where this is coming from."},{"line_number":2638,"context_line":"                count +\u003d 1"},{"line_number":2639,"context_line":"                if count \u003e 2:"},{"line_number":2640,"context_line":"                    print(\u0027Value for option %s is still not cached?\u0027 %"},{"line_number":2641,"context_line":"                          str(key))"},{"line_number":2642,"context_line":"                    traceback.print_exc()"},{"line_number":2643,"context_line":"                self._get_counter[key] \u003d count"},{"line_number":2644,"context_line":"        # Either there is no namespace or the value isn\u0027t cached yet."},{"line_number":2645,"context_line":"        print(\u0027Fetching value for option [%s]/%s using namespace %s\u0027 %"}],"source_content_type":"text/x-python","patch_set":3,"id":"ffb9cba7_57e1bacf","line":2642,"range":{"start_line":2640,"start_character":20,"end_line":2642,"end_character":41},"updated":"2019-04-25 14:18:21.000000000","message":"We seem to not be recreating the failure with all the prints so I\u0027m just going to remove those (to make sure they aren\u0027t messing with something in the failure) and change this to raise.","commit_id":"a98d85e93ffc4cd9bb8449ebdc7b5d8b310f4625"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dd4adbb4b23b5a99af87716f92a32c2aa7c89c19","unresolved":false,"context_lines":[{"line_number":2053,"context_line":"            if kwargs.pop(\u0027clear_cache\u0027, True):"},{"line_number":2054,"context_line":"                result \u003d f(self, *args, **kwargs)"},{"line_number":2055,"context_line":"                self.__cache.clear()"},{"line_number":2056,"context_line":"                self._get_counter.clear()"},{"line_number":2057,"context_line":"                return result"},{"line_number":2058,"context_line":"            else:"},{"line_number":2059,"context_line":"                return f(self, *args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":5,"id":"ffb9cba7_168ed22d","line":2056,"updated":"2019-04-26 12:39:12.000000000","message":"This tries to load this up as an option:\n\nFile \"/home/zuul/src/opendev.org/openstack/nova/.tox/lower-constraints/lib/python3.6/site-packages/oslo_config/cfg.py\", line 2056, in __inner\\n    self._get_counter.clear()\\n  File \"/home/zuul/src/opendev.org/openstack/nova/.tox/lower-constraints/lib/python3.6/site-packages/oslo_config/cfg.py\", line 2201, in __getattr__\\n    raise NoSuchOptError(name)\\noslo_config.cfg.NoSuchOptError: no such option _get_counter in group [DEFAULT]\\n\u0027","commit_id":"2ee102026bde62c98e86db889c84e5b386cc4595"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"abdeb79172c76002ce4d259188260b83fe2669e4","unresolved":false,"context_lines":[{"line_number":2624,"context_line":"            key \u003d (group, name)"},{"line_number":2625,"context_line":"        # Keep a counter of how many times we\u0027ve tried to access this value"},{"line_number":2626,"context_line":"        # to see if we\u0027re in an infinite loop."},{"line_number":2627,"context_line":"        count \u003d self._get_counter.setdefault(key, 0)"},{"line_number":2628,"context_line":"        if namespace is None:"},{"line_number":2629,"context_line":"            try:"},{"line_number":2630,"context_line":"                value \u003d self.__cache[key]"}],"source_content_type":"text/x-python","patch_set":6,"id":"ffb9cba7_e6c7c911","line":2627,"range":{"start_line":2627,"start_character":16,"end_line":2627,"end_character":33},"updated":"2019-04-26 15:57:35.000000000","message":"This is recursing into __getattr__... so we need to access _get_counter without accessing it from __getattr__.\n\nThis shouldn\u0027t happen though:\n\nhttps://docs.python.org/3.6/reference/datamodel.html#object.__getattr__\n\n__getattr__ should only be called if the attribute isn\u0027t on self but _get_counter and __cache should definitely be on self since they are set in __init__.","commit_id":"1e185d366809982b068c9f5797e463c789c9617e"}]}
