#744 closed defect (fixed)
Qgis crash associated with vector actions
Reported by: | cgs_bob | Owned by: | g_j_m |
---|---|---|---|
Priority: | major: does not work as expected | Milestone: | |
Component: | Vectors | Version: | Trunk |
Keywords: | Cc: | ||
Must Fix for Release: | No | Platform: | All |
Platform Version: | Awaiting user input: | no |
Description
I have been able to consistently crash qgis by doing this:
1) Start qgis and load project that has vectors with actions. 2) Click on vector in the legend and then click on Identify Feature. 3) In the Identify Results window, click on an action.
(my action opens up a window that says "starting konqueror ftp://..." and then konqueror brings up the ftp site)
4) Click on the Close button in the window that says "starting konqueror" will crash qgis.
I have attached the debug messages I got on my Konsole.
Attachments (1)
Change History (5)
by , 16 years ago
Attachment: | qgis_actions_crash.txt added |
---|
comment:1 by , 16 years ago
Milestone: | → Version 0.9 |
---|---|
Owner: | changed from | to
Platform: | Gentoo → All |
comment:2 by , 16 years ago
Status: | new → assigned |
---|
comment:3 by , 16 years ago
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Fixed in r7110. Problem was that a signal/slot in a deleted class instance was being triggered when the output dialog box was closed when the process was still running.
On mac osx I can replicate this by e.g. making an action that dues
curl qgis.org
Then quickly pressing cancel while running the action. In the console the final message is:
terminate called without an active exception
I did some research on this and it seems one offered solution is to initialise the offending pointer like this:
x = new(std::nothrow) foo;
I tried doing this on the message output (initialised in qgisapp.cpp) and the various other members in qgsrunprocess.cp but was not able to resolve the issue this way. I also tried explicitly calling terminate() or kill() on the qprocess but that also didnt fix the issue. Perhaps Gavin has some idea?
Tim