After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 796317 - Crash when flattening an XCF file
Crash when flattening an XCF file
Status: RESOLVED OBSOLETE
Product: GIMP
Classification: Other
Component: General
2.10.2
Other Mac OS
: Normal normal
: ---
Assigned To: GIMP Bugs
GIMP Bugs
Depends on:
Blocks:
 
 
Reported: 2018-05-21 20:04 UTC by aferrero1975
Modified: 2018-05-26 00:44 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
sample file to reproduce the crash (1.03 MB, image/x-xcf)
2018-05-21 20:04 UTC, aferrero1975
Details

Description aferrero1975 2018-05-21 20:04:50 UTC
Created attachment 372317 [details]
sample file to reproduce the crash

I am testing GIMP under MacOS 10.10.5 (XCode 6.3 + dependencies installed via homebrew). I was able to reproduce a crash originally reported in this post: https://discuss.pixls.us/t/nightly-gimp-macos-builds-testing-needed/7765/9

The crash occurs when the attached .xcf file is opened and then immediately flattened. With the debugger I could trace the crash down to this line of code: https://git.gnome.org/browse/gimp/tree/app/operations/layer-modes/gimpoperationlayermode.c?h=gimp-2-10#n642

However, I could not yet figure out what is exactly wrong with the code, and provide a patch. Nevertheless, if anyone comes out with a fix I'll be glad to checks it.

The crash has been reported on MacOS, but I have the impression that it is more general.

Here is the obtained stack backtrace:

Process 22738 stopped
* thread #28: tid = 0x13b1a8, 0x00000001003ade30 gimp`gimp_operation_layer_mode_real_process(operation=0x000000010d7f7b00, in_p=<unavailable>, layer_p=<unavailable>, mask_p=0x0000000000000000, out_p=<unavailable>, samples=<unavailable>, roi=<unavailable>, level=<unavailable>) + 640 at gimpoperationlayermode.c:642, name = 'pool', stop reason = EXC_BAD_ACCESS (code=2, address=0x108f38d8c)
    frame #0: 0x00000001003ade30 gimp`gimp_operation_layer_mode_real_process(operation=0x000000010d7f7b00, in_p=<unavailable>, layer_p=<unavailable>, mask_p=0x0000000000000000, out_p=<unavailable>, samples=<unavailable>, roi=<unavailable>, level=<unavailable>) + 640 at gimpoperationlayermode.c:642
   639 	           */
   640 	          while (i < end && (in[i] == 0.0f || layer[i] == 0.0f))
   641 	            {
-> 642 	              blend_out[i] = 0.0f;
   643 	              i += 4;
   644 	            }
   645 	
  thread #30: tid = 0x13b1e2, 0x00000001003ade30 gimp`gimp_operation_layer_mode_real_process(operation=0x000000010d7f7b00, in_p=<unavailable>, layer_p=<unavailable>, mask_p=0x0000000000000000, out_p=<unavailable>, samples=<unavailable>, roi=<unavailable>, level=<unavailable>) + 640 at gimpoperationlayermode.c:642, name = 'pool', stop reason = EXC_BAD_ACCESS (code=2, address=0x109700d8c)
    frame #0: 0x00000001003ade30 gimp`gimp_operation_layer_mode_real_process(operation=0x000000010d7f7b00, in_p=<unavailable>, layer_p=<unavailable>, mask_p=0x0000000000000000, out_p=<unavailable>, samples=<unavailable>, roi=<unavailable>, level=<unavailable>) + 640 at gimpoperationlayermode.c:642
   639 	           */
   640 	          while (i < end && (in[i] == 0.0f || layer[i] == 0.0f))
   641 	            {
-> 642 	              blend_out[i] = 0.0f;
   643 	              i += 4;
   644 	            }
   645 	
  thread #31: tid = 0x13b1e3, 0x00000001003ade30 gimp`gimp_operation_layer_mode_real_process(operation=0x000000010d7f7b00, in_p=<unavailable>, layer_p=<unavailable>, mask_p=0x0000000000000000, out_p=<unavailable>, samples=<unavailable>, roi=<unavailable>, level=<unavailable>) + 640 at gimpoperationlayermode.c:642, name = 'pool', stop reason = EXC_BAD_ACCESS (code=2, address=0x109d6fd8c)
    frame #0: 0x00000001003ade30 gimp`gimp_operation_layer_mode_real_process(operation=0x000000010d7f7b00, in_p=<unavailable>, layer_p=<unavailable>, mask_p=0x0000000000000000, out_p=<unavailable>, samples=<unavailable>, roi=<unavailable>, level=<unavailable>) + 640 at gimpoperationlayermode.c:642
   639 	           */
   640 	          while (i < end && (in[i] == 0.0f || layer[i] == 0.0f))
   641 	            {
-> 642 	              blend_out[i] = 0.0f;
   643 	              i += 4;
   644 	            }
   645 	
(lldb) bt
* thread #28: tid = 0x13b1a8, 0x00000001003ade30 gimp`gimp_operation_layer_mode_real_process(operation=0x000000010d7f7b00, in_p=<unavailable>, layer_p=<unavailable>, mask_p=0x0000000000000000, out_p=<unavailable>, samples=<unavailable>, roi=<unavailable>, level=<unavailable>) + 640 at gimpoperationlayermode.c:642, name = 'pool', stop reason = EXC_BAD_ACCESS (code=2, address=0x108f38d8c)
  * frame #0: 0x00000001003ade30 gimp`gimp_operation_layer_mode_real_process(operation=0x000000010d7f7b00, in_p=<unavailable>, layer_p=<unavailable>, mask_p=0x0000000000000000, out_p=<unavailable>, samples=<unavailable>, roi=<unavailable>, level=<unavailable>) + 640 at gimpoperationlayermode.c:642
    frame #1: 0x00000001010fbc5a libgegl-0.4.0.dylib`thread_process(thread_data=0x00007fff5fbfd0a0, unused=<unavailable>) + 314 at gegl-operation-point-composer3.c:84
    frame #2: 0x0000000101518e2a libglib-2.0.0.dylib`g_thread_pool_thread_proxy + 37
    frame #3: 0x00000001015181b3 libglib-2.0.0.dylib`g_thread_proxy + 90
    frame #4: 0x00007fff954df05a libsystem_pthread.dylib`_pthread_body + 131
    frame #5: 0x00007fff954defd7 libsystem_pthread.dylib`_pthread_start + 176
    frame #6: 0x00007fff954dc3ed libsystem_pthread.dylib`thread_start + 13
Comment 1 GNOME Infrastructure Team 2018-05-24 20:13:54 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to GNOME's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.gnome.org/GNOME/gimp/issues/1490.
Comment 2 Ell 2018-05-26 00:44:18 UTC
This should be fixed in master and gimp-2-10; see the gitlab bug.  Not sure if you're getting gitlab notifications.