Gimp-Forum.net
EEEEeEeek! 2 GeglBuffers leaked - Printable Version

+- Gimp-Forum.net (https://www.gimp-forum.net)
+-- Forum: GIMP (https://www.gimp-forum.net/Forum-GIMP)
+--- Forum: Extending the GIMP (https://www.gimp-forum.net/Forum-Extending-the-GIMP)
+---- Forum: Scripting questions (https://www.gimp-forum.net/Forum-Scripting-questions)
+---- Thread: EEEEeEeek! 2 GeglBuffers leaked (/Thread-EEEEeEeek-2-GeglBuffers-leaked)



EEEEeEeek! 2 GeglBuffers leaked - gounis - 09-06-2020

Hello!

I've installed Gimp 2.10.20 in my Ubuntu 20.04.1 LTS using Flatpak. I've written a Script-Fu which processes a given image by scaling, and applying threshold and oilify filter. The script runs successfully but in the end, I get this weird message (see attached image).

gimp-2.10: GEGL-WARNING: (../gegl/buffer/gegl-tile-handler-cache.c:1076):gegl_tile_cache_destroy: runtime check failed: (g_queue_is_empty (&cache_queue))
EEEEeEeek! 2 GeglBuffers leaked
To debug GeglBuffer leaks, set the environment variable GEGL_DEBUG to "buffer-alloc"


I've found out that this line is responsible for the warning message (I commented out everything in the code except this line, and I still get the error).

Code:
...
(let*
       (
        (image    (car (gimp-file-load RUN-NONINTERACTIVE filename-in "")))
...
...
...
))


filename-in is something like "test.jpg". Do you maybe know what it might cause it? Thanks Smile

Note: I was also getting the same warning with Gimp 2.10.18 which I had installed via PPA.


RE: EEEEeEeek! 2 GeglBuffers leaked - rich2005 - 09-06-2020

Maybe one of the clever guys will pick this up. It seems to be a scripting question, I am not a coder, truthfully everything I need is already there.

That Eeeeek looks to me like a GEGL warning. An example using Filters -> Generic -> GEGL graph parameter wrong, gives that sort of error. https://i.imgur.com/qcq1J4B.jpg

It might help if you gave more details of your script. This using python (not script-fu it remains like sanskrit to me):
There are two procedures linked to that GEGL operation. Is it the enhanced version ? which might be missing the two 'auxiliary' inputs giving that error: https://i.imgur.com/fRaQP3r.jpg more than one layer (or image?) is needed.
The simple oilify only has two parameters https://i.imgur.com/VZAEr4j.jpg

Are you running your script from command line? Not possible with a flatpak gimp. It is sandboxed, I suspect you still have an older Gimp installed.


RE: EEEEeEeek! 2 GeglBuffers leaked - Ofnuts - 09-06-2020

(09-06-2020, 06:13 PM)rich2005 Wrote: Maybe one of the clever guys will pick this up. It seems to be a scripting question, I am not a coder, truthfully everything I need is already there.

That Eeeeek looks to me like a GEGL warning. An example using Filters -> Generic -> GEGL graph  parameter wrong, gives that sort of error. https://i.imgur.com/qcq1J4B.jpg

It might help if you gave more details of your script. This using python (not script-fu it remains like sanskrit to me):
There are two procedures linked to that GEGL operation. Is it the enhanced version ? which might be missing the two 'auxiliary' inputs  giving that error: https://i.imgur.com/fRaQP3r.jpg  more than one layer (or image?)  is needed.
The simple oilify only has two parameters https://i.imgur.com/VZAEr4j.jpg

Are you running your script from command line?  Not possible with a flatpak gimp. It is sandboxed, I suspect you still have an older Gimp  installed.

Nothing you can do about AFAIK. Not sure it is really a problem, either, it looks more like some cleanup code that found something that should have been cleaned upstream.


RE: EEEEeEeek! 2 GeglBuffers leaked - tmanni - 09-07-2020

Can you post the enitre script ?
I suspect you forget to call gimp-image-delete before the end of the script.


RE: EEEEeEeek! 2 GeglBuffers leaked - gounis - 09-07-2020

(09-07-2020, 08:49 AM)tmanni Wrote: Can you post the enitre script ?
I suspect you forget to call gimp-image-delete before the end of the script.

Tmanni, you saved my day! Smile This was my simplified script, and as you can see, the problem was indeed that I didn't call gimp-image-delete! I had almost forgotten about such issues with all these automatic garbage collectors that programming languages provide Big Grin  The issue can be assigned as closed Smile Thank you so much for your time, people!

Code:
(define (test filename-in)

    (let* ((image    (car (gimp-file-load RUN-NONINTERACTIVE filename-in ""))))
    (gimp-message "END!")
    )
)

(script-fu-register "test"
  _"test"
  _"test"
  "Test"
  "Test"
  "September 2020"
  ""
)

(script-fu-menu-register "test"
                         "<Image>/Test")