[Bug 279329] New: Crash in c44 (djvulibre)
https://bugzilla.novell.com/show_bug.cgi?id=279329 Summary: Crash in c44 (djvulibre) Product: openSUSE 10.2 Version: Final Platform: Other OS/Version: Other Status: NEW Severity: Minor Priority: P5 - None Component: Other AssignedTo: bnc-team-screening@forge.provo.novell.com ReportedBy: robin.listas@telefonica.net QAContact: qa@suse.de I'm trying to convert a big image to djvu format, and c44 crashes with message: pngtopnm mosaico.png > mosaico.pnm c44 -dpi 72 -slice "72+11+10+10" mosaico.pnm terminate called after throwing an instance of 'DJVU::GException' <===== Aborted The image is so big that c44 reserves 2.5 GiB of memory (mosaico.pnm is 1.7 GiB). It is 16384x16384 pixels (I haven't been able to open it with gimp, yet) rpm is version «djvulibre-3.5.17-27» -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=279329 chrubis@novell.com changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|bnc-team- |lmichnovic@novell.com |screening@forge.provo.novell| |.com | -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=279329 lmichnovic@novell.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |NEEDINFO Info Provider| |robin.listas@telefonica.net ------- Comment #1 from lmichnovic@novell.com 2007-06-06 08:31 MST ------- The image is really huge. It would be really hard to reproduce. Can you please try to install the debuginfo rpm of djvulibre and a get a backtrace and post it here, please? -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=279329 robin.listas@telefonica.net changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEEDINFO |NEW Info Provider|robin.listas@telefonica.net | ------- Comment #2 from robin.listas@telefonica.net 2007-06-06 17:07 MST ------- Yes, it is big. I realized that after creating it O:-) - in fact, the conversion to djvu was an attempt to see if djview could open it, as neither "display" (ImageMagick) nor gimp can. Well, I installed djvulibre-debuginfo-3.5.17-27, but I don't get a backtrace (or I don't see it). It just crashes as before. I have done then an ltrace: cer@nimrodel:~/mosaicos> nice ltrace -S -t -f -o mosaico.ltrace c44 -dpi 72 -slice "72+11+10+10" mosaico.pnm terminate called after throwing an instance of 'DJVU::GException' The ltrace file is just 37 KiB (I expected way more), so I will attach it to the report, perhaps it is of some help. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=279329 ------- Comment #3 from robin.listas@telefonica.net 2007-06-06 17:09 MST ------- Created an attachment (id=144624) --> (https://bugzilla.novell.com/attachment.cgi?id=144624&action=view) ltrace of the crash. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=279329 lmichnovic@novell.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |NEEDINFO Info Provider| |robin.listas@telefonica.net ------- Comment #4 from lmichnovic@novell.com 2007-06-07 03:46 MST ------- Thank you, but I really need the backtrace. Could you try to run the command in gdb (gnu debugger) ? This program will show you the backtrace. The debuginfo rpm is needed to provide info for gdb. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=279329 robin.listas@telefonica.net changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEEDINFO |NEW Info Provider|robin.listas@telefonica.net | ------- Comment #5 from robin.listas@telefonica.net 2007-06-07 05:17 MST ------- The debuginfo rpm is installed, but I don't see any extra output, no coredump, no extrafile. I don't know how to tell it to produce a backtrace. I have used "debug" for msdos back in the eighties, but I have no idea how to use it in linux. A test run of "gdb ls" produces a complaint, and "gdb /bin/ls" doesn't seem to run "ls", I see no output from "ls". I need a guide for dummies to use that tool. I type "help" and it seems I should type "running": .. running -- Running the program .. but I type "running" and it complains that «Undefined command: "running". Try "help".» -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=279329 ------- Comment #6 from lmichnovic@novell.com 2007-06-07 05:56 MST ------- Open a terminal. Change into the directory where the the file mosaico.pnm is. Run command gdb. You will see another command line. Type: exec-file /usr/bin/c44 [Enter] run -dpi 72 -slice "72+11+10+10" mosaico.pnm [Enter] [here it should crash, you will see some output in terminal] bt [Enter] [It writes a backtrace to a terminal, which you just copy&paste from terminal to a text file and pleaase attach this text file here. Thank you.] q [Enter, for quit gdb] -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=279329 ------- Comment #7 from robin.listas@telefonica.net 2007-06-07 06:39 MST ------- I tried: cer@nimrodel:~> gdb /usr/bin/c44 -dpi 72 -slice "72+11+10+10" mosaico.pnm gdb: unrecognized option `-dpi' Use `gdb --help' for a complete list of options. Ugh. .. Another try. cer@nimrodel:~/mosaicos> gdb --args /usr/bin/c44 -dpi 72 -slice "72+11+10+10" mosaico.pnm GNU gdb 6.5 Copyright (C) 2006 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i586-suse-linux"...Using host libthread_db library "/lib/libthread_db.so.1". (gdb) run Starting program: /usr/bin/c44 -dpi 72 -slice 72+11+10+10 mosaico.pnm Failed to read a valid object file image from memory. [Thread debugging using libthread_db enabled] [New Thread -1213412656 (LWP 1639)] terminate called after throwing an instance of 'DJVU::GException' Program received signal SIGABRT, Aborted. [Switching to Thread -1213412656 (LWP 1639)] 0xb7efe410 in ?? () (gdb) Now, where do I get the backtrace from? That's all the info it prints. c44 is still unloading from memory after terminating (1.5 GiB in swap, I think). Ok, I type "backtrace" and it prints something: (gdb) backtrace #0 0xb7efe410 in ?? () #1 0xbfe8040c in ?? () #2 0x00000006 in ?? () #3 0x00000667 in ?? () #4 0xb7af6060 in raise () from /lib/libc.so.6 #5 0xb7af7801 in abort () from /lib/libc.so.6 #6 0xb7cf84f0 in __gnu_cxx::__verbose_terminate_handler () from /usr/lib/libstdc++.so.6 #7 0xb7cf5f15 in std::set_unexpected () from /usr/lib/libstdc++.so.6 #8 0xb7cf5f52 in std::terminate () from /usr/lib/libstdc++.so.6 #9 0xb7cf5f75 in std::terminate () from /usr/lib/libstdc++.so.6 #10 0xb7cf5a08 in __cxa_call_unexpected () from /usr/lib/libstdc++.so.6 #11 0xb7cf64eb in operator new () from /usr/lib/libstdc++.so.6 #12 0xb7d9706a in DJVU::GPBufferBase::GPBufferBase () from /usr/local/lib/libdjvulibre.so.15 #13 0xb7dc7601 in DJVU::IW44Image::Map::Encode::create () from /usr/local/lib/libdjvulibre.so.15 #14 0xb7dc86b4 in DJVU::IWPixmap::Encode::init () from /usr/local/lib/libdjvulibre.so.15 ---Type <return> to continue, or q <return> to quit--- #15 0xb7dc8dc5 in DJVU::IW44Image::create_encode () from /usr/local/lib/libdjvulibre.so.15 #16 0x0804d76f in main (argc=6, argv=0xbfe812a4) at c44.cpp:767 #17 0xb7ae2f9c in __libc_start_main () from /lib/libc.so.6 #18 0x0804a2e1 in _start () (gdb) HTH. .. I just saw your comment; I'll try that way too. cer@nimrodel:~/mosaicos> gdb GNU gdb 6.5 .. (gdb) exec-file /usr/bin/c44 (gdb) run -dpi 72 -slice "72+11+10+10" mosaico.pnm Starting program: /usr/bin/c44 -dpi 72 -slice "72+11+10+10" mosaico.pnm Using host libthread_db library "/lib/libthread_db.so.1". Failed to read a valid object file image from memory. (no debugging symbols found) <================================ [Thread debugging using libthread_db enabled] [New Thread -1213453616 (LWP 2782)] terminate called after throwing an instance of 'DJVU::GException' Program received signal SIGABRT, Aborted. [Switching to Thread -1213453616 (LWP 2782)] 0xb7ef4410 in ?? () (gdb) (gdb) backtrace #0 0xb7ef4410 in ?? () #1 0xbfa707fc in ?? () #2 0x00000006 in ?? () #3 0x00000ade in ?? () #4 0xb7aec060 in raise () from /lib/libc.so.6 #5 0xb7aed801 in abort () from /lib/libc.so.6 #6 0xb7cee4f0 in __gnu_cxx::__verbose_terminate_handler () from /usr/lib/libstdc++.so.6 #7 0xb7cebf15 in std::set_unexpected () from /usr/lib/libstdc++.so.6 #8 0xb7cebf52 in std::terminate () from /usr/lib/libstdc++.so.6 #9 0xb7cebf75 in std::terminate () from /usr/lib/libstdc++.so.6 #10 0xb7ceba08 in __cxa_call_unexpected () from /usr/lib/libstdc++.so.6 #11 0xb7cec4eb in operator new () from /usr/lib/libstdc++.so.6 #12 0xb7d8d06a in DJVU::GPBufferBase::GPBufferBase () from /usr/local/lib/libdjvulibre.so.15 #13 0xb7dbd601 in DJVU::IW44Image::Map::Encode::create () from /usr/local/lib/libdjvulibre.so.15 #14 0xb7dbe6b4 in DJVU::IWPixmap::Encode::init () from /usr/local/lib/libdjvulibre.so.15 #15 0xb7dbedc5 in DJVU::IW44Image::create_encode () from /usr/local/lib/libdjvulibre.so.15 #16 0x0804d76f in ?? () #17 0xbfa715d0 in ?? () #18 0x080553f0 in ?? () #19 0xbfa715d4 in ?? () #20 0x00000002 in ?? () #21 0xb7f10ff4 in ?? () from /lib/ld-linux.so.2 #22 0xf63d4e2e in ?? () ---Type <return> to continue, or q <return> to quit--- #23 0xbfa71534 in ?? () #24 0xbfa71568 in ?? () #25 0xbfa71694 in ?? () #26 0x00000006 in ?? () #27 0x00000000 in ?? () (gdb) If that's not the info you need, what I can do is compile the program myself, as I have done other times. It seems there is no debug info in there. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=279329 ------- Comment #8 from lmichnovic@novell.com 2007-06-07 07:05 MST ------- Good, many thanks. But this is a problem (no debugging symbols found) <================================ My instructions wasn't good enough. I'm sorry. Type only "file" instead of "exec-file" after running gdb. It doesn't work on my computer too with exec-file, but with file it works. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=279329 ------- Comment #9 from robin.listas@telefonica.net 2007-06-07 08:20 MST ------- I got a "gnome-main-menu-bugreport.txt", but that not what you want. Funny it happened right now, though. Ok... here you have: (gdb) file /usr/bin/c44 Reading symbols from /usr/bin/c44...Reading symbols from /usr/lib/debug/usr/bin/c44.debug...done. Using host libthread_db library "/lib/libthread_db.so.1". done. (gdb) run -dpi 72 -slice "72+11+10+10" mosaico.pnm Starting program: /usr/bin/c44 -dpi 72 -slice "72+11+10+10" mosaico.pnm Failed to read a valid object file image from memory. [Thread debugging using libthread_db enabled] [New Thread -1213056304 (LWP 3951)] terminate called after throwing an instance of 'DJVU::GException' Program received signal SIGABRT, Aborted. [Switching to Thread -1213056304 (LWP 3951)] 0xb7f55410 in ?? () (gdb) backtrace #0 0xb7f55410 in ?? () #1 0xbf9c2f4c in ?? () #2 0x00000006 in ?? () #3 0x00000f6f in ?? () #4 0xb7b4d060 in raise () from /lib/libc.so.6 #5 0xb7b4e801 in abort () from /lib/libc.so.6 #6 0xb7d4f4f0 in __gnu_cxx::__verbose_terminate_handler () from /usr/lib/libstdc++.so.6 #7 0xb7d4cf15 in std::set_unexpected () from /usr/lib/libstdc++.so.6 #8 0xb7d4cf52 in std::terminate () from /usr/lib/libstdc++.so.6 #9 0xb7d4cf75 in std::terminate () from /usr/lib/libstdc++.so.6 #10 0xb7d4ca08 in __cxa_call_unexpected () from /usr/lib/libstdc++.so.6 #11 0xb7d4d4eb in operator new () from /usr/lib/libstdc++.so.6 #12 0xb7dee06a in DJVU::GPBufferBase::GPBufferBase () from /usr/local/lib/libdjvulibre.so.15 #13 0xb7e1e601 in DJVU::IW44Image::Map::Encode::create () from /usr/local/lib/libdjvulibre.so.15 #14 0xb7e1f6b4 in DJVU::IWPixmap::Encode::init () from /usr/local/lib/libdjvulibre.so.15 #15 0xb7e1fdc5 in DJVU::IW44Image::create_encode () from /usr/local/lib/libdjvulibre.so.15 #16 0x0804d76f in main (argc=6, argv=0xbf9c3de4) at c44.cpp:767 #17 0xb7b39f9c in __libc_start_main () from /lib/libc.so.6 #18 0x0804a2e1 in _start () (gdb) A curious thing is that I see in "top" that c44 reserves about 2.5 GiB of virtual memory, and then I see the resident memory increase slowly; when it reaches about 1 GiB (I wasn't looking) it crashes. The other point is that is a 32 bit architecture (P-IV), I wonder if a program can reserve that much memory. I'm attending a course now, I have to leave. Any more tests will have to wait. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=279329 lmichnovic@novell.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED ------- Comment #10 from lmichnovic@novell.com 2007-06-07 08:25 MST ------- Thank you for backtrace. I'll take a closer look. Actually 32 bit arch and also djvulibre itself have limitations. Maybe it will work on 64bit arch. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=279329 ------- Comment #11 from robin.listas@telefonica.net 2007-06-07 17:36 MST ------- Out of curiosity, I tried compiling a new version, djvulibre-3.5.19. I used "configure --enable-debug", and I modified (hacked) it to use «opt="-march=pentium4"». It crashes with an slightly different message. It's also funny that gnome-main-menu crashes consistently about the same time that c44 crashes. It should be unrelated, but... :-? Another note: the man page of c44 says: ] BUGS ] The encoder requires more memory than necessary. ] The rechunking capability is currently broken. maybe related... it does indeed use a lot of memory. I'll add here the gdb messages; I suppose they will not help, but maybe I'm wrong. .. (gdb) file /usr/local/bin/c44 Reading symbols from /usr/local/bin/c44...(no debugging symbols found)...done. Using host libthread_db library "/lib/libthread_db.so.1". (gdb) run -dpi 72 -slice "72+11+10+10" mosaico.pnm Starting program: /usr/local/bin/c44 -dpi 72 -slice "72+11+10+10" mosaico.pnm Failed to read a valid object file image from memory. (no debugging symbols found) [Thread debugging using libthread_db enabled] [New Thread -1213367600 (LWP 2568)] terminate called after throwing an instance of 'GException' Program received signal SIGABRT, Aborted. [Switching to Thread -1213367600 (LWP 2568)] 0xb7f51410 in ?? () (gdb) (gdb) (gdb) backtrace #0 0xb7f51410 in ?? () #1 0xbfa88ecc in ?? () #2 0x00000006 in ?? () #3 0x00000a08 in ?? () #4 0xb7b01060 in raise () from /lib/libc.so.6 #5 0xb7b02801 in abort () from /lib/libc.so.6 #6 0xb7d034f0 in __gnu_cxx::__verbose_terminate_handler () from /usr/lib/libstdc++.so.6 #7 0xb7d00f15 in std::set_unexpected () from /usr/lib/libstdc++.so.6 #8 0xb7d00f52 in std::terminate () from /usr/lib/libstdc++.so.6 #9 0xb7d00f75 in std::terminate () from /usr/lib/libstdc++.so.6 #10 0xb7d00a08 in __cxa_call_unexpected () from /usr/lib/libstdc++.so.6 #11 0xb7d014eb in operator new () from /usr/lib/libstdc++.so.6 #12 0xb7dc3b58 in GPBufferBase (this=0xbfa8995c, xptr=@0xbfa89964, n=268435456, t=2) at GSmartPointer.cpp:203 #13 0xb7df6629 in GPBuffer (this=0xbfa8995c, xptr=@0xbfa89964, n=268435456) at GSmartPointer.h:480 #14 0xb7df9cd0 in IW44Image::Map::Encode::create (this=0x8057428, img8=0x17a99008 '\200' <repeats 200 times>..., imgrowsize=16384, msk8=0x0, mskrowsize=0) at IW44EncodeCodec.cpp:931 #15 0xb7dfa22a in IWPixmap::Encode::init (this=0x80578f8, pm=@0x80578d8, gmask=@0xbfa89a78, crcbmode=IWPixmap::Encode::CRCBnormal) at IW44EncodeCodec.cpp:1624 #16 0xb7dfa4fa in IW44Image::create_encode (pm=@0x80578d8, gmask=@0xbfa89b90, crcbmode=IW44Image::CRCBnormal) at IW44EncodeCodec.cpp:1565 ---Type <return> to continue, or q <return> to quit--- #17 0x0804e251 in __gxx_personality_v0 () #18 0xb7aedf9c in __libc_start_main () from /lib/libc.so.6 #19 0x0804add1 in __gxx_personality_v0 () (gdb) quit The program is running. Exit anyway? (y or n) y -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.
https://bugzilla.novell.com/show_bug.cgi?id=279329 User lmichnovic@novell.com added comment https://bugzilla.novell.com/show_bug.cgi?id=279329#c12 Ladislav Michnovič <lmichnovic@novell.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|ASSIGNED |RESOLVED Resolution| |WONTFIX --- Comment #12 from Ladislav Michnovič <lmichnovic@novell.com> 2007-12-11 08:15:37 MST --- My opinion is that this is caused not because of bug but limitations of system sources. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=279329 User robin.listas@telefonica.net added comment https://bugzilla.novell.com/show_bug.cgi?id=279329#c13 --- Comment #13 from Carlos Robinson <robin.listas@telefonica.net> 2008-01-03 15:18:34 MST --- (In reply to comment #12 from Ladislav Michnovic)
My opinion is that this is caused not because of bug but limitations of system sources.
Please, could you clarify? You mean limitation of source code? Which one, c44, libc, kernel? Or limitation of my hardware? Just for the record, it also fails in opensuse 10.3 (djvulibre-3.5.19-2). -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
https://bugzilla.novell.com/show_bug.cgi?id=279329 User lmichnovic@novell.com added comment https://bugzilla.novell.com/show_bug.cgi?id=279329#c14 --- Comment #14 from Ladislav Michnovič <lmichnovic@novell.com> 2008-01-04 03:01:26 MST --- It's IMO limitation of hardware. Try 64bit version. -- Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
participants (1)
-
bugzilla_noreply@novell.com