Package: preload
Version: 0.4-3
Severity: critical
Justification: breaks unrelated software

Preload doesn't close /var/lib/preload/preload.state after unlinking. In
result it eats more and more space on hard disk, breaking some things
when the space ends.

Output from lsof -p `pgrep preload` and df before
/etc/init.d/preload restart:
#v+
COMMAND   PID USER   FD   TYPE DEVICE    SIZE    NODE NAME
preload 21793 root  cwd    DIR    3,5    4096       2 /
preload 21793 root  rtd    DIR    3,5    4096       2 /
preload 21793 root  txt    REG    3,5   35040 1360835 /usr/sbin/preload
preload 21793 root  mem    REG    0,0               0 [heap] (stat: No such 
file or directory)
preload 21793 root  mem    REG    3,5   89370 2425629 
/lib/tls/i686/cmov/libpthread-2.3.6.so
preload 21793 root  mem    REG    3,5   30612 2425631 
/lib/tls/i686/cmov/librt-2.3.6.so
preload 21793 root  mem    REG    3,5 1241392 2425615 
/lib/tls/i686/cmov/libc-2.3.6.so
preload 21793 root  mem    REG    3,5  596608 2441294 
/usr/lib/libglib-2.0.so.0.1200.6
preload 21793 root  mem    REG    3,5  145136 2425619 
/lib/tls/i686/cmov/libm-2.3.6.so
preload 21793 root  mem    REG    3,5   88164 2359955 /lib/ld-2.3.6.so
preload 21793 root    0r   CHR    1,3            1075 /dev/null
preload 21793 root    1w   REG    3,5  339626  344107 /var/log/preload.log
preload 21793 root    2w   REG    3,5  339626  344107 /var/log/preload.log
preload 21793 root    3w   REG    3,5 5098548  360792 
/var/lib/preload/preload.state
preload 21793 root    4w   REG    3,5 5098513  360450 
/var/lib/preload/preload.state
preload 21793 root    5w   REG    3,5 5098391  360461 
/var/lib/preload/preload.state
preload 21793 root    6w   REG    3,5 5099176  360465 
/var/lib/preload/preload.state
preload 21793 root    7w   REG    3,5 5099229  360466 
/var/lib/preload/preload.state
preload 21793 root    8w   REG    3,5 5099102  360469 
/var/lib/preload/preload.state
preload 21793 root    9w   REG    3,5 5099149  360471 
/var/lib/preload/preload.state
preload 21793 root   10w   REG    3,5 5099133  360477 
/var/lib/preload/preload.state
preload 21793 root   11w   REG    3,5 5099112  360478 
/var/lib/preload/preload.state
preload 21793 root   12w   REG    3,5 5099119  360482 
/var/lib/preload/preload.state
preload 21793 root   13w   REG    3,5 5099679  360490 
/var/lib/preload/preload.state
preload 21793 root   14w   REG    3,5 5099759  360492 
/var/lib/preload/preload.state
preload 21793 root   15w   REG    3,5 5099726  360493 
/var/lib/preload/preload.state
preload 21793 root   16w   REG    3,5 5100158  360495 
/var/lib/preload/preload.state
preload 21793 root   17w   REG    3,5 5100031  360505 
/var/lib/preload/preload.state
preload 21793 root   18w   REG    3,5 5100059  360508 
/var/lib/preload/preload.state
preload 21793 root   19w   REG    3,5 5100148  360534 
/var/lib/preload/preload.state
preload 21793 root   20w   REG    3,5 5100237  360586 
/var/lib/preload/preload.state
#v-

/var/lib/preload/preload.state is opened several times (with different
inode numbers).

df /var/lib/preload :
#v+
System plików      bl.  1K B        użyte dostępne %uż. zamont. na
/dev/hda5             20635700  16121512   3465952  83% /
#v-

After restart:

#v+
COMMAND   PID USER   FD   TYPE DEVICE    SIZE    NODE NAME
preload 32643 root  cwd    DIR    3,5    4096       2 /
preload 32643 root  rtd    DIR    3,5    4096       2 /
preload 32643 root  txt    REG    3,5   35040 1360835 /usr/sbin/preload
preload 32643 root  mem    REG    0,0               0 [heap] (stat: No such 
file or directory)
preload 32643 root  mem    REG    3,5   89370 2425629 
/lib/tls/i686/cmov/libpthread-2.3.6.so
preload 32643 root  mem    REG    3,5   30612 2425631 
/lib/tls/i686/cmov/librt-2.3.6.so
preload 32643 root  mem    REG    3,5 1241392 2425615 
/lib/tls/i686/cmov/libc-2.3.6.so
preload 32643 root  mem    REG    3,5  596608 2441294 
/usr/lib/libglib-2.0.so.0.1200.6
preload 32643 root  mem    REG    3,5  145136 2425619 
/lib/tls/i686/cmov/libm-2.3.6.so
preload 32643 root  mem    REG    3,5   88164 2359955 /lib/ld-2.3.6.so
preload 32643 root    0r   CHR    1,3            1075 /dev/null
preload 32643 root    1w   REG    3,5  341079  344107 /var/log/preload.log
preload 32643 root    2w   REG    3,5  341079  344107 /var/log/preload.log
#v-
and
#v+
System plików      bl.  1K B        użyte dostępne %uż. zamont. na
/dev/hda5             20635700  16041244   3546220  82% /
#v-

The problem sits in line 1070 of preload-0.4/src/state.c
(near g_unlink (tmpfile); ), where some kind of close() (g_close()?
I don't know glib) is missing.


-- System Information:
Debian Release: 4.0
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.16-ck11
Locale: LANG=pl_PL, LC_CTYPE=pl_PL (charmap=ISO-8859-2) (ignored: LC_ALL set to 
pl_PL)

Versions of packages preload depends on:
ii  libc6                       2.3.6.ds1-13 GNU C Library: Shared libraries
ii  libglib2.0-0                2.12.6-2     The GLib library of C routines

preload recommends no packages.

-- no debconf information

-- 
    Linux jest darmowy, jeśli twój czas nie przedstawia żadnej wartości.
    Jeśli jest coś warty(czas), Linux jest po prostu tańszy od innych.
        Jarek Kamiński
        gg# 453620

Attachment: pgp029Zcp342i.pgp
Description: PGP signature

Reply via email to