I use the Blocklist plugin to import (GZMuleReader) a blocklist file stored locally. The file is ipfilter.dat.gz, downloaded from http://www.bluetack.co.uk/.
Deluge, upon startup, imports this data from the file. Intermittently, it goes through importing the whole list (currently around 200,000 entries) and then crashes. Sometimes it works perfectly though, importing the whole list and everything's good.
Now, if I click on the 'Cancel' button during the import process - sometimes, again, it still crashes, but more usually it stops the import process and is ready to go. If I then go to the 'Edit' -> 'Plugins' dialog, select 'BlockList Importer', click 'Preferences' and select 'OK' - thus getting it to import the list - most of the time this process seems to work without crashing, resulting in me having the full blocklist.
If I disable the BlockList plugin altogether, deluge starts up perfectly every time.
My system is running Gentoo x64, with kernel 'Linux myhost 2.6.24-hardened-r1 #1 SMP Fri May 2 16:47:35 MDT 2008 x86_64 Intel(R) Core(TM)2 CPU 6700 @ 2.66GHz GenuineIntel GNU/Linux'. I have 2GB of memory, which checks out as good. I am running the 'hardened' kernel image - which means, essentially, it's running with GRSecurity and PaX. However, I've tried running deluge with a non-hardened kernel image as well, with similar results to this bug report. I use python 2.5.2. I use the standard deluge Gentoo package, compiled with libnotify support. I'm using glibc 2.7.
Below is what is seen from the command-line when it starts up, loads in the blocklist file, imports it all and then crashes.
$ deluge
no existing Deluge session
Starting new Deluge session...
deluge_core; using libtorrent 0.13.0.0. Compiled with NDEBUG.
Applying preferences
save uploaded memory
Pickling state...
Scanning plugin dir /usr/share/deluge/plugins
Initialising plugin TorrentFiles
Initialising plugin TorrentNotification
Initialising plugin WebUi
Initialising plugin Scheduler
Initialising plugin WebSeed
Initialising plugin Search
Initialising plugin EventLogging
Initialising plugin TorrentCreator
Initialising plugin FlexRSS
Initialising plugin BlocklistImport
Initialising plugin NetworkHealth
Initialising plugin SpeedLimiter
Initialising plugin DesiredRatio
Initialising plugin TorrentPeers
Initialising plugin NetworkGraph
Initialising plugin MoveTorrent
Applying preferences
Starting DHT...
Showing window
Found NetworkHealth plugin...
Found TorrentFiles plugin...
Found NetworkGraph plugin...
Found TorrentPeers plugin...
Found blocklist plugin ...
New Blocklist required...
Fetching <DIR>/ipfilter.dat.gz
importing with gzmule
GZMuleReader loading $HOME/.config/deluge/blocklist.cache
MuleReader loading
TextBase loading
Starting import
Import finished
* glibc detected * /usr/bin/python: malloc(): memory corruption: 0x00000000035eda90 *
======= Backtrace: =========
/lib/libc.so.6[0x2d75617cfb9d]
/lib/libc.so.6[0x2d75617d1e36]
/lib/libc.so.6(libc_malloc+0x90)[0x2d75617d34a0]
/usr/lib/libglib-2.0.so.0(g_malloc+0x1c)[0x2d75637319f7]
/usr/lib/libglib-2.0.so.0[0x2d756372d347]
/usr/lib/libglib-2.0.so.0(g_main_loop_run+0x192)[0x2d756372d91b]
/usr/lib/libgtk-x11-2.0.so.0(gtk_main+0xa3)[0x2d7563f74b09]
/usr/lib64/python2.5/site-packages/gtk-2.0/gtk/_gtk.so[0x2d7563b42e00]
/usr/lib/libpython2.5.so.1.0(PyEval_EvalFrameEx+0x4c65)[0x2d7560c16db6]
/usr/lib/libpython2.5.so.1.0(PyEval_EvalCodeEx+0x829)[0x2d7560c1790b]
/usr/lib/libpython2.5.so.1.0(PyEval_EvalFrameEx+0x3674)[0x2d7560c157c5]
/usr/lib/libpython2.5.so.1.0(PyEval_EvalFrameEx+0x49ed)[0x2d7560c16b3e]
/usr/lib/libpython2.5.so.1.0(PyEval_EvalCodeEx+0x829)[0x2d7560c1790b]
/usr/lib/libpython2.5.so.1.0(PyEval_EvalCode+0x32)[0x2d7560c179bd]
/usr/lib/libpython2.5.so.1.0[0x2d7560c2f4f1]
/usr/lib/libpython2.5.so.1.0(PyRun_FileExFlags+0x7a)[0x2d7560c2f5a1]
/usr/lib/libpython2.5.so.1.0(PyRun_SimpleFileExFlags+0x195)[0x2d7560c308de]
/usr/lib/libpython2.5.so.1.0(Py_Main+0x9f8)[0x2d7560c38d70]
/lib/libc.so.6(libc_start_main+0xf4)[0x2d756177e1f4]
/usr/bin/python[0x4006e9]
======= Memory map: ========
00400000-00401000 r-xp 00000000 08:13 917284 /usr/bin/python2.5
00600000-00601000 r--p 00000000 08:13 917284 /usr/bin/python2.5
00601000-00602000 rw-p 00001000 08:13 917284 /usr/bin/python2.5
00602000-035f2000 rw-p 00602000 00:00 0 [heap]
40002000-40004000 rw-p 00000000 00:0d 1146 /dev/zero
40004000-40005000 ---p 40004000 00:00 0
40005000-40805000 rw-p 40005000 00:00 0
40805000-40806000 ---p 40805000 00:00 0
40806000-41006000 rw-p 40806000 00:00 0
41006000-41007000 ---p 41006000 00:00 0
41007000-41807000 rw-p 41007000 00:00 0
41807000-41808000 ---p 41807000 00:00 0
41808000-42008000 rw-p 41808000 00:00 0
2d756092f000-2d756094a000 r-xp 00000000 08:13 897494 /lib64/ld-2.7.so
2d756094a000-2d75609cf000 rw-p 2d756094a000 00:00 0
2d75609d0000-2d75609d7000 r--s 00000000 08:13 1352254 /usr/lib64/gconv/gconv-modules.cache
2d75609d7000-2d7560a08000 r--s 00000000 08:13 429313 /var/cache/fontconfig/df311e82a1a24c41a75c2c930223552e-x86-64.cache-2
2d7560a08000-2d7560a39000 r--s 00000000 08:13 429314 /var/cache/fontconfig/17090aa38d5c6f09fb8c5c354938f1d7-x86-64.cache-2
2d7560a39000-2d7560a3d000 r--s 00000000 08:13 429315 /var/cache/fontconfig/d62e99ef547d1d24cdb1bd22ec1a2976-x86-64.cache-2
2d7560a3d000-2d7560a56000 r--s 00000000 08:13 429316 /var/cache/fontconfig/4b5cf4386f1cde02a336ba961b4ac82d-x86-64.cache-2
2d7560a56000-2d7560a69000 r--s 00000000 08:13 429320 /var/cache/fontconfig/8d4af663993b81a124ee82e610bb31f9-x86-64.cache-2
2d7560a69000-2d7560a6c000 r--s 00000000 08:13 429309 /var/cache/fontconfig/76fa4b957c916922374347f144bde9da-x86-64.cache-2
2d7560a6c000-2d7560a74000 r--s 00000000 08:13 429317 /var/cache/fontconfig/87f5e051180a7a75f16eb6fe7dbd3749-x86-64.cache-2
2d7560b49000-2d7560b4a000 r--p 0001a000 08:13 897494 /lib64/ld-2.7.so
2d7560b4a000-2d7560b4b000 rw-p 0001b000 08:13 897494 /lib64/ld-2.7.so
2d7560b4b000-2d7560b4c000 rw-p 2d7560b4b000 00:00 0
2d7560b6d000-2d7560b6e000 rw-p 2d7560b6d000 00:00 0
2d7560b6e000-2d7560c82000 r-xp 00000000 08:13 917281 /usr/lib64/libpython2.5.so.1.0
2d7560c82000-2d7560e82000 ---p 00114000 08:13 917281 /usr/lib64/libpython2.5.so.1.0
2d7560e82000-2d7560e83000 r--p 00114000 08:13 917281 /usr/lib64/libpython2.5.so.1.0
2d7560e83000-2d7560eb6000 rw-p 00115000 08:13 917281 /usr/lib64/libpython2.5.so.1.0
2d7560eb6000-2d7560ebe000 rw-p 2d7560eb6000 00:00 0
2d7560ebe000-2d7560ed4000 r-xp 00000000 08:13 897014 /lib64/libpthread-2.7.so
2d7560ed4000-2d75610d3000 ---p 00016000 08:13 897014 /lib64/libpthread-2.7.so
2d75610d3000-2d75610d4000 r--p 00015000 08:13 897014 /lib64/libpthread-2.7.so
2d75610d4000-2d75610d5000 rw-p 00016000 08:13 897014 /lib64/libpthread-2.7.so
2d75610d5000-2d75610d9000 rw-p 2d75610d5000 00:00 0
2d75610d9000-2d75610db000 r-xp 00000000 08:13 897509 /lib64/libdl-2.7.so
2d75610db000-2d75612db000 ---p 00002000 08:13 897509 /lib64/libdl-2.7.so
2d75612db000-2d75612dc000 r--p 00002000 08:13 897509 /lib64/libdl-2.7.so
2d75612dc000-2d75612dd000 rw-p 00003000 08:13 897509 /lib64/libdl-2.7.so
2d75612dd000-2d75612de000 rw-p 2d75612dd000 00:00 0
2d75612de000-2d75612e0000 r-xp 00000000 08:13 897525 /lib64/libutil-2.7.so
2d75612e0000-2d75614df000 ---p 00002000 08:13 897525 /lib64/libutil-2.7.so
2d75614df000-2d75614e0000 r--p 00001000 08:13 897525 /lib64/libutil-2.7.so
2d75614e0000-2d75614e1000 rw-p 00002000 08:13 897525 /lib64/libutil-2.7.so
2d75614e1000-2d756155f000 r-xp 00000000 08:13 897046 /lib64/libm-2.7.so
2d756155f000-2d756175e000 ---p 0007e000 08:13 897046 /lib64/libm-2.7.so
2d756175e000-2d756175f000 r--p 0007d000 08:13 897046 /lib64/libm-2.7.so
2d756175f000-2d7561760000 rw-p 0007e000 08:13 897046 /lib64/libm-2.7.so
2d7561760000-2d756189e000 r-xp 00000000 08:13 896644 /lib64/libc-2.7.so
2d756189e000-2d7561a9e000 ---p 0013e000 08:13 896644 /lib64/libc-2.7.so
2d7561a9e000-2d7561aa2000 r--p 0013e000 08:13 896644 /lib64/libc-2.7.so
2d7561aa2000-2d7561aa3000 rw-p 00142000 08:13 896644 /lib64/libc-2.7.so
2d7561aa3000-2d7561b2c000 rw-p 2d7561aa3000 00:00 0
2d7561b5e000-2d7561b9f000 rw-p 2d7561b5e000 00:00 0
2d7561b9f000-2d7561ba4000 r-xp 00000000 08:13 961480 /usr/lib64/python2.5/lib-dynload/strop.so
2d7561ba4000-2d7561da3000 ---p 00005000 08:13 961480 /usr/lib64/python2.5/lib-dynload/strop.so
2d7561da3000-2d7561da4000 r--p 00004000 08:13 961480 /usr/lib64/python2.5/lib-dynload/strop.so
2d7561da4000-2d7561da6000 rw-p 00005000 08:13 961480 /usr/lib64/python2.5/lib-dynload/strop.so
2d7561da7000-2d7561de8000 rw-p 2d7561da7000 00:00 0
2d7561de8000-2d7561dec000 r-xp 00000000 08:13 961400 /usr/lib64/python2.5/lib-dynload/_locale.so
2d7561dec000-2d7561feb000 ---p 00004000 08:13 961400 /usr/lib64/python2.5/lib-dynload/_locale.so
2d7561feb000-2d7561fec000 r--p 00003000 08:13 961400 /usr/lib64/python2.5/lib-dynload/_locale.so
2d7561fec000-2d7561fed000 rw-p 00004000 08:13 961400 /usr/lib64/python2.5/lib-dynload/_locale.so
2d7561fed000-2d7561ff4000 r-xp 00000000 08:13 961443 /usr/lib64/python2.5/lib-dynload/operator.so
2d7561ff4000-2d75621f3000 ---p 00007000 08:13 961443 /usr/lib64/python2.5/lib-dynload/operator.so
2d75621f3000-2d75621f4000 r--p 00006000 08:13 961443 /usr/lib64/python2.5/lib-dynload/operator.so
2d75621f4000-2d75621f6000 rw-p 00007000 08:13 961443 /usr/lib64/python2.5/lib-dynload/operator.so
2d75621f6000-2d75621fc000 r-xp 00000000 08:13 961506 /usr/lib64/python2.5/lib-dynload/_struct.so
2d75621fc000-2d75623fb000 ---p 00006000 08:13 961506 /usr/lib64/python2.5/lib-dynload/_struct.so
2d75623fb000-2d75623fc000 r--p 00005000 08:13 961506 /usr/lib64/python2.5/lib-dynload/_struct.so
2d75623fc000-2d75623fe000 rw-p 00006000 08:13 961506 /usr/lib64/python2.5/lib-dynload/_struct.so
2d75623fe000-2d7562401000 r-xp 00000000 08:13 961271 /usr/lib64/python2.5/lib-dynload/time.so
2d7562401000-2d7562601000 ---p 00003000 08:13 961271 /usr/lib64/python2.5/lib-dynload/time.so
2d7562601000-2d7562602000 r--p 00003000 08:13 961271 /usr/lib64/python2.5/lib-dynload/timeAborted
Following is what is seen from the command-line when I interrupt the import process (by clicking 'Cancel') and then manually import the list using the technique mentioned earlier. This did not crash. I then shutdown the app. by selecting 'File' -> 'Quit'. All looks in good order from the trace below.
$ deluge
no existing Deluge session
Starting new Deluge session...
deluge_core; using libtorrent 0.13.0.0. Compiled with NDEBUG.
Applying preferences
save uploaded memory
Pickling state...
Scanning plugin dir /usr/share/deluge/plugins
Initialising plugin TorrentFiles
Initialising plugin TorrentNotification
Initialising plugin WebUi
Initialising plugin Scheduler
Initialising plugin WebSeed
Initialising plugin Search
Initialising plugin EventLogging
Initialising plugin TorrentCreator
Initialising plugin FlexRSS
Initialising plugin BlocklistImport
Initialising plugin NetworkHealth
Initialising plugin SpeedLimiter
Initialising plugin DesiredRatio
Initialising plugin TorrentPeers
Initialising plugin NetworkGraph
Initialising plugin MoveTorrent
Applying preferences
Starting DHT...
Showing window
Found TorrentPeers plugin...
Found TorrentFiles plugin...
Found NetworkGraph plugin...
Found NetworkHealth plugin...
Found blocklist plugin ...
New Blocklist required...
Fetching <DIR>/ipfilter.dat.gz
importing with gzmule
GZMuleReader loading $HOME/.config/deluge/blocklist.cache
MuleReader loading
TextBase loading
Starting import
Cancelling
Import finished
New Blocklist required...
Fetching <DIR>/ipfilter.dat.gz
importing with gzmule
GZMuleReader loading $HOME/.config/deluge/blocklist.cache
MuleReader loading
TextBase loading
Starting import
Import finished
Applying preferences
save uploaded memory
Pickling state...
Stopping DHT...
Saving fastresume data...
Quitting the core...
core: removing torrents...
core: removing settings...
core: shutting down session...
core shut down.
I suppose I'm filing this as a bug because it is inconsistent. If it were always failing then I'd be thinking it was my system setup that was at fault. But this is not the case. Sometimes it works first time importing from startup. Othertimes I need to cancel and manually perform the import step for it to work. Other times it just won't work at all, for several startups ... then, seemingly magically, I'll try again and it works fine.
|