LINUX.ORG.RU

[gentoo][imagemagick] djvu->* segmentation fault

 ,


0

1
 # emerge -vp imagemagick
[ebuild   R   ] media-gfx/imagemagick-6.6.5.6  USE="autotrace bzip2 corefonts cxx djvu fontconfig gs jbig jpeg jpeg2k lqr openmp perl png raw svg tiff truetype wmf xml zlib -X -fftw -fpx -graphviz -hdri -lcms -openexr -q32 -q8 -static-libs" VIDEO_CARDS="-nvidia" 0 kB
 # convert book1.djvu 1.%d.png
Ошибка сегментирования

book1.djvu (4,4M)

Не нагуглил. У кого нибудь работает?
Ведь так должно работать?

★★★★★

Ответ на: комментарий от Tanger

> И это говнорешение.
зато работает на ~400пакетах.

tn1
()
[ebuild   R   ] media-gfx/imagemagick-6.6.8.5  USE="X djvu* jpeg png svg tiff truetype -autotrace -bzip2 -corefonts -cxx -fftw -fontconfig -fpx -graphviz -gs -hdri -jbig -jpeg2k -lcms -lqr -lzma -openexr -openmp -perl -q32 -q8 -raw -static-libs -webp -wmf -xml -zlib" VIDEO_CARDS="nvidia" 0 kB

~amd64, тоже падает.

uzbl
()
Ответ на: комментарий от uzbl

Я знаю, смысл генты в раскаливание планеты и приближении апокалипсиса ;)

tn1
()
Ответ на: комментарий от tn1

попробовал. то же самое. Напишу сегодня багрепорт.

Tanger ★★★★★
() автор топика
Ответ на: комментарий от tn1

Удобство. Запросто можно держать несколько версий одного ПО.

SAA ★★★
()
Ответ на: комментарий от Lumi
tail -n 40 /tmp/convert_log 
gettimeofday({1306170916, 774506}, NULL) = 0
clock_gettime(CLOCK_REALTIME, {1306170916, 774526267}) = 0
futex(0x9f8d31c, FUTEX_WAKE_PRIVATE, 1) = 0
read(3, "", 65536)                      = 0
gettimeofday({1306170916, 774585}, NULL) = 0
clock_gettime(CLOCK_REALTIME, {1306170916, 774604927}) = 0
futex(0x9f8d31c, FUTEX_WAKE_PRIVATE, 1) = 0
gettimeofday({1306170916, 774643}, NULL) = 0
clock_gettime(CLOCK_REALTIME, {1306170916, 774662411}) = 0
futex(0x9f8d31c, FUTEX_WAKE_PRIVATE, 1) = 0
read(3, "", 65536)                      = 0
gettimeofday({1306170916, 774721}, NULL) = 0
clock_gettime(CLOCK_REALTIME, {1306170916, 774740816}) = 0
futex(0x9f8d31c, FUTEX_WAKE_PRIVATE, 1) = 0
gettimeofday({1306170916, 774779}, NULL) = 0
clock_gettime(CLOCK_REALTIME, {1306170916, 774798540}) = 0
futex(0x9f8d31c, FUTEX_WAKE_PRIVATE, 1) = 0
read(3, "", 65536)                      = 0
futex(0xa004e34, FUTEX_WAIT_PRIVATE, 2, NULL) = 0
futex(0xa004e34, FUTEX_WAKE_PRIVATE, 1) = 0
brk(0xa39b000)                          = 0xa39b000
mmap2(NULL, 39505920, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb2953000
mmap2(NULL, 4395008, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb2522000
mmap2(NULL, 2998272, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb2246000
munmap(0xb2246000, 2998272)             = 0
mmap2(NULL, 2998272, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb2246000
munmap(0xb2246000, 2998272)             = 0
mmap2(NULL, 2998272, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb2246000
munmap(0xb2246000, 2998272)             = 0
mmap2(NULL, 39505920, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xaff75000
munmap(0xb2522000, 4395008)             = 0
mmap2(NULL, 13168640, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xaf2e6000
munmap(0xaf2e6000, 13168640)            = 0
mmap2(NULL, 421888, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xaff0e000
munmap(0xaff0e000, 421888)              = 0
brk(0xa3c0000)                          = 0xa3c0000
munmap(0xaff75000, 39505920)            = 0
mmap2(NULL, 105349120, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xac4db000
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
Tanger ★★★★★
() автор топика
Ответ на: комментарий от megabaks
USE="debug" CFLAGS="-O2 -march=core2 -mtune=generic -pipe -ggdb" CXXFLAGS="${CFLAGS}" FEATURES="nostrip" emerge media-gfx/imagemagick
[ megabaks@desktop ] ~ $ gdb --args convert /var/ftp/stuff/book1.djvu 1.%d.png
GNU gdb (Gentoo 7.2 p1) 7.2
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-pc-linux-gnu".
For bug reporting instructions, please see:
<http://bugs.gentoo.org/>...
Reading symbols from /usr/bin/convert...done.
(gdb) run
Starting program: /usr/bin/convert /var/ftp/stuff/book1.djvu 1.%d.png
[Thread debugging using libthread_db enabled]
[New Thread 0xb7746b70 (LWP 26539)]
[Thread 0xb7746b70 (LWP 26539) exited]
[New Thread 0xb7746b70 (LWP 26540)]
[Thread 0xb7746b70 (LWP 26540) exited]
[New Thread 0xb7746b70 (LWP 26554)]
[New Thread 0xb66e4b70 (LWP 26555)]
[Thread 0xb66e4b70 (LWP 26555) exited]
[Thread 0xb7746b70 (LWP 26554) exited]

Program received signal SIGSEGV, Segmentation fault.
0xb7ec8601 in ImportQuantumPixels (image=0x8064e78, image_view=0x0, quantum_info=0xb6e80568, quantum_type=RGBQuantum, pixels=<value optimized out>, 
    exception=0x8068040) at magick/quantum-import.c:2312
2312	magick/quantum-import.c: Нет такого файла или каталога.
	in magick/quantum-import.c
(gdb) thread apply all bt

Thread 1 (Thread 0xb7c51780 (LWP 26536)):
#0  0xb7ec8601 in ImportQuantumPixels (image=0x8064e78, image_view=0x0, quantum_info=0xb6e80568, quantum_type=RGBQuantum, pixels=<value optimized out>, 
    exception=0x8068040) at magick/quantum-import.c:2312
#1  0xb7ff3c95 in get_page_image (image_info=0x8054278, exception=0x804b560) at coders/djvu.c:443
#2  ReadOneDJVUImage (image_info=0x8054278, exception=0x804b560) at coders/djvu.c:678
#3  ReadDJVUImage (image_info=0x8054278, exception=0x804b560) at coders/djvu.c:872
#4  0xb7de1137 in ReadImage (image_info=0x8050120, exception=0x804b560) at magick/constitute.c:578
#5  0xb7de2577 in ReadImages (image_info=0x8050120, exception=0x804b560) at magick/constitute.c:884
#6  0xb7c9658a in ConvertImageCommand (image_info=0x8050120, argc=3, argv=0x8054228, metadata=0x0, exception=0x804b560) at wand/convert.c:586
#7  0xb7d3eb62 in MagickCommandGenesis (image_info=0x804b600, command=0x804865c <ConvertImageCommand@plt>, argc=3, argv=0xbfffedb4, metadata=0x0, 
    exception=0x804b560) at wand/mogrify.c:169
#8  0x080487cf in main (argc=3, argv=0xbfffedb4) at utilities/convert.c:80
(gdb) c
Continuing.

Program terminated with signal SIGSEGV, Segmentation fault.
The program no longer exists.
(gdb) Quit
[ megabaks@desktop ] ~ $

хде искать им - есть
пиши багрепорт

megabaks ★★★★
()
Ответ на: комментарий от megabaks

Ложная тревога, файл недокачался. Сейчас все работает.

aedeph
()
Ответ на: комментарий от Tanger
[ megabaks@desktop ] ~ $ convert /var/ftp/stuff/book1.djvu 1.%d.png
Ошибка сегментирования
[ megabaks@desktop ] ~ $

эх...опять собераю с дебагом )

megabaks ★★★★
()
Ответ на: комментарий от Tanger
[ megabaks@desktop ] ~ $  gdb --args convert /var/ftp/stuff/book1.djvu 1.%d.png
GNU gdb (Gentoo 7.2 p1) 7.2
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-pc-linux-gnu".
For bug reporting instructions, please see:
<http://bugs.gentoo.org/>...
Reading symbols from /usr/bin/convert...done.
(gdb) run
Starting program: /usr/bin/convert /var/ftp/stuff/book1.djvu 1.%d.png
[Thread debugging using libthread_db enabled]
[New Thread 0xb7738b70 (LWP 7836)]
[Thread 0xb7738b70 (LWP 7836) exited]
[New Thread 0xb7738b70 (LWP 7837)]
[Thread 0xb7738b70 (LWP 7837) exited]
[New Thread 0xb7738b70 (LWP 7838)]
....
[Thread 0xb64e4b70 (LWP 11005) exited]
[Thread 0xb7738b70 (LWP 11004) exited]
terminate called after throwing an instance of 'GException'

Program received signal SIGABRT, Aborted.
0xb7fff424 in __kernel_vsyscall ()
(gdb) thread apply all bt

Thread 1 (Thread 0xb7c43780 (LWP 7833)):
#0  0xb7fff424 in __kernel_vsyscall ()
#1  0x4d5042af in raise () from /lib/libc.so.6
#2  0x4d65dff4 in ?? () from /lib/libc.so.6
#3  0x4d7a4d55 in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib/gcc/i686-pc-linux-gnu/4.5.2/libstdc++.so.6
#4  0x4d7a2be6 in ?? () from /usr/lib/gcc/i686-pc-linux-gnu/4.5.2/libstdc++.so.6
#5  0x4d7a2c23 in std::terminate() () from /usr/lib/gcc/i686-pc-linux-gnu/4.5.2/libstdc++.so.6
#6  0x4d7a2c46 in ?? () from /usr/lib/gcc/i686-pc-linux-gnu/4.5.2/libstdc++.so.6
#7  0x4d7a26b6 in __cxa_call_unexpected () from /usr/lib/gcc/i686-pc-linux-gnu/4.5.2/libstdc++.so.6
#8  0x4d7a335b in operator new(unsigned int) () from /usr/lib/gcc/i686-pc-linux-gnu/4.5.2/libstdc++.so.6
#9  0x4d7a340e in operator new[](unsigned int) () from /usr/lib/gcc/i686-pc-linux-gnu/4.5.2/libstdc++.so.6
#10 0xb77bda52 in GPixmap::init(int, int, GPixel const*) () from /usr/lib/libdjvulibre.so.21
#11 0xb77c645d in GPixmapScaler::scale(GRect const&, GPixmap const&, GRect const&, GPixmap&) () from /usr/lib/libdjvulibre.so.21
#12 0xb783625c in DjVuImage::get_bg_pixmap(GRect const&, int, double, GPixel) const () from /usr/lib/libdjvulibre.so.21
#13 0xb783a68c in DjVuImage::get_pixmap(GRect const&, int, double, GPixel) const () from /usr/lib/libdjvulibre.so.21
#14 0xb78350d9 in ?? () from /usr/lib/libdjvulibre.so.21
#15 0xb78354cf in DjVuImage::get_pixmap(GRect const&, GRect const&, double, GPixel) const () from /usr/lib/libdjvulibre.so.21
#16 0xb789b7d6 in ddjvu_page_render () from /usr/lib/libdjvulibre.so.21
#17 0xb7ff3b57 in get_page_image (image_info=0x8054270, exception=0x804b558) at coders/djvu.c:376
#18 ReadOneDJVUImage (image_info=0x8054270, exception=0x804b558) at coders/djvu.c:677
#19 ReadDJVUImage (image_info=0x8054270, exception=0x804b558) at coders/djvu.c:870
#20 0xb7dd6067 in ReadImage (image_info=0x8050118, exception=0x804b558) at magick/constitute.c:578
#21 0xb7dd74a7 in ReadImages (image_info=0x8050118, exception=0x804b558) at magick/constitute.c:884
#22 0xb7c88ab2 in ConvertImageCommand (image_info=0x8050118, argc=3, argv=0x8054220, metadata=0x0, exception=0x804b558) at wand/convert.c:593
#23 0xb7d32112 in MagickCommandGenesis (image_info=0x804b5f8, command=0x804865c <ConvertImageCommand@plt>, argc=3, argv=0xbfffedb4, metadata=0x0, 
    exception=0x804b558) at wand/mogrify.c:169
#24 0x080487cf in main (argc=3, argv=0xbfffedb4) at utilities/convert.c:80
(gdb) c
Continuing.

Program received signal SIGABRT, Aborted.
0xb7fff424 in __kernel_vsyscall ()
(gdb) Quit
A debugging session is active.

	Inferior 1 [process 7833] will be killed.

Quit anyway? (y or n) n
Not confirmed.
(gdb) c
Continuing.

Program terminated with signal SIGABRT, Aborted.
The program no longer exists.
(gdb) Quit
[ megabaks@desktop ] ~ $ 

о_О

megabaks ★★★★
()
Ответ на: комментарий от Tanger

ты же бэктрейс так и не посмотрел
а как собирать...
USE=«debug» CFLAGS="-O2 -march=core2 -mtune=generic -pipe -ggdb" CXXFLAGS=«${CFLAGS}» FEATURES=«nostrip» emerge что_то
таким образом можно получить нормальный дебаг
ща собираю glibc с дебагом - не зря оно проскочило в трейсе...

megabaks ★★★★
()
Ответ на: комментарий от megabaks

да - stuff

Заюзаю.

я в обход портажа ничего не ставлю

Вот я тоже не хотел ставить, но все же поставил.
Как кстати удалить теперь по нормальному? :)

Tanger ★★★★★
() автор топика
Ответ на: комментарий от Tanger

ну тогда надейся, что из ебыдла просто потрёт твои файлы пакет )))

megabaks ★★★★
()
Ответ на: комментарий от megabaks

>какая-то костылина для поиска файлов не принадлежащих никакому пакету

findcruft. Но я запилил свою:

find /bin /sbin /lib32 /lib64 /usr /etc /opt \
	-type f \! -name .keep \! -name '.keep_*' >111
echo search complete

sed -ri '
/^\/lib64\/modules\//d
/^\/usr\/src\//d
/^\/usr\/lib.+\.(pyc|pyo|ph|pm)$/d
/^\/usr\/share\/mime\//d
/^\/etc\/env.d\//d
/^\/lib64\/rc\//d
' 111
echo whitelist exclude done

qfile -of 111 >222
echo first pass done

sed -i 's,/lib64/,/lib/,' 222
qfile -of 222 >333

sort 333 >444; mv 444 333
Список будет в файле 333.

uzbl
()
Ответ на: комментарий от uzbl

111 222 333 444

Еще один быдлоскриптер? :)

#!/bin/sh
SEARCH=$(find /bin /sbin /lib32 /lib64 /usr /etc /opt \
   -type f \! -name .keep \! -name '.keep_*')
echo search complete

sed -ri '
/^\/lib64\/modules\//d
/^\/usr\/src\//d
/^\/usr\/lib.+\.(pyc|pyo|ph|pm)$/d
/^\/usr\/share\/mime\//d
/^\/etc\/env.d\//d
/^\/lib64\/rc\//d
' <<< $SEARCH
echo whitelist exclude done

QFILE=$(qfile -of $SEARCH)
echo first pass done

sed -i 's,/lib64/,/lib/,' <<< $QFILE
RES=$(qfile -of $QFILE)

sort <<< $RES
не?

Tanger ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.