[Qgis-developer] Issue with standalone python script and PostGIS Layers

Stott, James fmrojst at fylkesmannen.no
Fri Feb 21 01:53:22 PST 2014


Just a follow up to this if other people ever have trouble with this.

I have managed to load my query layers by specifying False for the loadDefaultStyleFlag parameter when I create the QgsVectorLayer. So

vlayer = QgsVectorLayer(uri.uri(), layerName, "postgres", False)

This parameter stops QGIS from checking if there are styles in the database, and thus means that it doesn't run loads of queries that it then doesn't close.

QGIS still needs to unload some of the connections that it creates when searching for styles when loading query layers (if you don't specify the False for the loadDefaultStyleFlag), so I believe the bug is still valid, but this is a workaround so that is good. I also wonder if True is the right default for the loadDefaultStyleFlag parameter?

It would be good to get details about this parameter added to http://www.qgis.org/en/docs/pyqgis_developer_cookbook/loadlayer.html

Is this something I can add myself?

James

Fra: Stott James
Sendt: 24. januar 2014 15:24
Til: qgis-developer at lists.osgeo.org
Emne: SV: [Qgis-developer] Issue with standalone python script and PostGIS Layers

Following on from reporting the bug, I have done more digging into the problem.

It seems to be related to styleQML lines when I check what connections are being sent to PostGIS. These don't disappear with each loop iteration in Master, but they do in version 2.0. Eventually when my script gets to 100 connections, it hangs.

What can I do to make this work?

I have updated the bug report with more details, which can be found here https://hub.qgis.org/issues/9357.

James

Fra: qgis-developer-bounces at lists.osgeo.org<mailto:qgis-developer-bounces at lists.osgeo.org> [mailto:qgis-developer-bounces at lists.osgeo.org] På vegne av Stott James
Sendt: 16. januar 2014 14:23
Til: Tim Sutton
Kopi: qgis-developer at lists.osgeo.org<mailto:qgis-developer at lists.osgeo.org>
Emne: Re: [Qgis-developer] Issue with standalone python script and PostGIS Layers

Thanks for the response Tim.

I have not been destroying my layers. This has not been an issue when running the plugin with 2.0.

This was the first thing I thought about in the version running against master so I added the following code to close the postgis layers as it once I am finished with them:

QgsMapLayerRegistry.instance().removeMapLayer(layer_id)
This has not made it difference. It still hangs at the same place and I still get the warning that there is already too many clients when trying to connect to PostGIS with DB Manager or pgAdmin.

Shall I open a bug?

Fra: Tim Sutton [mailto:lists at linfiniti.com]
Sendt: 16. januar 2014 13:30
Til: Stott James
Kopi: qgis-developer at lists.osgeo.org<mailto:qgis-developer at lists.osgeo.org>
Emne: Re: [Qgis-developer] Issue with standalone python script and PostGIS Layers

Hi

On Thu, Jan 16, 2014 at 11:06 AM, Stott James <fmrojst at fylkesmannen.no<mailto:fmrojst at fylkesmannen.no>> wrote:
Hello all,

I have a standalone python script that creates a bunch of PDFs for me.

Recently this script has developed an issue. It uses QGIS-dev so it could be related to some of the changes in master recently as it works fine with QGIS 2.0.

It makes about 42 PDFs then it stops.

It is not actually crashing as such, as you can see it running in task manager. It stays running using between 0 and 2% processor, and fluctuates a little with memory use (around 108840kB). But it does not produce any more PDFs. It is like it is stuck.

>From the log file that my script creates, I know that it is hanging with this line of code:

vlayer = QgsVectorLayer(uri.uri(), layerName, "postgres")

If I try and connect to the database using DB Manager in QGIS or pgAdmin III while the script is still running, I get an error saying there is already too many clients already. If I kill the process in windows task manager, I am then able to connect to the database using DB manager.

Has anyone any suggestions as to what is wrong here? Is this a bug?

I updated QGIS dev this morning using the OSGeo4W installer (its revision is eb9ce3a).


If you are creating postgis layers in a loop, are you making sure to destroy them again nicely in your loop? Anyway if it used to work before maybe there was a regression somewhere....

Regards

Tim

James Stott

GIS-koordinator
Administrasjonsavdelinga
Fylkesmannen i Rogaland

Telefon: 51568793
james.stott at fylkesmannen.no<mailto:james.stott at fylkesmannen.no>
http://www.temakart-rogaland.no


_______________________________________________
Qgis-developer mailing list
Qgis-developer at lists.osgeo.org<mailto:Qgis-developer at lists.osgeo.org>
http://lists.osgeo.org/mailman/listinfo/qgis-developer



--
Tim Sutton - QGIS Project Steering Committee Member
==============================================
Please do not email me off-list with technical
support questions. Using the lists will gain
more exposure for your issues and the knowledge
surrounding your issue will be shared with all.

Irc: timlinux on #qgis at freenode.net<http://freenode.net>
==============================================
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20140221/ad401be2/attachment-0001.html>


More information about the Qgis-developer mailing list