Bug 1830035 - vit crashes on startup with RecursionError
Summary: vit crashes on startup with RecursionError
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: vit
Version: 32
Hardware: x86_64
OS: Linux
unspecified
high
Target Milestone: ---
Assignee: Ankur Sinha (FranciscoD)
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On: 1773606 1830044 1830045
Blocks:
TreeView+ depends on / blocked
 
Reported: 2020-04-30 18:41 UTC by Matyas Selmeci
Modified: 2020-05-22 05:30 UTC (History)
2 users (show)

Fixed In Version: vit-2.0.0-5.20200430git7200949.fc32
Clone Of:
Environment:
Last Closed: 2020-05-22 05:30:07 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Matyas Selmeci 2020-04-30 18:41:35 UTC
Description of problem:

/usr/bin/vit immediately crashes on startup with "RecursionError: maximum recursion depth exceeded while calling a Python object"

Version-Release number of selected component (if applicable):

2.0.0-4.fc32

How reproducible:

Every time

Steps to Reproduce:
1. Run /usr/bin/vit

Actual results:

Program dies with traceback:

Traceback (most recent call last):
  File "/usr/bin/vit", line 11, in <module>
    load_entry_point('vit==2.0.0', 'console_scripts', 'vit')()
  File "/usr/lib/python3.8/site-packages/vit/command_line.py", line 5, in main
    Application(options, filters)
  File "/usr/lib/python3.8/site-packages/vit/application.py", line 72, in __init__
    self.refresh(False)
  File "/usr/lib/python3.8/site-packages/vit/application.py", line 831, in refresh
    self.build_main_widget()
  File "/usr/lib/python3.8/site-packages/vit/application.py", line 875, in build_main_widget
    self.update_report(self.report)
  File "/usr/lib/python3.8/site-packages/vit/application.py", line 850, in update_report
    self.update_task_table()
  File "/usr/lib/python3.8/site-packages/vit/application.py", line 497, in update_task_table
    self.table.update_data(self.reports[self.report], self.model.tasks)
  File "/usr/lib/python3.8/site-packages/vit/task_list.py", line 93, in update_data
    self.build_rows()
  File "/usr/lib/python3.8/site-packages/vit/task_list.py", line 239, in build_rows
    formatted_value = column['formatter'].format(task[column['name']], task)
  File "/usr/lib/python3.8/site-packages/vit/formatter/__init__.py", line 206, in format
    formatted = self.format_list(obj, task)
  File "/usr/lib/python3.8/site-packages/vit/formatter/depends.py", line 6, in format_list
    return ','.join(list(map(lambda t: str(util.task_id_or_uuid_short(t)), depends))) if depends else ''
  File "/usr/lib/python3.8/site-packages/vit/formatter/depends.py", line 6, in <lambda>
    return ','.join(list(map(lambda t: str(util.task_id_or_uuid_short(t)), depends))) if depends else ''
  File "/usr/lib/python3.8/site-packages/vit/util.py", line 27, in task_id_or_uuid_short
    return task['id'] or uuid_short(task['uuid'])
  File "/usr/lib/python3.8/site-packages/tasklib/lazy.py", line 25, in __getitem__
    self.replace()
  File "/usr/lib/python3.8/site-packages/tasklib/lazy.py", line 75, in replace
    replacement = self._tw.tasks.get(uuid=self._uuid)
  File "/usr/lib/python3.8/site-packages/tasklib/task.py", line 557, in get
    num = len(clone)
  File "/usr/lib/python3.8/site-packages/tasklib/task.py", line 480, in __len__
    self._result_cache = list(self)
  File "/usr/lib/python3.8/site-packages/tasklib/task.py", line 480, in __len__
    self._result_cache = list(self)
  File "/usr/lib/python3.8/site-packages/tasklib/task.py", line 480, in __len__
    self._result_cache = list(self)
  [Previous line repeated 488 more times]
RecursionError: maximum recursion depth exceeded while calling a Python object


This was working fine on Fedora 31 and broke right after the Fedora 32 upgrade.


-Mat

Comment 1 Ankur Sinha (FranciscoD) 2020-04-30 18:55:12 UTC
Thanks for the bug report. Could be a python 3.8 based error. 

In the meantime, please use a virtual environment and use vit from the repo if possible? That seems to work here. Perhaps the bug was fixed in a commit after the 2.x release.

```
$ sudo dnf install pew

$ pew new vit

$ git clone https://github.com/scottkosty/vit.git

$ cd vit

$ python setup.py install

$ vit
```

Comment 2 Matyas Selmeci 2020-04-30 19:05:40 UTC
Yes, that works for me.

Thanks!
-Mat

Comment 3 Fedora Update System 2020-05-13 09:10:00 UTC
FEDORA-2020-1fee028d44 has been submitted as an update to Fedora 32. https://bodhi.fedoraproject.org/updates/FEDORA-2020-1fee028d44

Comment 4 Fedora Update System 2020-05-14 04:31:18 UTC
FEDORA-2020-1fee028d44 has been pushed to the Fedora 32 testing repository.
In short time you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2020-1fee028d44`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2020-1fee028d44

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 5 Fedora Update System 2020-05-22 05:30:07 UTC
FEDORA-2020-1fee028d44 has been pushed to the Fedora 32 stable repository.
If problem still persists, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.