reopen 423141 thanks Hi, the bug recurred again today, and I finally discovered the cause. It is because I have Opera currently viewing a page that contains a ® entity in its <title> attribute. When I switch to this tab, Opera uses it as its window title, and then C-t w causes ratpoison to exit with status 134. I managed to capture the error message as well: "Virtual memory exhausted". If I switch to another tab whose title doesn't contain this character, C-t w works fine.
Perhaps this is a UTF-8 issue that hasn't been fully resolved? I'm not sure what other characters may cause this problem, but I can consistently crash ratpoison this way. Anyway, if you want to reproduce this bug, you can create a simple HTML file and open it in Opera, then hit C-t w. Something like this: <html><head><title>Crash page®</title></head><body></body></html> I'm running in a UTF-8 locale, if that makes a difference. Also, my .ratpoisonrc looks like: set winfmt %n%s%80t set wingravity center set font -misc-fixed-medium-r-normal-*-18-*-*-*-*-*-iso10646-1 I suspect it may be a combination of UTF-8 locale, font, and special character in window title, that triggers this bug in ratpoison. The font referenced in above is from the xfonts-efont-unicode (or xfonts-efont-unicode-ib) package. I also attached valgrind to ratpoison, and here is the output: ==24073== Memcheck, a memory error detector. ==24073== Copyright (C) 2002-2007, and GNU GPL'd, by Julian Seward et al. ==24073== Using LibVEX rev 1732, a library for dynamic binary translation. ==24073== Copyright (C) 2004-2007, and GNU GPL'd, by OpenWorks LLP. ==24073== Using valgrind-3.2.3-Debian, a dynamic binary instrumentation framework. ==24073== Copyright (C) 2000-2007, and GNU GPL'd, by Julian Seward et al. ==24073== For more details, rerun with: -v ==24073== ==24073== Source and destination overlap in mempcpy(0x42EC678, 0x42EC678, 25) ==24073== at 0x4023B24: mempcpy (mc_replace_strmem.c:116) ==24073== by 0x41A06F4: _IO_default_xsputn (in /lib/libc-2.5.so) ==24073== by 0x417C202: vfprintf (in /lib/libc-2.5.so) ==24073== by 0x4195C1B: vsprintf (in /lib/libc-2.5.so) ==24073== by 0x4181F2D: sprintf (in /lib/libc-2.5.so) ==24073== by 0x40BF9A0: (within /usr/lib/libX11.so.6.2.0) ==24073== by 0x40BFAC5: (within /usr/lib/libX11.so.6.2.0) ==24073== by 0x40C0424: (within /usr/lib/libX11.so.6.2.0) ==24073== by 0x40722B6: XCreateOC (in /usr/lib/libX11.so.6.2.0) ==24073== by 0x40667B6: XCreateFontSet (in /usr/lib/libX11.so.6.2.0) ==24073== by 0x805BFCD: (within /usr/bin/ratpoison) ==24073== by 0x805CEDB: (within /usr/bin/ratpoison) ==24073== ==24073== Invalid read of size 4 ==24073== at 0x4016530: (within /lib/ld-2.5.so) ==24073== by 0x4006009: (within /lib/ld-2.5.so) ==24073== by 0x40084F5: (within /lib/ld-2.5.so) ==24073== by 0x40121D4: (within /lib/ld-2.5.so) ==24073== by 0x400E255: (within /lib/ld-2.5.so) ==24073== by 0x4011C5D: (within /lib/ld-2.5.so) ==24073== by 0x4288C2C: (within /lib/libdl-2.5.so) ==24073== by 0x400E255: (within /lib/ld-2.5.so) ==24073== by 0x428929B: (within /lib/libdl-2.5.so) ==24073== by 0x4288B60: dlopen (in /lib/libdl-2.5.so) ==24073== by 0x4061448: (within /usr/lib/libX11.so.6.2.0) ==24073== by 0x406190F: XCreateGlyphCursor (in /usr/lib/libX11.so.6.2.0) ==24073== Address 0x42EDAD8 is 24 bytes inside a block of size 25 alloc'd ==24073== at 0x40224B0: malloc (vg_replace_malloc.c:149) ==24073== by 0x4008AF3: (within /lib/ld-2.5.so) ==24073== by 0x40121D4: (within /lib/ld-2.5.so) ==24073== by 0x400E255: (within /lib/ld-2.5.so) ==24073== by 0x4011C5D: (within /lib/ld-2.5.so) ==24073== by 0x4288C2C: (within /lib/libdl-2.5.so) ==24073== by 0x400E255: (within /lib/ld-2.5.so) ==24073== by 0x428929B: (within /lib/libdl-2.5.so) ==24073== by 0x4288B60: dlopen (in /lib/libdl-2.5.so) ==24073== by 0x4061448: (within /usr/lib/libX11.so.6.2.0) ==24073== by 0x406190F: XCreateGlyphCursor (in /usr/lib/libX11.so.6.2.0) ==24073== by 0x4061CAC: XCreateFontCursor (in /usr/lib/libX11.so.6.2.0) ==24073== ==24073== Invalid read of size 4 ==24073== at 0x4016530: (within /lib/ld-2.5.so) ==24073== by 0x4006009: (within /lib/ld-2.5.so) ==24073== by 0x40084F5: (within /lib/ld-2.5.so) ==24073== by 0x400C616: (within /lib/ld-2.5.so) ==24073== by 0x400E255: (within /lib/ld-2.5.so) ==24073== by 0x400CBDA: (within /lib/ld-2.5.so) ==24073== by 0x4012234: (within /lib/ld-2.5.so) ==24073== by 0x400E255: (within /lib/ld-2.5.so) ==24073== by 0x4011C5D: (within /lib/ld-2.5.so) ==24073== by 0x4288C2C: (within /lib/libdl-2.5.so) ==24073== by 0x400E255: (within /lib/ld-2.5.so) ==24073== by 0x428929B: (within /lib/libdl-2.5.so) ==24073== Address 0x42EDE10 is 24 bytes inside a block of size 25 alloc'd ==24073== at 0x40224B0: malloc (vg_replace_malloc.c:149) ==24073== by 0x4008AF3: (within /lib/ld-2.5.so) ==24073== by 0x400C616: (within /lib/ld-2.5.so) ==24073== by 0x400E255: (within /lib/ld-2.5.so) ==24073== by 0x400CBDA: (within /lib/ld-2.5.so) ==24073== by 0x4012234: (within /lib/ld-2.5.so) ==24073== by 0x400E255: (within /lib/ld-2.5.so) ==24073== by 0x4011C5D: (within /lib/ld-2.5.so) ==24073== by 0x4288C2C: (within /lib/libdl-2.5.so) ==24073== by 0x400E255: (within /lib/ld-2.5.so) ==24073== by 0x428929B: (within /lib/libdl-2.5.so) ==24073== by 0x4288B60: dlopen (in /lib/libdl-2.5.so) ==24073== ==24073== Conditional jump or move depends on uninitialised value(s) ==24073== at 0x400B3CC: (within /lib/ld-2.5.so) ==24073== by 0x401230B: (within /lib/ld-2.5.so) ==24073== by 0x400E255: (within /lib/ld-2.5.so) ==24073== by 0x4011C5D: (within /lib/ld-2.5.so) ==24073== by 0x4288C2C: (within /lib/libdl-2.5.so) ==24073== by 0x400E255: (within /lib/ld-2.5.so) ==24073== by 0x428929B: (within /lib/libdl-2.5.so) ==24073== by 0x4288B60: dlopen (in /lib/libdl-2.5.so) ==24073== by 0x4061448: (within /usr/lib/libX11.so.6.2.0) ==24073== by 0x406190F: XCreateGlyphCursor (in /usr/lib/libX11.so.6.2.0) ==24073== by 0x4061CAC: XCreateFontCursor (in /usr/lib/libX11.so.6.2.0) ==24073== by 0x805F232: (within /usr/bin/ratpoison) ==24073== ==24073== Conditional jump or move depends on uninitialised value(s) ==24073== at 0x400B0CA: (within /lib/ld-2.5.so) ==24073== by 0x401230B: (within /lib/ld-2.5.so) ==24073== by 0x400E255: (within /lib/ld-2.5.so) ==24073== by 0x4011C5D: (within /lib/ld-2.5.so) ==24073== by 0x4288C2C: (within /lib/libdl-2.5.so) ==24073== by 0x400E255: (within /lib/ld-2.5.so) ==24073== by 0x428929B: (within /lib/libdl-2.5.so) ==24073== by 0x4288B60: dlopen (in /lib/libdl-2.5.so) ==24073== by 0x4061448: (within /usr/lib/libX11.so.6.2.0) ==24073== by 0x406190F: XCreateGlyphCursor (in /usr/lib/libX11.so.6.2.0) ==24073== by 0x4061CAC: XCreateFontCursor (in /usr/lib/libX11.so.6.2.0) ==24073== by 0x805F232: (within /usr/bin/ratpoison) ratpoison: Virtual memory exhausted==24073== ==24073== ERROR SUMMARY: 35 errors from 5 contexts (suppressed: 31 from 1) ==24073== malloc/free: in use at exit: 100,738,676 bytes in 1,266 blocks. ==24073== malloc/free: 2,421 allocs, 1,155 frees, 402,784,955 bytes allocated. ==24073== For counts of detected errors, rerun with: -v ==24073== searching for pointers to 1,266 not-freed blocks. ==24073== checked 229,156 bytes. ==24073== ==24073== LEAK SUMMARY: ==24073== definitely lost: 20 bytes in 1 blocks. ==24073== possibly lost: 4,316 bytes in 146 blocks. ==24073== still reachable: 100,734,340 bytes in 1,119 blocks. ==24073== suppressed: 0 bytes in 0 blocks. ==24073== Rerun with --leak-check=full to see details of leaked memory. Hope this helps to find the real cause of the bug. Please let me know if you want me to re-run valgrind with different options. I've setup my .xsession so that it runs ratpoison in a loop, displaying a prompt whether to restart ratpoison if it crashes. So I should be able to try out different things more easily without having to interrupt my session. T -- He who sacrifices functionality for ease of use, loses both and deserves neither. -- Slashdotter -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]