Project

General

Profile

Bug #9087

IndexError: pop from empty list

Added by Evgeny Novikov 6 months ago. Updated 4 months ago.

Status:
Closed
Priority:
Urgent
Category:
Bridge
Target version:
Start date:
07/11/2018
Due date:
% Done:

0%

Estimated time:
Detected in build:
svn
Platform:
Published in build:

Description

It seems that we need a bit more robust error traces comparison:

[11.Jul.2018 07:44:44] Error traces comparison failed: pop from empty list
Traceback (most recent call last):
  File "/var/www/bridge/marks/ConvertTrace.py", line 104, in __convert
    return ErrorTraceConvertionCache.objects.get(unsafe=self.unsafe, function=self.function).converted
  File "/usr/local/lib/python3.4/dist-packages/django/db/models/manager.py", line 82, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/usr/local/lib/python3.4/dist-packages/django/db/models/query.py", line 403, in get
    self.model._meta.object_name
marks.models.DoesNotExist: ErrorTraceConvertionCache matching query does not exist.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/var/www/bridge/marks/UnsafeUtils.py", line 366, in __connect
    compare_result = CompareTrace(self._functions[mark_id], self._patterns[mark_id], unsafe).result
  File "/var/www/bridge/marks/CompareTrace.py", line 68, in __init__
    self.result = func()
  File "/var/www/bridge/marks/CompareTrace.py", line 90, in thread_call_forests
    converted_et = self.__get_converted_trace('thread_call_forests')
  File "/var/www/bridge/marks/CompareTrace.py", line 109, in __get_converted_trace
    ).parsed_trace()
  File "/var/www/bridge/marks/ConvertTrace.py", line 93, in __init__
    self.converted = self.__convert()
  File "/var/www/bridge/marks/ConvertTrace.py", line 106, in __convert
    self._parsed_trace = ConvertTrace(self.function.name, self.error_trace).pattern_error_trace
  File "/var/www/bridge/marks/ConvertTrace.py", line 61, in __init__
    self.pattern_error_trace = func()
  File "/var/www/bridge/marks/ConvertTrace.py", line 84, in thread_call_forests
    return ErrorTraceForests(self.error_trace, all_threads=True).trace
  File "/var/www/bridge/reports/etv.py", line 759, in __init__
    self.trace = self.__get_forests(get_error_trace_nodes(self.data))
  File "/var/www/bridge/reports/etv.py", line 774, in __get_forests
    forests.extend(self.__collect_forests(threads[t]))
  File "/var/www/bridge/reports/etv.py", line 851, in __collect_forests
    forest[fname].return_from_func()
  File "/var/www/bridge/reports/etv.py", line 697, in return_from_func
    self.call_stack.pop()
IndexError: pop from empty list

Unfortunately, I can't provide you concrete examples of error traces and unsafe marks to catch the issue, since there are hundreds of them while the exception doesn't point out any.

History

#1 Updated by Evgeny Novikov 6 months ago

  • Target version changed from 1.1 to 2.0

Let's Vladimir will do this after his vacation.

#2 Updated by Vladimir Gratinskiy 4 months ago

  • Status changed from New to Resolved

The exception now should be catched (earlier it became "Unknown error" for mark association). Implemented in "bridge-2.0".

#3 Updated by Evgeny Novikov 4 months ago

  • Status changed from Resolved to Closed

Tests passed, so, I merged the branch to master in b8bda00ac.

Also available in: Atom PDF