[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#509264: nlkt: Segfaults on exit when ~/.config/jackyf directory doesn't exist



Package: nlkt
Version: 0.3.2.0-2
Severity: normal

When ~/.config/jackyf directory does not exist nlkt segfaults on exit
(just start nlkt and press "Cancel").


(gdb) run
Starting program: /usr/bin/nlkt 
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread 0xf6ce16c0 (LWP 28700)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xf6ce16c0 (LWP 28700)]
0xf73c8fe2 in QThreadStorageData (this=0x98a3220, func=0xf73c2ed0 <QThreadStorage<unsigned int*>::deleteData(void*)>)
    at ../../include/QtCore/../../src/corelib/tools/qmap.h:162
162	../../include/QtCore/../../src/corelib/tools/qmap.h: No such file or directory.
	in ../../include/QtCore/../../src/corelib/tools/qmap.h
Current language:  auto; currently c++
(gdb) bt
#0  0xf73c8fe2 in QThreadStorageData (this=0x98a3220, 
    func=0xf73c2ed0 <QThreadStorage<unsigned int*>::deleteData(void*)>)
    at ../../include/QtCore/../../src/corelib/tools/qmap.h:162
#1  0xf73c20d1 in randTLS () at ../../include/QtCore/../../src/corelib/thread/qthreadstorage.h:132
#2  0xf73c22cc in qrand () at global/qglobal.cpp:2402
#3  0xf74635b6 in QTemporaryFileEngine::open (this=0x98782d8, openMode={i = -3582768}) at io/qtemporaryfile.cpp:141
#4  0xf74494c0 in QFile::open (this=0xffc95564, mode={i = -3582700}) at io/qfile.cpp:951
#5  0xf7463b51 in QTemporaryFile::open (this=0x98a3220, flags={i = -148672160}) at io/qtemporaryfile.cpp:669
#6  0xf747ea16 in QConfFile::isWritable (this=0x982c3c0) at io/qtemporaryfile.h:78
#7  0xf7484d83 in QConfFileSettingsPrivate::syncConfFile (this=0x982c230, confFileNo=0) at io/qsettings.cpp:1416
#8  0xf7485a57 in QConfFileSettingsPrivate::sync (this=0x982c230) at io/qsettings.cpp:1358
#9  0xf747bdc1 in QConfFileSettingsPrivate::flush (this=0x982c230) at io/qsettings.cpp:1365
#10 0xf747c449 in ~QSettings (this=0x807bbc8) at io/qsettings.cpp:2723
#11 0xf710dab9 in exit () from /lib/i686/cmov/libc.so.6
#12 0xf70f545d in __libc_start_main () from /lib/i686/cmov/libc.so.6
#13 0x08051811 in ?? ()
(gdb) bt full
#0  0xf73c8fe2 in QThreadStorageData (this=0x98a3220, 
    func=0xf73c2ed0 <QThreadStorage<unsigned int*>::deleteData(void*)>)
    at ../../include/QtCore/../../src/corelib/tools/qmap.h:162
No locals.
#1  0xf73c20d1 in randTLS () at ../../include/QtCore/../../src/corelib/thread/qthreadstorage.h:132
	x = (SeedStorage *) 0x98a3220
	cleanup = {globalStatic = @0x0}
#2  0xf73c22cc in qrand () at global/qglobal.cpp:2402
	pseed = <value optimized out>
#3  0xf74635b6 in QTemporaryFileEngine::open (this=0x98782d8, openMode={i = -3582768}) at io/qtemporaryfile.cpp:141
	d = (class QFSFileEnginePrivate * const) 0x988cb30
	qfilename = {static null = {<No data fields>}, static shared_null = {ref = {_q_value = 28}, alloc = 0, 
    size = 0, data = 0x807b8aa, clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, 
    reserved = 0, array = {0}}, static shared_empty = {ref = {_q_value = 2}, alloc = 0, size = 0, data = 0xf759f14e, 
    clean = 0, simpletext = 0, righttoleft = 0, asciiCache = 0, capacity = 0, reserved = 0, array = {0}}, 
  d = 0x9854ed0, static codecForCStrings = 0x0}
	filename = 0x9836398 "/home/stepan/.config/jackyf/nlkt.conf.X28700"
	fd = <value optimized out>
#4  0xf74494c0 in QFile::open (this=0xffc95564, mode={i = -3582700}) at io/qfile.cpp:951
	err = <value optimized out>
#5  0xf7463b51 in QTemporaryFile::open (this=0x98a3220, flags={i = -148672160}) at io/qtemporaryfile.cpp:669
	d = (QTemporaryFilePrivate * const) 0x98a3ea0
#6  0xf747ea16 in QConfFile::isWritable (this=0x982c3c0) at io/qtemporaryfile.h:78
	dir = {d_ptr = 0x98a8258}
	file = {<QFile> = {<QIODevice> = {<QObject> = {_vptr.QObject = 0xf759c888, static staticMetaObject = {d = {
            superdata = 0x0, stringdata = 0xf7548e00 "QObject", data = 0xf7548e80, extradata = 0x0}}, 
        d_ptr = 0x98a3ea0, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0xf7551f20 "Qt", 
            data = 0xf7553bc0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x807b960, 
          stringdata = 0xf7557180 "QIODevice", data = 0xf75571e0, extradata = 0x0}}}, static staticMetaObject = {d = {
        superdata = 0xf759c7c8, stringdata = 0xf7557120 "QFile", data = 0xf7557140, extradata = 0x0}}}, 
  static staticMetaObject = {d = {superdata = 0xf759c728, stringdata = 0xf7557280 "QTemporaryFile", 
      data = 0xf75572a0, extradata = 0x0}}}
	fileInfo = {d_ptr = 0x9869aa8}
#7  0xf7484d83 in QConfFileSettingsPrivate::syncConfFile (this=0x982c230, confFileNo=0) at io/qsettings.cpp:1416
	confFile = (QConfFile *) 0x982c3c0
---Type <return> to continue, or q <return> to quit---
	readOnly = false
	ok = <value optimized out>
	file = {<QIODevice> = {<QObject> = {_vptr.QObject = 0xf759c748, static staticMetaObject = {d = {
          superdata = 0x0, stringdata = 0xf7548e00 "QObject", data = 0xf7548e80, extradata = 0x0}}, 
      d_ptr = 0x988dad0, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0xf7551f20 "Qt", 
          data = 0xf7553bc0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = 0x807b960, 
        stringdata = 0xf7557180 "QIODevice", data = 0xf75571e0, extradata = 0x0}}}, static staticMetaObject = {d = {
      superdata = 0xf759c7c8, stringdata = 0xf7557120 "QFile", data = 0xf7557140, extradata = 0x0}}}
	fileInfo = {d_ptr = 0x982d028}
#8  0xf7485a57 in QConfFileSettingsPrivate::sync (this=0x982c230) at io/qsettings.cpp:1358
	locker = {{mtx = 0x982c3e5, val = 159564773}}
	confFile = <value optimized out>
	i = 0
#9  0xf747bdc1 in QConfFileSettingsPrivate::flush (this=0x982c230) at io/qsettings.cpp:1365
No locals.
#10 0xf747c449 in ~QSettings (this=0x807bbc8) at io/qsettings.cpp:2723
No locals.
#11 0xf710dab9 in exit () from /lib/i686/cmov/libc.so.6
No symbol table info available.
#12 0xf70f545d in __libc_start_main () from /lib/i686/cmov/libc.so.6
No symbol table info available.
#13 0x08051811 in ?? ()
No symbol table info available.
(gdb) continue
Continuing.

Program terminated with signal SIGSEGV, Segmentation fault.
The program no longer exists.




On subsequent calls this usually does not happen as nlkt manages to
create directory before segfault. I tried to do similar thing with
arora and fet (both depend on libqtcore4) but they did not crash.


-- System Information:
Debian Release: 5.0
  APT prefers testing
  APT policy: (900, 'testing')
Architecture: i386 (x86_64)

Kernel: Linux 2.6.26-1-amd64 (SMP w/2 CPU cores)
Locale: LANG=ru_RU.UTF-8, LC_CTYPE=ru_RU.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages nlkt depends on:
ii  fortune-mod                 1:1.99.1-3.1 provides fortune cookies on demand
ii  libc6                       2.7-16       GNU C Library: Shared libraries
ii  libgcc1                     1:4.3.2-1    GCC support library
ii  libqtcore4                  4.4.3-1      Qt 4 core module
ii  libqtgui4                   4.4.3-1      Qt 4 GUI module
ii  libqwt5-qt4                 5.1.1-1      Qt4 widgets library for technical 
ii  libstdc++6                  4.3.2-1      The GNU Standard C++ Library v3
ii  ttf-dejavu-core             2.25-3       Vera font family derivate with add

nlkt recommends no packages.

Versions of packages nlkt suggests:
ii  fortunes                    1:1.99.1-3.1 Data files containing fortune cook
pn  fortunes-de                 <none>       (no description available)
ii  fortunes-debian-hints       1.9          Debian Hints for fortune
pn  fortunes-ru                 <none>       (no description available)

-- no debconf information



Reply to: