Bug 116874 - Build of graphics/ImageMagick hangs while testing PerlMagick
Summary: Build of graphics/ImageMagick hangs while testing PerlMagick
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: Mikhail Teterin
Depends on:
Reported: 2007-10-03 16:40 UTC by Jonathan Lennox
Modified: 2007-11-07 05:50 UTC (History)
0 users

See Also:


Note You need to log in before you can comment on or make changes to this bug.
Description Jonathan Lennox 2007-10-03 16:40:01 UTC
When building the port graphics/ImageMagick on my FreeBSD 5.5 machine, the
first PerlMagick test fails to load the Image::Magick module, then goes into
an infinite loop.

The output of the build looks like this:

cd PerlMagick && make CC='cc' test
/bin/sh ../magick.sh PERL_DL_NONLAZY=1 /usr/local/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/bzlib/*.t t/jbig/*.t t/jpeg/*.t t/jp2/*.t t/png/*.t t/tiff/*.t t/zlib/*.t
t/blob............Can't load '/usr/ports/graphics/ImageMagick/work/ImageMagick-6.3.5/PerlMagick/blib/arch/auto/Image/Magick/Magick.so' for module Image::Magick: /usr/local/lib/libIlmThread.so.4: Undefined symbol "pthread_join" at /usr/local/lib/perl5/5.8.8/mach/DynaLoader.pm line 230.
 at t/blob.t line 7
Compilation failed in require at t/blob.t line 7.
BEGIN failed--compilation aborted at t/blob.t line 7.
Deep recursion on subroutine "Image::Magick::AUTOLOAD" at /usr/ports/graphics/ImageMagick/work/ImageMagick-6.3.5/PerlMagick/blib/lib/Image/Magick.pm line 42.

After this point the build hangs, with the perl process spinning and consuming large amounts of CPU.


Disabling the ImageMagick tests works around the problem.
[remove any pre-defined ImageMagick options.]
BATCH=yes portinstall graphics/ImageMagick
Comment 1 Edwin Groothuis freebsd_committer 2007-10-03 16:40:10 UTC
State Changed
From-To: open->feedback

Awaiting maintainers feedback (via the GNATS Auto Assign Tool)
Comment 2 Mikhail Teterin 2007-10-03 17:01:15 UTC
A better work-around may be to disable OpenEXR (libIlmThread.so.4). It is 
compiled with thread-support and causes this problem under some circumstances 
(when your glib does not use ICU)...

I just committed a small change, that would cause PerlMagick to fail faster in 
this situation -- and without consuming all memory first.

Please, let me know, if the change helps the failing tests fail faster.

I'm still awaiting response from OpenEXR's maintainer on how best to deal with 
underlying problem.

Thank you for your feedback. Yours,

Comment 3 Mikhail Teterin freebsd_committer 2007-10-03 17:01:50 UTC
Responsible Changed
From-To: freebsd-ports-bugs->mi

Mine, all mine...
Comment 4 dfilter service freebsd_committer 2007-11-07 05:46:45 UTC
mi          2007-11-07 05:46:29 UTC

  FreeBSD ports repository

  Modified files:
    graphics/ImageMagick Makefile distinfo pkg-plist 
  Removed files:
    graphics/ImageMagick/files patch-leak patch-module-path 
  Update from 6.3.5-10 to 6.3.6-9. Some of our patches were accepted
  upstream. The tests should work with and without X11. Enable FPX by
  default. Resolve all related PRs.
  Approved by:    portmgr (linimon)
  PR:     67815
  PR:     117635
  PR:     116874
  PR:     114387
  Revision  Changes    Path
  1.249     +21 -14    ports/graphics/ImageMagick/Makefile
  1.111     +3 -3      ports/graphics/ImageMagick/distinfo
  1.2       +0 -12     ports/graphics/ImageMagick/files/patch-leak (dead)
  1.2       +0 -31     ports/graphics/ImageMagick/files/patch-module-path (dead)
  1.2       +0 -21     ports/graphics/ImageMagick/files/patch-test-filter (dead)
  1.108     +1 -0      ports/graphics/ImageMagick/pkg-plist
cvs-all@freebsd.org mailing list
To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"
Comment 5 Mikhail Teterin freebsd_committer 2007-11-07 05:46:56 UTC
State Changed
From-To: feedback->closed

The underlying problem was resolved, when OpenEXR was updated. 
In any case, the new limits (introduced in the earlier version 
of the port) should prevent failure of a Perl test causing much