Just a quick update, the fix is now in master and backported:

https://github.com/qgis/QGIS/issues/51971
https://github.com/qgis/QGIS/pull/51985

Thanks to all the devs!

Cheers

Matteo

On 2/22/23 08:33, matteo wrote:
Hi Richard,

Not very helpful for you, but what about creating an issue with the minimal code to crash?

done: https://github.com/qgis/QGIS/issues/51971

I've prepared a minimal algorithm that mimics the problem

And about Thread/Crash problems: I have been succesful with the tips of Nyall in: https://lists.osgeo.org/pipermail/qgis-developer/2023-February/065525.html to create a QgsTask which either crashed or gave warnings...

One thing I've seen recently is that some Processing algs with me give these "...is run from a different thread than the object  lives in ..."-warnings. And my feeling is that if some code is fetching references to the QGIS application instance, it shows this warning.

Good luck solving your issue

Thanks! Some gurus around? :)

Cheers

Matteo
Regards,

Richard



On 2/21/23 16:41, matteo via QGIS-Developer wrote:
Hi devs,

I'm raising this email again because I don't know if this a bug/limitation/correct behavior.

I also think that the problem is from a thread point of view, at least by the crash that I have.

Knowing that a processing algorithm, as suggested by Germàn, can be created with:

processing.createAlgorithmDialog("my_provider:my_algorithm", params)

within a plugin, if the algorithm **id** is passed as first argument, QGIS is crashing, while it seems working on a standalone script in the QGIS code editor.

Is this a limitation?

Cheers and thanks for any suggestion!

Matteo

On 8/1/22 15:23, matteo wrote:
Hi all,

I've a set of custom processing scripts within a plugin (that is both "normal" and processing provider plugin).

I'm trying to executing the dialog of these algorithm from one of the main plugin file. I found the processing.createAlgorithmDialog [0], but it is constantly crashing when I'm passing the instance of the algorithm:

my_alg = MyCustomAlg()
my_dialog = my_alg.createAlgorithmDialog(custom_dict)

## crash here

Thinking it was a problem of the threads I also tried to overwrite the `flag` method in the algorithm by setting also QgsProcessingAlgorithm.FlagNoThreading but with the same results.

I know I can run the processing algorithm with processing.run(....) but I need to open the dialog pre-filled with custom parameters and to get also some other outputs besides the standard ones (like the QgsFeatureSink path)

Thanks for any suggestion

Cheers

Matteo


[0] https://github.com/qgis/QGIS/blob/master/python/plugins/processing/tools/general.py#L155

_______________________________________________
QGIS-Developer mailing list
QGIS-Developer@lists.osgeo.org
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer

_______________________________________________
QGIS-Developer mailing list
QGIS-Developer@lists.osgeo.org
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
_______________________________________________
QGIS-Developer mailing list
QGIS-Developer@lists.osgeo.org
List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer

Reply via email to