GNOME Bugzilla – Bug 359538
Invoking gradient selection from script-fu hangs gimp
Last modified: 2008-01-15 14:09:09 UTC
Please describe the problem: When trying to change GRADIENT option gimp hangs up. Steps to reproduce: 1. Make image whatever you want 2. Go to Script-Fu Lava plugin 3. Try to change gradient Actual results: Gimp hangs up Expected results: Does this happen every time? Yes Other information:
Works fine for me. Please specify operating system and anything else that might help to identify the problem.
WindowsXP SP2
ptk, you are really overdoing it. If you don't learn how to file proper bug reports and if you don't have the time to write full sentences and to use the menus in this bug registration form, than you should better stop filing bug reports. This bug report should have had the Operating System field filled out, you should have mentioned the full path to the script/plug-in that you are running. It also doesn't mention what actually happens. "Gimp hangs up" is not a useful description. It doesn't tell us whether there's a crash or if the application (or the plug-in) just appears not responsive.
I am able to reproduce this problem. I am using Windows XP SP2 and the latest GIMP and GTK from Sourceforge. Steps to reproduce are as follows: Open Image and create a selection In the Image window, select Filters>Render>Lava In the "Script-Fu: Lava" window, click the "Gradient" button. After a pause (about 5 seconds) a new window, "Script-Fu Gradient Selection" appears, but it remains a blank white, even after waiting several minutes. At this point, the Windows Task Manager shows all GIMP related windows as Not Responding, but CPU and memory usage remain normal. After closing the "Script-Fu: Lava" window, two GIMP Message windows appear. The first states simply "Plug-in crashed: "script-fu.exe" (C:\Program Files\GIMP-2.3\lib\gimp\2.0\plug-ins\script-fu.exe)." The second GIMP Message window has two messages. One is: "PDB calling error: Procedure 'temp-procedure-number-0' not found" and the other is: "Unable to run GimpPdbProgress callback. The corresponding plug-in may have crashed." These messages only appear if the "Toolbox and other docks are transient to the active image window" preference is not selected. I will also note that the Tiny-fu lava seems to work fine. I hope this information is helpful.
MWH, thanks. Removing NEEDINFO since comment #4 provides enough information at this point, and confirming on the basis of it as well.
Bill, please do not confirm bug reports unless you can reproduce them or we got several reports describing the problem. This might be a problem with Script-Fu and Tiny-Fu installed at the same time?
Sorry, didn't realize that someone else acknowledged the problem. Perhaps I should not do bug maintainance work at this time of the day.
Comment #4 indicates the problem occurs when trying to select a different Gradient in the dialog box. That doesn't sound like a problem that has anything to do with Script-Fu and Tiny-Fu being installed at the same time.
After some additional poking around, I've found the exact same behavior I described above when clicking the "Gradient" button in the Spyrogimp and Fractal Explorer dialogs, both also under Filters>Render. However, with GFIG, which is also selected from Filters>Render, if the fill type is changed to one of the gradient choices, clicking the gradient select button does NOT cause any problem.
Kevin, the interaction of these widgets with the core are non-trivial. Temporary procedures are being used to create a core dialog when the select button widget is clicked. There might very well be strange interactions between two extensions running at the same time. It's unlikely but not impossible. Still, it is most likely that the problem is in libgimp and completely unrelated to tiny-fu.
BTW, the hang does not happen for the gradient selection in the Script-Fu Test Sphere script, which is located in the Xtns menu.
This could be a problem with transient windows then. If started from an image, the plug-in dialog is transient for the image window. In 2.3.11, the popup dialog for gradient selection which is created by the core isn't (this has changed in CVS). It seems that there's a problem in GTK+ with respect to transient windows. Bug #359061 could be related.
Just to clarify something I said in Comment #4: The error messages only appear if the "Toolbox and other docks are transient to the active image window" preference is not selected, but the behavior of Gimp freezing when clicking the Gradient button occurs no matter whether this preference is selected or not.
Created attachment 74592 [details] [review] Suggested workaround This at least prevents the hang...
It prevents the bug but it makes GIMP pretty much unusable on Win32 :-(
(Sven said on IRC that even without cross-process transient-for it shouldn't be any worse than 2.2 was, though ...) Patch committed. 2006-10-16 Tor Lillqvist <tml@novell.com> * libgimp/gimpui.c (gimp_window_set_transient_for) * app/widgets/gimpwidgets-utils.c (gimp_window_set_transient_for): These functions are used for cross-process transient-for, which causes hangs on Win32. Bypass on Win32 for now. (#359538)
*** Bug 356904 has been marked as a duplicate of this bug. ***
*** Bug 363121 has been marked as a duplicate of this bug. ***
Note that windows version of Gimp without this option is the most bothersome program I've ever seen on this platform.
Well, this is why the 2.3.x releases are also called unstabled development releases and are not intended for production use.
*** Bug 363947 has been marked as a duplicate of this bug. ***