On 08/10/2017 10:54 PM, richard brown wrote:
> Here we are:
> 
> Thread 1 "gimp-2.9" received signal SIGSEGV, Segmentation fault.
> g_type_check_instance (type_instance=type_instance@entry=0x4ce7a90) at 
> gtype.c:4131
> 4131          TypeNode *node = lookup_type_node_I 
> (type_instance->g_class->g_type);
> (gdb) bt
> #0  g_type_check_instance (type_instance=type_instance@entry=0x4ce7a90) 
> at gtype.c:4131
> #1  0x00007ffff3d67d5e in g_signal_emit_valist (instance=0x4ce7a90, 
> signal_id=227, detail=0, var_args=var_args@entry=0x7fffffffdbf0) at 
> gsignal.c:3176
> #2  0x00007ffff3d6900f in g_signal_emit (instance=<optimised out>, 
> signal_id=<optimised out>, detail=detail@entry=0) at gsignal.c:3447
> #3  0x00007ffff50a51d3 in delayed_emission (data=0x7fffb8005040) at 
> gegl-node.c:2192
> #4  0x00007ffff3a71a9a in g_main_dispatch (context=0xd42e90) at gmain.c:3148
> #5  g_main_context_dispatch (context=context@entry=0xd42e90) at gmain.c:3813
> #6  0x00007ffff3a71e48 in g_main_context_iterate (context=0xd42e90, 
> block=block@entry=1, dispatch=dispatch@entry=1, self=<optimised out>) at 
> gmain.c:3886
> #7  0x00007ffff3a72172 in g_main_loop_run (loop=0x33289c0) at gmain.c:4082
> #8  0x0000000000494612 in app_run (full_prog_name=<optimised out>, 
> filenames=<optimised out>, 
> alternate_system_gimprc=alternate_system_gimprc@entry=0x0, 
> alternate_gimprc=alternate_gimprc@entry=0x0, session_name=<optimised out>,
>      batch_interpreter=0x0, batch_commands=0x0, as_new=0, 
> no_interface=0, no_data=0, no_fonts=0, no_splash=0, be_verbose=0, 
> use_shm=1, use_cpu_accel=1, console_messages=0, use_debug_handler=0, 
> show_playground=1,
>      stack_trace_mode=GIMP_STACK_TRACE_QUERY, 
> pdb_compat_mode=GIMP_PDB_COMPAT_WARN) at app.c:331
> #9  0x0000000000493f45 in main (argc=<optimised out>, argv=0xc866c0) at 
> main.c:551
> 
> 
> 
> 
> I have four threads set in preferences. The image is 16bit gamma 
> integer, and I try and stretch HSV contrast.

Thanks.  This should be fixed in GEGL master:

commit e3787440917255b6936a8d55428aa9402fdfba08
Author: Ell <ell...@yahoo.com>
Date:   Fri Aug 11 08:44:27 2017 -0400

    gegl-node: only emit the progress signal from the main thread

    Only emit the progress signal when gegl_node_progress() is called
    from the main thread -- don't queue a signal emission from other
    threads.  Otherwise, the queued signal may be emitted after the
    operation is complete, and, in particular, after the node is
    destroyed (we could keep a the node alive while the signal is
    queued, but that's not really useful.)

    Regardless, for auto-threaded ops, each thread would track its
    progress independently, so emitting interleaving progress signals
    from different threads is not too meaningful anyway, while only
    reporting the main thread's progress should give a good-enough
    indication of the overall progress.

 gegl/graph/gegl-node.c | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

Note that the HSV stretch contrast operation doesn't work correctly with
multiple threads atm, so you're still better off using a single thread,
but at least it doesn't crash anymore :)

If you run into more issues, feel free to report them through our bugzilla:

  https://bugzilla.gnome.org/enter_bug.cgi?product=GIMP

--
Ell
_______________________________________________
gimp-developer-list mailing list
List address:    gimp-developer-list@gnome.org
List membership: https://mail.gnome.org/mailman/listinfo/gimp-developer-list
List archives:   https://mail.gnome.org/archives/gimp-developer-list

Reply via email to