Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enabling/disabling algorithm providers as well as creating/removing preconfigured algorithms causes an infinite loop (regression after c83261395476b62f6) #26693

Closed
qgib opened this issue Apr 25, 2018 · 9 comments
Labels
Bug Either a bug report, or a bug fix. Let's hope for the latter! High Priority Processing Relating to QGIS Processing framework or individual Processing algorithms Regression Something which used to work, but doesn't anymore

Comments

@qgib
Copy link
Contributor

qgib commented Apr 25, 2018

Author Name: Borys Jurgiel (@borysiasty)
Original Redmine Issue: 18807
Affected QGIS version: 2.18.19
Redmine category:processing/core
Assignee: René-Luc ReLuc


Since c832613, adding or removing preconfigured algorithms leads to a loop that causes an exception:

Traceback (most recent call last):
  File "C:/PROGRA~1/QGIS2~1.18/apps/qgis-ltr/./python/plugins\processing\gui\ProcessingToolbox.py", line 163, in updateProvider
    item.refresh()
  File "C:/PROGRA~1/QGIS2~1.18/apps/qgis-ltr/./python/plugins\processing\gui\ProcessingToolbox.py", line 377, in refresh
    Processing.updateAlgsList()
  File "C:/PROGRA~1/QGIS2~1.18/apps/qgis-ltr/./python/plugins\processing\core\Processing.py", line 184, in updateAlgsList
    Processing.reloadProvider(p.getName())
  File "C:/PROGRA~1/QGIS2~1.18/apps/qgis-ltr/./python/plugins\processing\core\Processing.py", line 189, in reloadProvider
    algList.reloadProvider(providerName)
  File "C:/PROGRA~1/QGIS2~1.18/apps/qgis-ltr/./python/plugins\processing\core\alglist.py", line 55, in reloadProvider
    p.loadAlgorithms()
  File "C:/PROGRA~1/QGIS2~1.18/apps/qgis-ltr/./python/plugins\processing\core\AlgorithmProvider.py", line 56, in loadAlgorithms
    self._loadAlgorithms()
  File "C:/PROGRA~1/QGIS2~1.18/apps/qgis-ltr/./python/plugins\processing\modeler\ModelerOnlyAlgorithmProvider.py", line 53, in _loadAlgorithms
    self.algs = [CalculatorModelerAlgorithm(),
  File "C:/PROGRA~1/QGIS2~1.18/apps/qgis-ltr/./python/plugins\processing\core\GeoAlgorithm.py", line 88, in __init__
    self.defineCharacteristics()
  File "C:/PROGRA~1/QGIS2~1.18/apps/qgis-ltr/./python/plugins\processing\modeler\CalculatorModelerAlgorithm.py", line 54, in defineCharacteristics
    self.tr('Formula', 'CalculatorModelerAlgorithm'), ''))
RuntimeError: maximum recursion depth exceeded

What worse, this exception is recurrent, making QGIS unusable until it's killed.

@qgib
Copy link
Contributor Author

qgib commented Apr 25, 2018

Author Name: Borys Jurgiel (@borysiasty)


  • description was changed from Since the c832613 commit, adding or removing preconfigured algorithms leads to a loop that causes an exception:

RuntimeError: maximum recursion depth exceeded
@Traceback (most recent call last):
File "C:/PROGRA1/QGIS21.18/apps/qgis-ltr/./python/plugins\processing\gui\ProcessingToolbox.py", line 163, in updateProvider
item.refresh()
File "C:/PROGRA1/QGIS21.18/apps/qgis-ltr/./python/plugins\processing\gui\ProcessingToolbox.py", line 377, in refresh
Processing.updateAlgsList()
File "C:/PROGRA1/QGIS21.18/apps/qgis-ltr/./python/plugins\processing\core\Processing.py", line 184, in updateAlgsList
Processing.reloadProvider(p.getName())
File "C:/PROGRA1/QGIS21.18/apps/qgis-ltr/./python/plugins\processing\core\Processing.py", line 189, in reloadProvider
algList.reloadProvider(providerName)
File "C:/PROGRA1/QGIS21.18/apps/qgis-ltr/./python/plugins\processing\core\alglist.py", line 55, in reloadProvider
p.loadAlgorithms()
File "C:/PROGRA1/QGIS21.18/apps/qgis-ltr/./python/plugins\processing\core\AlgorithmProvider.py", line 56, in loadAlgorithms
self._loadAlgorithms()
File "C:/PROGRA1/QGIS21.18/apps/qgis-ltr/./python/plugins\processing\modeler\ModelerOnlyAlgorithmProvider.py", line 53, in _loadAlgorithms
self.algs = [CalculatorModelerAlgorithm(),
File "C:/PROGRA1/QGIS21.18/apps/qgis-ltr/./python/plugins\processing\core\GeoAlgorithm.py", line 88, in init
self.defineCharacteristics()
File "C:/PROGRA1/QGIS21.18/apps/qgis-ltr/./python/plugins\processing\modeler\CalculatorModelerAlgorithm.py", line 54, in defineCharacteristics
self.tr('Formula', 'CalculatorModelerAlgorithm'), ''))
RuntimeError: maximum recursion depth exceeded
@

What worse, this exception is recurrent, making QGIS unusable until it's killed.
to Since c83261395476b62f6, adding or removing preconfigured algorithms leads to a loop that causes an exception:

RuntimeError: maximum recursion depth exceeded
@Traceback (most recent call last):
File "C:/PROGRA1/QGIS21.18/apps/qgis-ltr/./python/plugins\processing\gui\ProcessingToolbox.py", line 163, in updateProvider
item.refresh()
File "C:/PROGRA1/QGIS21.18/apps/qgis-ltr/./python/plugins\processing\gui\ProcessingToolbox.py", line 377, in refresh
Processing.updateAlgsList()
File "C:/PROGRA1/QGIS21.18/apps/qgis-ltr/./python/plugins\processing\core\Processing.py", line 184, in updateAlgsList
Processing.reloadProvider(p.getName())
File "C:/PROGRA1/QGIS21.18/apps/qgis-ltr/./python/plugins\processing\core\Processing.py", line 189, in reloadProvider
algList.reloadProvider(providerName)
File "C:/PROGRA1/QGIS21.18/apps/qgis-ltr/./python/plugins\processing\core\alglist.py", line 55, in reloadProvider
p.loadAlgorithms()
File "C:/PROGRA1/QGIS21.18/apps/qgis-ltr/./python/plugins\processing\core\AlgorithmProvider.py", line 56, in loadAlgorithms
self._loadAlgorithms()
File "C:/PROGRA1/QGIS21.18/apps/qgis-ltr/./python/plugins\processing\modeler\ModelerOnlyAlgorithmProvider.py", line 53, in _loadAlgorithms
self.algs = [CalculatorModelerAlgorithm(),
File "C:/PROGRA1/QGIS21.18/apps/qgis-ltr/./python/plugins\processing\core\GeoAlgorithm.py", line 88, in init
self.defineCharacteristics()
File "C:/PROGRA1/QGIS21.18/apps/qgis-ltr/./python/plugins\processing\modeler\CalculatorModelerAlgorithm.py", line 54, in defineCharacteristics
self.tr('Formula', 'CalculatorModelerAlgorithm'), ''))
RuntimeError: maximum recursion depth exceeded
@

What worse, this exception is recurrent, making QGIS unusable until it's killed.

@qgib
Copy link
Contributor Author

qgib commented Apr 25, 2018

Author Name: Borys Jurgiel (@borysiasty)


It happens when the algorithm list is refreshed after adding or removing a preconfigred algorithm (and probably any other item).

@qgib
Copy link
Contributor Author

qgib commented May 4, 2018

Author Name: Borys Jurgiel (@borysiasty)


The same after enabling or disabling algorithm providers in the Processing options dialog.

@qgib
Copy link
Contributor Author

qgib commented May 4, 2018

Author Name: Borys Jurgiel (@borysiasty)


  • subject was changed from Creating/removing preconfigured algorithms causes an infinite loop (regression after c832613) to Enabling/disabling algorithm providers as well as creating/removing preconfigured algorithms causes an infinite loop (regression after c832613)

@qgib
Copy link
Contributor Author

qgib commented May 4, 2018

Author Name: Jürgen Fischer (@jef-n)


  • description was changed from Since c83261395476b62f6, adding or removing preconfigured algorithms leads to a loop that causes an exception:

RuntimeError: maximum recursion depth exceeded
@Traceback (most recent call last):
File "C:/PROGRA1/QGIS21.18/apps/qgis-ltr/./python/plugins\processing\gui\ProcessingToolbox.py", line 163, in updateProvider
item.refresh()
File "C:/PROGRA1/QGIS21.18/apps/qgis-ltr/./python/plugins\processing\gui\ProcessingToolbox.py", line 377, in refresh
Processing.updateAlgsList()
File "C:/PROGRA1/QGIS21.18/apps/qgis-ltr/./python/plugins\processing\core\Processing.py", line 184, in updateAlgsList
Processing.reloadProvider(p.getName())
File "C:/PROGRA1/QGIS21.18/apps/qgis-ltr/./python/plugins\processing\core\Processing.py", line 189, in reloadProvider
algList.reloadProvider(providerName)
File "C:/PROGRA1/QGIS21.18/apps/qgis-ltr/./python/plugins\processing\core\alglist.py", line 55, in reloadProvider
p.loadAlgorithms()
File "C:/PROGRA1/QGIS21.18/apps/qgis-ltr/./python/plugins\processing\core\AlgorithmProvider.py", line 56, in loadAlgorithms
self._loadAlgorithms()
File "C:/PROGRA1/QGIS21.18/apps/qgis-ltr/./python/plugins\processing\modeler\ModelerOnlyAlgorithmProvider.py", line 53, in _loadAlgorithms
self.algs = [CalculatorModelerAlgorithm(),
File "C:/PROGRA1/QGIS21.18/apps/qgis-ltr/./python/plugins\processing\core\GeoAlgorithm.py", line 88, in init
self.defineCharacteristics()
File "C:/PROGRA1/QGIS21.18/apps/qgis-ltr/./python/plugins\processing\modeler\CalculatorModelerAlgorithm.py", line 54, in defineCharacteristics
self.tr('Formula', 'CalculatorModelerAlgorithm'), ''))
RuntimeError: maximum recursion depth exceeded
@

What worse, this exception is recurrent, making QGIS unusable until it's killed.
to Since commit:c83261395476b62f6, adding or removing preconfigured algorithms leads to a loop that causes an exception:

Traceback (most recent call last):
  File "C:/PROGRA~1/QGIS2~1.18/apps/qgis-ltr/./python/plugins\processing\gui\ProcessingToolbox.py", line 163, in updateProvider
    item.refresh()
  File "C:/PROGRA~1/QGIS2~1.18/apps/qgis-ltr/./python/plugins\processing\gui\ProcessingToolbox.py", line 377, in refresh
    Processing.updateAlgsList()
  File "C:/PROGRA~1/QGIS2~1.18/apps/qgis-ltr/./python/plugins\processing\core\Processing.py", line 184, in updateAlgsList
    Processing.reloadProvider(p.getName())
  File "C:/PROGRA~1/QGIS2~1.18/apps/qgis-ltr/./python/plugins\processing\core\Processing.py", line 189, in reloadProvider
    algList.reloadProvider(providerName)
  File "C:/PROGRA~1/QGIS2~1.18/apps/qgis-ltr/./python/plugins\processing\core\alglist.py", line 55, in reloadProvider
    p.loadAlgorithms()
  File "C:/PROGRA~1/QGIS2~1.18/apps/qgis-ltr/./python/plugins\processing\core\AlgorithmProvider.py", line 56, in loadAlgorithms
    self._loadAlgorithms()
  File "C:/PROGRA~1/QGIS2~1.18/apps/qgis-ltr/./python/plugins\processing\modeler\ModelerOnlyAlgorithmProvider.py", line 53, in _loadAlgorithms
    self.algs = [CalculatorModelerAlgorithm(),
  File "C:/PROGRA~1/QGIS2~1.18/apps/qgis-ltr/./python/plugins\processing\core\GeoAlgorithm.py", line 88, in __init__
    self.defineCharacteristics()
  File "C:/PROGRA~1/QGIS2~1.18/apps/qgis-ltr/./python/plugins\processing\modeler\CalculatorModelerAlgorithm.py", line 54, in defineCharacteristics
    self.tr('Formula', 'CalculatorModelerAlgorithm'), ''))
RuntimeError: maximum recursion depth exceeded

What worse, this exception is recurrent, making QGIS unusable until it's killed.

@qgib
Copy link
Contributor Author

qgib commented May 4, 2018

Author Name: Jürgen Fischer (@jef-n)


Applied in changeset d8e39fa.


  • status_id was changed from Open to Closed
  • done_ratio was changed from 0 to 100

@qgib qgib closed this as completed May 4, 2018
@qgib
Copy link
Contributor Author

qgib commented May 7, 2018

Author Name: Giovanni Manghi (@gioman)


  • resolution was changed from to fixed/implemented

@qgib
Copy link
Contributor Author

qgib commented May 17, 2018

Author Name: Nino Formica (Nino Formica)


I checked on QGIS. 2.18.19 (revision 3a17f72): problem is still there.
Maybe it will be solved in the next 2.18.20 ?

@qgib
Copy link
Contributor Author

qgib commented May 17, 2018

Author Name: Borys Jurgiel (@borysiasty)


Exactly. The only affected version is 2.18.19, and it's fixed in 2.18.20 (to be released tomorrow)

@qgib qgib added Bug Either a bug report, or a bug fix. Let's hope for the latter! High Priority Processing Relating to QGIS Processing framework or individual Processing algorithms Regression Something which used to work, but doesn't anymore labels May 25, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Either a bug report, or a bug fix. Let's hope for the latter! High Priority Processing Relating to QGIS Processing framework or individual Processing algorithms Regression Something which used to work, but doesn't anymore
Projects
None yet
Development

No branches or pull requests

1 participant