Bug report #15868

Frequent errors in DB Manager: `pyqtSignal must be bound to a QObject, not 'PGVectorTable'`

Added by Paolo Cavallini almost 3 years ago. Updated over 2 years ago.

Status:Closed
Priority:High
Assignee:-
Category:DB Manager
Affected QGIS version:2.18.4 Regression?:Yes
Operating System: Easy fix?:No
Pull Request or Patch supplied:Yes Resolution:
Crashes QGIS or corrupts data:No Copied to github as #:23786

Description

Using DB Manager results in occasional errors of the type0. Closing DB Manager and reopening it solves temporarily the issue.

[0]

TypeError: pyqtSignal must be bound to a QObject, not 'PGVectorTable'
Traceback (most recent call last):
  File
"C:/PROGRA~1/QGIS2~1.18/apps/qgis/./python/plugins\\db_manager\\db_manager.py",
line 116, in tabChanged
    self.refreshTabs()
  File
"C:/PROGRA~1/QGIS2~1.18/apps/qgis/./python/plugins\\db_manager\\db_manager.py",
line 142, in refreshTabs
    self.preview.loadPreview(item)
  File
"C:/PROGRA~1/QGIS2~1.18/apps/qgis/./python/plugins\\db_manager\\layer_preview.py",
line 62, in loadPreview
    self._clear()
  File
"C:/PROGRA~1/QGIS2~1.18/apps/qgis/./python/plugins\\db_manager\\layer_preview.py",
line 83, in _clear
    self.item.aboutToChange.disconnect(self.setDirty)
TypeError: pyqtSignal must be bound to a QObject, not 'PGVectorTable'

Associated revisions

Revision 7266410a
Added by Salvatore Larosa over 2 years ago

Merge pull request #4533 from boundlessgeo/too_many_dbmanager_errors_fix#15868

[db_manager] catch exception when item has lost reference. for 2.18 regression fixes #15868

History

#1 Updated by Giovanni Manghi almost 3 years ago

  • Priority changed from Normal to Severe/Regression

regression, do not occur on LTR.

#2 Updated by Jérôme Guélat almost 3 years ago

The problem is still happening with 2.18.1

#3 Updated by Giovanni Manghi over 2 years ago

  • Target version set to Version 2.18
  • Affected QGIS version changed from 2.18.0 to 2.18.4

#4 Updated by Giovanni Manghi over 2 years ago

  • Regression? set to Yes

#5 Updated by Giovanni Manghi over 2 years ago

  • Priority changed from Severe/Regression to High

#6 Updated by Giovanni Manghi over 2 years ago

  • Easy fix? set to No

#7 Updated by Luigi Pirelli over 2 years ago

  • Description updated (diff)

please give some serious procedure to replicate

#8 Updated by Luigi Pirelli over 2 years ago

btw QgsMapCanvas::setDirty has been deprecated in favour of refresh()
check if setDirty has been removed in 3.x version

#9 Updated by Luigi Pirelli over 2 years ago

still used in the version for qgis 3.x

#10 Updated by Luigi Pirelli over 2 years ago

the problem is related with the removing of the layer tab => QT elements have been destroied but slot still connected at pyqt level... wouldn't be an issu just ignore this king of exception.

similar problem has been present in other pyqt pallication using TABs

#11 Updated by Luigi Pirelli over 2 years ago

fix in https://github.com/qgis/QGIS/pull/4533

writing PR for 3.0 too

#12 Updated by Luigi Pirelli over 2 years ago

fix for 3.0 will be delayed because actually in this version db_manager raise much more exception than the 2.18 or 2.14 one => I'll try to work in a general PR fixup most common one.

#13 Updated by Luigi Pirelli over 2 years ago

  • Pull Request or Patch supplied changed from No to Yes

#14 Updated by Salvatore Larosa over 2 years ago

  • Status changed from Open to Closed
  • % Done changed from 0 to 100

Also available in: Atom PDF