Bug 66993

Summary: konsole crash when opening console (session A), create new session B, detach session B and close session A
Product: [Applications] konsole Reporter: Edmondo Tommasina <edmondo>
Component: generalAssignee: Konsole Developer <konsole-devel>
Status: RESOLVED FIXED    
Severity: crash    
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Edmondo Tommasina 2003-11-01 13:45:19 UTC
Version:           1.3 beta (using KDE Devel)
Installed from:    Compiled sources
Compiler:          gcc 3.3.2 
OS:          Linux

The crash is quite easy to reproduce:
- open new console (let's call it session A)
- create new session with icon or New Shell (let's call it session B)
- detach session B with Detach Session
- return on session A (let B open) and exit this one
- CRASH! (signal 11 SIGSEGV)

Here the Backtrace:

vg_do_syscall2 (syscallno=4294967292, arg1=1075849116, arg2=1075849108)
    at vg_mylibc.c:77
77	}
#0  vg_do_syscall2 (syscallno=4294967292, arg1=1075849116, arg2=1075849108)
    at vg_mylibc.c:77
#1  0x40173a4f in vgPlain_nanosleep (req=0xfffffffc, rem=0xfffffffc)
    at vg_mylibc.c:362
#2  0x40157c5e in nanosleep_for_a_while () at vg_scheduler.c:1214
#3  0x40157d75 in vgPlain_scheduler () at vg_scheduler.c:1330
#4  0x40170679 in vgPlain_main () at vg_main.c:1552

And here a complete debugging log running the console under
valgrind --verbose --skin=addrcheck:
http://www.eriadon.com/kde/konsole.log

(short extract)

==10260== Reading syms from /usr/lib/qt-3.2.1/plugins/imageformats/libqmng.so
==10260== Reading syms from /usr/X11R6/lib/X11/locale/lib/common/xomGeneric.so.2
==10260== Invalid memory access of size 4
==10260==    at 0x40273B33: Konsole::attachSession(TESession*) (in /opt/kde3.1.1/lib/libkdeinit_konsole.so)
==10260==    by 0x4026FF4C: Konsole::doneChild(KonsoleChild*, TESession*) (in /opt/kde3.1.1/lib/libkdeinit_konsole.so)
==10260==    by 0x40278ACD: Konsole::qt_invoke(int, QUObject*) (in /opt/kde3.1.1/lib/libkdeinit_konsole.so)
==10260==    by 0x40EE811B: QObject::activate_signal(QConnectionList*, QUObject*) (in /usr/lib/qt-3.2.1/lib/libqt-mt.so.3.2.1)
==10260==    Address 0x2C is not stack'd, malloc'd or free'd
==10260== Warning: client attempted to close Valgrind's logfile fd (2).
==10260==    Use --logfile-fd=<number> to select an alternative logfile fd.
KCrash: crashing... crashRecursionCounter = 2
KCrash: Application Name = konsole path = <unknown> pid = 10260
==10260== Warning: invalid file descriptor 9 in syscall write()
==10260== Warning: invalid file descriptor 9 in syscall write()
==10260== discard syms in /usr/lib/gconv/ISO8859-1.so due to munmap()
==10260==
==10260== Invalid memory access of size 4
==10260==    at 0x4165B47A: trecurse (tsearch.c:600)
==10260==    by 0x415A24DB: __gconv_release_shlib (gconv_dl.c:189)
==10260==    by 0x4159A434: __gconv_release_step (gconv_db.c:210)
==10260==    by 0x4159B099: __gconv_close_transform (gconv_db.c:745)
==10260==    Address 0x4315067C is 4 bytes inside a block of size 16 free'd
==10260==    at 0x40021837: free (vg_replace_malloc.c:231)
==10260==    by 0x4165B566: tdestroy_recurse (tsearch.c:644)
==10260==    by 0x415A2555: free_mem (gconv_dl.c:209)
==10260==    by 0x415FA911: __GI___libc_freeres (set-freeres.c:43)
==10260==
(...)

Thanks in advance for your help.
Comment 1 Stephan Binner 2003-11-01 18:23:20 UTC
*** Bug has been marked as fixed ***.
Comment 2 Edmondo Tommasina 2003-11-02 09:28:24 UTC
Thanks Stephan! It doesn't crash anymore. Fixed.

Behaviour is not perfect, closing session A bring back session B in window of session A, but I can live with it.