tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: perl GraphicsMagick problem



Mark Davies wrote:
Could people please run the following perl script on systems with
p5-GraphicsMagick installed and tell me what happens.
[...]
       $error = $impl->Resize(geometry=>'x180');
[...]
On NetBSD-5.99.59/i386 it SEGFAULTS in the Resize.

If I replace p5-GraphicsMagick with p5-PerlMagick and change the
"Graphics::Magick"'s to "Image::Magick" I get the same behaviour -
works on 5.1, segfaults on 5.99.59.

If I use the underlying GraphicsMagick or ImageMagick to convert the
file it works in all cases so this seems to be an issue with the perl
interface (in some way that effects both).

Would like to know if anyone sees this problem on 6_BETA2 or a current
current or on amd64 systems.  If someone understands the perl xs stuff
and can see why its breaking in this case - that would be great too.

The same problem is with using Ruby instead of Perl. Here is how to reproduce it with Ruby on NetBSD 6.0_BETA2, amd64:

1)
install ruby-1.9.3p194nb1 from pkgsrc
install ruby193-RMagick from pkgsrc
2)
run the following ruby script:
#!/usr/pkg/bin/ruby
require 'RMagick'
img = Magick::Image.read('imgsample.png').first
img.resize!(140, 38)

In case you don't have any image around, here is a script, which generates a blank png image suitable for step 2):
#!/bin/sh
# sample base64-encoded 330 x 90 PNG image
cat <<PNGEND | openssl enc -base64 -d > imgsample.png
iVBORw0KGgoAAAANSUhEUgAAAUoAAABaCAIAAABR6oh9AAAAAXNSR0IArs4c6QAA
AAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9wF
HQoOBSDFKhEAAADYSURBVHja7dMBDQAACMMwwL/n4+NpJSzZJhmg0UkA9gbsDdgb
sDdgb8DeYG/A3oC9AXsD9gbsDfYG7A3YG7A3YG/A3mBvwN6AvQF7A/YG7A3YG+wN
2BuwN2BvwN6AvcHegL0BewP2BuwN2BvsDdgbsDdgb8DegL0Be4O9AXsD9gbsDdgb
sDfYG7A3YG/A3oC9AXuDvQF7A/YG7A3YG7A32BuwN2BvwN6AvQF7A/YGewP2BuwN
2BuwN2BvsDdgb8DegL0BewP2BnsD9gbsDdgbsDdgb8De0OwBM1kDsWuhsOgAAAAA
SUVORK5CYII=
PNGEND

Backtrace from gdb:
(gdb) bt full
#0  0x00007f7ff64fb1aa in _lwp_kill () from /usr/lib/libc.so.12
No symbol table info available.
#1  0x00007f7ff64faa22 in abort () at /usr/src/lib/libc/stdlib/abort.c:74
        mask = {__bits = {4294967263, 4294967295, 4294967295, 4294967295}}
#2  0x00007f7ff78534b5 in rb_bug () from /usr/pkg/lib/libruby193.so.19
No symbol table info available.
#3  0x00007f7ff78e4eda in sigsegv () from /usr/pkg/lib/libruby193.so.19
No symbol table info available.
#4  <signal handler called>
No symbol table info available.
#5  0x0000000000000000 in ?? ()
No symbol table info available.
#6 0x00007f7ff7408771 in pthread__spinlock (lock=0x7f7ff5b0282c "", self=0x7f7ff5f36800) at /usr/src/lib/libpthread/pthread_int.h:213
No locals.
#7 pthread__cond_wake_one (cond=0x7f7ff5b02828) at /usr/src/lib/libpthread/pthread_cond.c:212
        self = 0x7f7ff5f36800
        signaled = <optimized out>
        mutex = <optimized out>
        lid = <optimized out>
        __func__ = "pthread__cond_wake_one"
#8 0x00007f7ff740604d in sem_post (sem=0x7f7ff5f0cc98) at /usr/src/lib/libpthread/sem.c:391
No locals.
#9 0x00007f7fee006c58 in gomp_sem_post (sem=0x7f7ff5f0cc98) at /usr/src/external/gpl3/gcc/dist/libgomp/config/posix/sem.h:79
No locals.
#10 gomp_barrier_wait_end (bar=0x7f7ff5f0cc68, state=<optimized out>) at /usr/src/external/gpl3/gcc/dist/libgomp/config/posix/bar.c:81
        n = 1
#11 0x00007f7fee00717a in gomp_thread_start (xdata=<optimized out>) at /usr/src/external/gpl3/gcc/dist/libgomp/team.c:109
        data = 0x7f7fffffd340
        pool = 0x7f7ff5f0cc50
        local_fn = 0x7f7ff419addc
        local_data = 0x7f7fffffd4c0
#12 0x00007f7ff740a7cd in pthread__create_tramp (cookie=0x7f7fec000000) at /usr/src/lib/libpthread/pthread.c:489
        self = 0x7f7fec000000
        retval = 0x7f7ff7ffedc0
#13 0x00007f7ff647bff0 in ___lwp_park50 () from /usr/lib/libc.so.12
No symbol table info available.
(gdb)

r.



Home | Main Index | Thread Index | Old Index