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

Bug#509272: marked as done (libqtcore4: segmentation fault in ~QSettings)



Your message dated Tue, 23 Dec 2008 14:49:00 +0200
with message-id <4950DE3C.9060905@gmail.com>
and subject line closing #509272
has caused the Debian Bug report #509272,
regarding libqtcore4: segmentation fault in ~QSettings
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
509272: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=509272
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
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



--- End Message ---
--- Begin Message ---
Hello.

During the discussion with Qt support engineer I was been pointed to the
sentence in Qt documentation saying "QSettings variables can be created on
stack or in the heap". As global variables use data segment, this implicitly
says that global variables of type QSettings is prohibited.

I'm closing this bug.

-- 
Eugene V. Lyubimkin aka JackYF, JID: jackyf.devel(maildog)gmail.com
Ukrainian C++ Developer, Debian Maintainer, APT contributor

Attachment: signature.asc
Description: OpenPGP digital signature


--- End Message ---

Reply to: