Package: nicotine Version: 1.2.5.1-1 Severity: normal
Hi, I had many problems with nicotine (crashes, all network connections being "stuck" etc.) recently, but the worst is that sometimes after a crash the configuration (containing all pending download) is simply deleted. This sometimes happens after just 10-20 minutes, sometimes nicotine runs for days. Starting nicotine from a shell instead of the menu I found that it often complains about "Too many open files", and that it can not save the config. file. It seems that nicotine first deletes the old config file, and then tries to write a new one. But if writing the new config does not succeed, the old version is not recovered. During normal operation nicotine seems to use 2-300 file descriptors. Right now I have a stuck nicotine instance that has all 1024 descriptors that select() can handle open, 801 of them being a TCP connection in the CLOSE_WAIT state - i.e. they're already dead. "Stuck" right now means: - the UI still runs - no network traffic - the config file is missing (luckily I now have a copy of config.old that's about 20 minutes old) - "Disconnect" did nothing but disable the "Disconnect" entry in the menu (the downloads did not disappear from the "Downloads" tab, all network connections remained open, and "Connect" remains disabled in the menu) - even "Rescan shares" complains about "Too many open files" So, - there appears to be a serious file descriptor leak; maybe nicotine defers the closing of dead connections for far too long? - writing the config file is unsafe wrt. I/O errors - slskproty.py should be using poll instead of select (unfortunately I don't know much about Python so I can't offer to create a patch), so it could handle file handles > 1024 - if "Disconnect" would work (i.e. it would _really_ close all network connections), then nicotine would probably able to recover Gabor -- System Information: Debian Release: testing/unstable APT prefers unstable APT policy: (990, 'unstable'), (500, 'testing'), (500, 'stable'), (101, 'experimental') Architecture: i386 (i686) Shell: /bin/sh linked to /bin/dash Kernel: Linux 2.6.18 Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Versions of packages nicotine depends on: ii python 2.4.3-11 An interactive high-level object-o ii python-gtk2 2.8.6-6 Python bindings for the GTK+ widge ii python-support 0.5.2 automated rebuilding support for p Versions of packages nicotine recommends: ii python-geoip 1.2.1-2 python bindings for the GeoIP IP-t ii python-pyvorbis 1.3-1.2 A Python interface to the Ogg Vorb -- no debconf information -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]