Package: djvulibre-bin
Version: 3.5.28-2

It seems ddjvu can hang forever in some out-of-memory situations.
For example, setting the virtual memory limit to 32 MiB makes it hang:

  $ ulimit -Sv 32000
  $ ddjvu /usr/share/doc/libdjvulibre-dev/djvu3spec.djvu > /dev/null

Backtrace:

#0  0xf7f91559 in __kernel_vsyscall ()
#1  0xf7b0f6e2 in __libc_do_syscall () at 
../sysdeps/unix/sysv/linux/i386/libc-do-syscall.S:39
#2  0xf7a80491 in __futex_abstimed_wait_common32 (private=<optimized out>, cancel=<optimized out>, 
abstime=<optimized out>, op=<optimized out>, expected=<optimized out>, futex_word=<optimized 
out>) at ./nptl/futex-internal.c:40
#3  __futex_abstimed_wait_common (futex_word=0x56b5f108, expected=0, 
clockid=<optimized out>, abstime=0x0, private=0, cancel=true) at 
./nptl/futex-internal.c:99
#4  0xf7a8060b in __GI___futex_abstimed_wait_cancelable64 (futex_word=<optimized out>, 
expected=<optimized out>, clockid=<optimized out>, abstime=0x0, private=0) at 
./nptl/futex-internal.c:139
#5  0xf7a83627 in __pthread_cond_wait_common (abstime=<optimized out>, clockid=<optimized 
out>, mutex=<optimized out>, cond=<optimized out>) at ./nptl/pthread_cond_wait.c:504
#6  ___pthread_cond_wait (cond=cond@entry=0x56b5f0dc, 
mutex=mutex@entry=0x56b5f0c4) at ./nptl/pthread_cond_wait.c:619
#7  0xf7ec653d in DJVU::GMonitor::wait (this=this@entry=0x56b5f0b8) at 
GThreads.cpp:578
#8  0xf7f03eaa in ddjvu_message_wait (ctx=0x56b5f0b0) at ddjvuapi.cpp:733
#9  0x565c8963 in handle (wait=1) at ddjvu.cpp:164
#10 dopage (pageno=1) at ddjvu.cpp:739
#11 0x565c8d36 in parse_pagespec (s=0x565d8e12 "1", max_page=71, 
dopage=dopage@entry=0x565c8890 <dopage(int)>) at ddjvu.cpp:828
#12 0x565c68c4 in main (argc=2, argv=0xffa3e9e4) at ddjvu.cpp:1217


-- System Information:
Architecture: i386

Versions of packages djvulibre-bin depends on:
ii  libc6           2.34-4
ii  libdjvulibre21  3.5.28-2
ii  libgcc-s1       12.1.0-8
ii  libstdc++6      12.1.0-8
ii  libtiff5        4.4.0-4
ii  curl            7.84.0-2

--
Jakub Wilk

Reply via email to