make check File too large?

Questions and postings pertaining to the development of ImageMagick, feature enhancements, and ImageMagick internals. ImageMagick source code and algorithms are discussed here. Usage questions which are too arcane for the normal user list should also be posted here.
Post Reply
axelrose
Posts: 96
Joined: 2008-12-16T06:01:27-07:00

make check File too large?

Post by axelrose »

Hello all,

I have problems validating a 6.6.1-4 installation on some machines.
"make check" reports

Code: Select all

validate: unable to extend cache `/var/tmp/magick-XX9Ja4NZ': File too large @ error/cache.c/OpenPixelCache/4171
Other tests succeed.
I verified that I have enough disk space:

Code: Select all

$ dd if=/dev/zero of=/var/tmp/magick-test bs=1024 count=1000000
1000000+0 records in
1000000+0 records out
Is there anything I can do to have a better validation?


Thanks, Axel.
User avatar
magick
Site Admin
Posts: 11064
Joined: 2003-05-31T11:32:55-07:00

Re: make check File too large?

Post by magick »

Which check failed? Assume it was validate-formats-on-disk. In that case, take a look at tests/validate-formats-on-disk.log and post the context for the failure here. We need to identify which subtest failed.
axelrose
Posts: 96
Joined: 2008-12-16T06:01:27-07:00

Re: make check File too large?

Post by axelrose »

SunOS server-name 5.10 Generic_118833-24 sun4v sparc SUNW,Sun-Fire-T200

Code: Select all

PASS: tests/validate-compare.sh
PASS: tests/validate-composite.sh
PASS: tests/validate-convert.sh
PASS: tests/validate-identify.sh
PASS: tests/validate-import.sh
PASS: tests/validate-montage.sh
PASS: tests/validate-pipe.sh
PASS: tests/validate-stream.sh
FAIL: tests/validate-formats-in-memory.sh
FAIL: tests/validate-formats-on-disk.sh
PASS: wand/drawtest.sh
PASS: wand/wandtest.sh
The complete content of "validate-formats-on-disk.log" is:

Code: Select all

FAIL: tests/validate-formats-on-disk.sh (exit: 139)
===================================================

validate: unable to extend cache `/var/tmp/magick-XXBSaqJd': File too large @ error/cache.c/OpenPixelCache/4171.
validate: unexpected end-of-file `/var/tmp/magick-XXBSaqJd': No such file or directory @ error/cin.c/ReadCINImage/740.
validate: image size differs `/var/tmp/magick-XXBSaqJd' @ error/compare.c/CompareImageChannels/155.
validate: unable to extend cache `/var/tmp/magick-XXBSaqJd': File too large @ error/cache.c/OpenPixelCache/4171.
validate: unexpected end-of-file `/var/tmp/magick-XXBSaqJd': File too large @ error/cin.c/ReadCINImage/740.
validate: unexpected end-of-file `/var/tmp/magick-XXBSaqJd': No such file or directory @ error/cin.c/ReadCINImage/740.
validate: image size differs `/var/tmp/magick-XXBSaqJd' @ error/compare.c/CompareImageChannels/155.
validate: unable to extend cache `/var/tmp/magick-XXBSaqJd': File too large @ error/cache.c/OpenPixelCache/4171.
validate: unexpected end-of-file `/var/tmp/magick-XXBSaqJd': File too large @ error/cin.c/ReadCINImage/740.
validate: unexpected end-of-file `/var/tmp/magick-XXBSaqJd': No such file or directory @ error/cin.c/ReadCINImage/740.
validate: image size differs `/var/tmp/magick-XXBSaqJd' @ error/compare.c/CompareImageChannels/155.
validate: unable to extend cache `/var/tmp/magick-XXBSaqJd': File too large @ error/cache.c/OpenPixelCache/4171.
validate: unexpected end-of-file `/var/tmp/magick-XXBSaqJd': File too large @ error/cin.c/ReadCINImage/740.
validate: unexpected end-of-file `/var/tmp/magick-XXBSaqJd': No such file or directory @ error/cin.c/ReadCINImage/740.
validate: image size differs `/var/tmp/magick-XXBSaqJd' @ error/compare.c/CompareImageChannels/155.
validate: unable to extend cache `/var/tmp/magick-XXBSaqJd': File too large @ error/cache.c/OpenPixelCache/4171.
validate: unexpected end-of-file `/var/tmp/magick-XXBSaqJd': File too large @ error/cin.c/ReadCINImage/740.
validate: unexpected end-of-file `/var/tmp/magick-XXBSaqJd': No such file or directory @ error/cin.c/ReadCINImage/740.
validate: image size differs `/var/tmp/magick-XXBSaqJd' @ error/compare.c/CompareImageChannels/155.
validate: unable to extend cache `/var/tmp/magick-XXBSaqJd': File too large @ error/cache.c/OpenPixelCache/4171.
validate: unexpected end-of-file `/var/tmp/magick-XXBSaqJd': File too large @ error/cin.c/ReadCINImage/740.
validate: unexpected end-of-file `/var/tmp/magick-XXBSaqJd': No such file or directory @ error/cin.c/ReadCINImage/740.
validate: image size differs `/var/tmp/magick-XXBSaqJd' @ error/compare.c/CompareImageChannels/155.
validate: unable to extend cache `/var/tmp/magick-XXBSaqJd': File too large @ error/cache.c/OpenPixelCache/4171.
validate: unexpected end-of-file `/var/tmp/magick-XXBSaqJd': File too large @ error/cin.c/ReadCINImage/740.
validate: unexpected end-of-file `/var/tmp/magick-XXBSaqJd': No such file or directory @ error/cin.c/ReadCINImage/740.
validate: image size differs `/var/tmp/magick-XXBSaqJd' @ error/compare.c/CompareImageChannels/155.
validate: unable to extend cache `/var/tmp/magick-XXBSaqJd': File too large @ error/cache.c/OpenPixelCache/4171.
validate: unexpected end-of-file `/var/tmp/magick-XXBSaqJd': File too large @ error/cin.c/ReadCINImage/740.
validate: unexpected end-of-file `/var/tmp/magick-XXBSaqJd': No such file or directory @ error/cin.c/ReadCINImage/740.
validate: image size differs `/var/tmp/magick-XXBSaqJd' @ error/compare.c/CompareImageChannels/155.
validate: unable to extend cache `/var/tmp/magick-XXBSaqJd': File too large @ error/cache.c/OpenPixelCache/4171.
validate: unexpected end-of-file `/var/tmp/magick-XXBSaqJd': File too large @ error/cin.c/ReadCINImage/740.
validate: unexpected end-of-file `/var/tmp/magick-XXBSaqJd': No such file or directory @ error/cin.c/ReadCINImage/740.
validate: image size differs `/var/tmp/magick-XXBSaqJd' @ error/compare.c/CompareImageChannels/155.
validate: unable to extend cache `/var/tmp/magick-XXBSaqJd': File too large @ error/cache.c/OpenPixelCache/4171.
validate: unexpected end-of-file `/var/tmp/magick-XXBSaqJd': File too large @ error/cin.c/ReadCINImage/740.
validate: unexpected end-of-file `/var/tmp/magick-XXBSaqJd': No such file or directory @ error/cin.c/ReadCINImage/740.
validate: image size differs `/var/tmp/magick-XXBSaqJd' @ error/compare.c/CompareImageChannels/155.
On another Solaris machine

SunOS server-name 5.10 Generic_127112-05 i86pc i386 i86pc Solaris

I have these results:

Code: Select all

PASS: tests/validate-compare.sh
PASS: tests/validate-composite.sh
PASS: tests/validate-convert.sh
PASS: tests/validate-identify.sh
PASS: tests/validate-import.sh
PASS: tests/validate-montage.sh
PASS: tests/validate-pipe.sh
PASS: tests/validate-stream.sh
PASS: tests/validate-formats-in-memory.sh
FAIL: tests/validate-formats-on-disk.sh
PASS: wand/drawtest.sh
PASS: wand/wandtest.sh
using IM-6.6.1-4 too.

Shall I use this post for those problems too. Checking the log file I found that
those errors are format related, e.g. from "validate-formats-on-disk.log":

Code: Select all

  test 145: GIF87/Undefined/Grayscale/8-bits... pass.
  test 146validate: unable to open image `/var/tmp/magick-XXi8aaim': No such file or directory @ error/blob.c/OpenBlob/2489.
Thanks for the great help,
Axel
User avatar
magick
Site Admin
Posts: 11064
Joined: 2003-05-31T11:32:55-07:00

Re: make check File too large?

Post by magick »

Perhaps you are running out of space on /var/tmp. Try setting the temporary file folder for ImageMagick to another location. Try
  • export MAGICK_TMPDIR=./
    make check
That should create temporary files in your current directory. Does that resolve the 'file too large' exception?
axelrose
Posts: 96
Joined: 2008-12-16T06:01:27-07:00

Re: make check File too large?

Post by axelrose »

Redefining MAGICK_TMPDIR doesn't help.

I checked for sufficient disk space thusly:

Code: Select all

 dd if=/dev/zero of=/var/tmp/magick-test bs=1024 count=1000000
1000000+0 records in
1000000+0 records out
Where could I see the actual test code in the sources?
User avatar
magick
Site Admin
Posts: 11064
Joined: 2003-05-31T11:32:55-07:00

Re: make check File too large?

Post by magick »

Solaris is returning the error suggesting not enough disk space or ImageMagick is asking for too much. To debug,
  • validate: unable to extend cache `/var/tmp/magick-XXBSaqJd': File too large @ error/cache.c/OpenPixelCache/4171.
means go to ImageMagick-6.6.1-4/magick/cache.c and look at line 4171. Add debug statements and see if the request to extend the cache is reasonable. If the cache_info->offset+cache_info->length is a huge number, that would suggest some sort of problem in the ImageMagick build.
axelrose
Posts: 96
Joined: 2008-12-16T06:01:27-07:00

Re: make check File too large?

Post by axelrose »

After inserting some debugging code into "magick/cache.c"

Code: Select all

  if (status == MagickFalse)
    {
      printf("DEBUG:");
      printf("%d\n", cache_info->offset+cache_info->length);
      ThrowFileException(exception,CacheError,"UnableToExtendCache",
        image->filename);
      return(MagickFalse);
    }
and running "make check" I see this result in "tests/validate-formats-in-memory.log":

Code: Select all

  test 38: BMP/Undefined/TrueColor/16-bits... pass.
  test 39: CIN/Undefined/TrueColor/8-bitsDEBUG:1688207360
... fail @ tests/validate.c/ValidateImageFormatsInMemory/598.
I'd say that allocating 1.688.207.360 bytes is indeed too much memory being allocated.

I really don't need the DPX/CIN/Cineon format. Is there any "--without-cineon" option for configuration?

Cheers, Axel.
User avatar
magick
Site Admin
Posts: 11064
Joined: 2003-05-31T11:32:55-07:00

Re: make check File too large?

Post by magick »

Perhaps there is byte order problem for DPX under Solaris. We will investigate.

In the mean-time, if you are building ImageMagick as modules you can simply remove the dpx.la and dpx.so files from the distribution. There is no configure script option to remove DPX support.
Post Reply