Opened 5 years ago

Closed 5 years ago

#58017 closed defect (fixed)

gimp2 crashes while loading certain images (exiv2?)

Reported by: rmottola (Riccardo) Owned by:
Priority: Normal Milestone:
Component: ports Version:
Keywords: lion Cc: dbevans (David B. Evans)
Port: exiv2

Description (last modified by ryandesign (Ryan Carsten Schmidt))

A fresh compiled gimp2, exiv2 crashes when loading a JPG image
~This is on Lion 10.7
I'm unsure if this is a gimp2 or exiv2 issue, I suppose the latter, given the stacktrace.

  exiv2 @0.27_1 (active) platform='darwin 11' archs='x86_64' date='2019-02-03T21:14:53+0100'
  gimp2 @2.10.8_3+python27+quartz (active) platform='darwin 11' archs='x86_64' date='2019-02-03T21:54:28+0100'
gimp(72592,0x7fff7d067960) malloc: *** error for object 0x101b0f0e0: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug

Program received signal SIGABRT, Aborted.
0x00007fff90b2ece2 in __pthread_kill ()
(gdb) bt
#0  0x00007fff90b2ece2 in __pthread_kill ()
#1  0x00007fff8ef2d7d2 in pthread_kill ()
#2  0x00007fff8ef1ea7a in abort ()
#3  0x00007fff8ef7d84c in free ()
#4  0x00007fff994f96b4 in std::string::_Rep::_M_destroy ()
#5  0x000000010142c429 in gexiv2_metadata_init_internal ()
#6  0x000000010142bdce in gexiv2_metadata_open_internal ()
#7  0x000000010142be86 in gexiv2_metadata_open_buf ()
#8  0x0000000100cd180a in gimp_metadata_new ()
#9  0x0000000100cd1b1d in gimp_metadata_deserialize ()
#10 0x000000010021e33a in image_set_metadata_invoker ()
#11 0x00000001002639cf in gimp_procedure_execute ()
#12 0x000000010025e65b in gimp_pdb_execute_procedure_by_name_args ()
#13 0x0000000100269b13 in gimp_plug_in_handle_message ()
#14 0x000000010026722e in gimp_plug_in_recv_message ()
#15 0x00000001014ca9a5 in g_main_context_dispatch ()
#16 0x00000001014cac82 in g_main_context_iterate ()
#17 0x00000001014caed6 in g_main_loop_run ()
#18 0x000000010026cce8 in gimp_plug_in_manager_call_run ()
#19 0x000000010027359a in gimp_plug_in_procedure_execute ()
#20 0x00000001002639cf in gimp_procedure_execute ()
#21 0x000000010025e65b in gimp_pdb_execute_procedure_by_name_args ()
#22 0x000000010025eb07 in gimp_pdb_execute_procedure_by_name ()
#23 0x0000000100341a06 in file_open_image ()
#24 0x00000001003425f1 in file_open_with_proc_and_display ()
#25 0x0000000100342481 in file_open_with_display ()
#26 0x0000000100024ea1 in file_open_recent_cmd_callback ()
#27 0x0000000101455cdb in g_closure_invoke ()
#28 0x00000001014692e8 in signal_emit_unlocked_R ()
#29 0x000000010146a183 in g_signal_emit_valist ()
#30 0x000000010146a58e in g_signal_emit ()
#31 0x0000000101455cdb in g_closure_invoke ()
#32 0x00000001014690dc in signal_emit_unlocked_R ()
#33 0x000000010146a183 in g_signal_emit_valist ()
#34 0x000000010146a58e in g_signal_emit ()
#35 0x00000001007af4af in _gtk_action_emit_activate ()
#36 0x0000000101455cdb in g_closure_invoke ()
#37 0x00000001014690dc in signal_emit_unlocked_R ()
#38 0x000000010146a183 in g_signal_emit_valist ()
#39 0x000000010146a58e in g_signal_emit ()
#40 0x0000000101455cdb in g_closure_invoke ()
#41 0x00000001007910cd in idle_call_activate ()
#42 0x0000000100bb610c in gdk_threads_dispatch ()
#43 0x00000001014ca9a5 in g_main_context_dispatch ()
#44 0x00000001014cac82 in g_main_context_iterate ()
#45 0x00000001014caed6 in g_main_loop_run ()
#46 0x000000010000c524 in app_run ()
#47 0x000000010000e900 in main ()
(gdb) 

Change History (12)

comment:1 Changed 5 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: dbevans added
Description: modified (diff)
Keywords: gimp2 exiv2 removed
Port: exiv2 added; exiv removed

Remember to use WikiFormatting when writing in Trac.

comment:2 Changed 5 years ago by kencu (Ken)

Presumably there is some kind of hiccup that Riccardo is running into either in exiv2 or in gexiv2, right about here:

#3  0x00007fff8ef7d84c in free ()
#4  0x00007fff994f96b4 in std::string::_Rep::_M_destroy ()
#5  0x000000010142c429 in gexiv2_metadata_init_internal ()
#6  0x000000010142bdce in gexiv2_metadata_open_internal ()
#7  0x000000010142be86 in gexiv2_metadata_open_buf ()
#8  0x0000000100cd180a in gimp_metadata_new ()

probably in #5 I would imagine. It looks like there is a test suite in gexiv2 that could be enabled to make it easier to find.

comment:3 Changed 5 years ago by kencu (Ken)

build gexiv2 on your system that shows the errors, go into the build directory, open up the permissions, and run the test suite:

sudo port clean gexiv2
sudo port -v build gexiv2
cd `port work gexiv2`
cd gex*
sudo chmod -R a+rw .
make check

and see what happens....

comment:4 Changed 5 years ago by kencu (Ken)

Well perhaps that was too easy to be true -- the tests seem broken, I don't see how to use/fix them -- probably needs to enable the meson build variant, and then dig in. Too bad; sounded like a nice plan...

comment:5 Changed 5 years ago by rmottola (Riccardo)

First question - exiv2 or gexiv2 ? one depends on the other? exiv2 has no tests gexiv2 instead fails:

test/gexiv2-dump.vala:20.40-20.60: error: `GExiv2.Metadata' does not have a default constructor
            GExiv2.Metadata metadata = new GExiv2.Metadata();
                                       ^^^^^^^^^^^^^^^^^^^^^
test/gexiv2-dump.vala:21.13-21.30: error: The name `open_path' does not exist in the context of `GExiv2.Metadata?'
            metadata.open_path(filename);

comment:6 Changed 5 years ago by rmottola (Riccardo)

I may add that I tried several JPEG images, coming out of different cameras and programs - no help, all crash. Also TIFF images crash! PNG images crash.

However, a BMP image works! depends of the plugin then indeed.

comment:7 Changed 5 years ago by kencu (Ken)

You could try updating to gexiv2-0.10.10.tar.xz and see if that works any better for you...

comment:8 Changed 5 years ago by rmottola (Riccardo)

Ken, do you mean sort of trying to upgrade to another release myself?

You aren't able to reproduce? I have this issue both on 10.5 and 10.7... I did not try 10.6 but I assume it will break. If you want I can test there too, but... little help.

comment:9 Changed 5 years ago by kencu (Ken)

Riccardo -- I reproduced this today, and unfortunately I think I may have inadvertently caused it -- sorry.

Please try this:

sudo port -f unintall exiv2

then edit the exiv2 Portfile and remove this line:

PortGroup cxx11 1.1

Then do this:

sudo port -v install exiv2 configure.compiler=macports-clang-5.0

and after that, see if gimp works correctly for you. It does for me (on 10.7).

comment:10 Changed 5 years ago by kencu (Ken)

OK, I think I have fixed this up with a series of commits this evening. After these flow through, you should see a revbump and rebuild of exiv2 and if you have the same experience that I have, hopefully you will see this works now... once that is confirmed, we can close this ticket.

comment:11 Changed 5 years ago by rmottola (Riccardo)

Ken - I can confirm, I updated exiv2 once again and it works, confirmed on 10.7 and it fixed also 10.5 (as I expected) I have now GIMP running natively on Quartz on 10.5! cool, I blogged about my effort.

comment:12 Changed 5 years ago by kencu (Ken)

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.