Bug 307402

Summary: crash when attaching a directory
Product: [Applications] kontact Reporter: Michael Monnerie <kde-bugreport>
Component: generalAssignee: kdepim bugs <kdepim-bugs>
Status: RESOLVED UNMAINTAINED    
Severity: crash CC: montel
Priority: NOR    
Version: 4.8.x   
Target Milestone: ---   
Platform: openSUSE   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Michael Monnerie 2012-09-25 18:42:27 UTC
Application: kontact (4.8.5)
KDE Platform Version: 4.8.5 (4.8.5) "release 2"
Qt Version: 4.8.1
Operating System: Linux 3.5.1-zmi x86_64
Distribution: "openSUSE 12.2 (x86_64)"

-- Information about the crash:
- What I was doing when the application crashed:

I wanted to add an attachment to an e-mail. The file dialog opened, and was in the wrong dir. So I started to enter the full path to where I wanted: /q/zmidoc/documents/
I entered this text in the "Name:" field of the dialog, and pressed enter. Until before my update (I was on openSUSE 12.1 with kmail 4.7) that made the file dialog change into that dir, and show me the contents. Now on openSUSE 12.2 with kmail 4.8 this opens the question "do you want to attach the whole dir?". If you press "No", the file dialog is closed and you must start over again. This time I pressed "Yes", and kontact crashed.

- Unusual behavior I noticed:

The file dialog should, when a dir is entered, just change into that dir, so I can choose the files I want. It's very unpleasant that I *must* use the mouse now to change directories. It's much faster to search dirs via keyboard and the nice auto-expand. Could you please change the behaviour back to what was on kmail 4.7?

-- Backtrace:
Application: Kontact (kontact), signal: Segmentation fault
Using host libthread_db library "/lib64/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f4a98e26780 (LWP 13518))]

Thread 4 (Thread 0x7f4a8031f700 (LWP 13519)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007f4a95644177 in ?? () from /usr/lib64/libQtWebKit.so.4
#2  0x00007f4a956441a9 in ?? () from /usr/lib64/libQtWebKit.so.4
#3  0x00007f4a90cb7e0e in start_thread (arg=0x7f4a8031f700) at pthread_create.c:305
#4  0x00007f4a963542bd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 3 (Thread 0x7f4a7fa06700 (LWP 13520)):
#0  0x00007fff9be00771 in clock_gettime ()
#1  0x00007f4a8e8cbf7d in __GI_clock_gettime (clock_id=<optimized out>, tp=<optimized out>) at ../sysdeps/unix/clock_gettime.c:116
#2  0x00007f4a969f7a24 in do_gettime (frac=0x7f4a7fa05ba8, sec=0x7f4a7fa05ba0) at tools/qelapsedtimer_unix.cpp:123
#3  qt_gettime () at tools/qelapsedtimer_unix.cpp:140
#4  0x00007f4a96aca15d in QTimerInfoList::updateCurrentTime (this=this@entry=0x7f4a78002860) at kernel/qeventdispatcher_unix.cpp:343
#5  0x00007f4a96aca4a3 in QTimerInfoList::timerWait (this=0x7f4a78002860, tm=...) at kernel/qeventdispatcher_unix.cpp:450
#6  0x00007f4a96ac901c in timerSourcePrepareHelper (src=<optimized out>, timeout=0x7f4a7fa05c7c) at kernel/qeventdispatcher_glib.cpp:136
#7  0x00007f4a90709ebf in g_main_context_prepare () from /usr/lib64/libglib-2.0.so.0
#8  0x00007f4a9070a5ab in ?? () from /usr/lib64/libglib-2.0.so.0
#9  0x00007f4a9070a7a4 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#10 0x00007f4a96ac9956 in QEventDispatcherGlib::processEvents (this=0x7f4a780008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#11 0x00007f4a96a9a73f in QEventLoop::processEvents (this=this@entry=0x7f4a7fa05e20, flags=...) at kernel/qeventloop.cpp:149
#12 0x00007f4a96a9a9c8 in QEventLoop::exec (this=0x7f4a7fa05e20, flags=...) at kernel/qeventloop.cpp:204
#13 0x00007f4a9699ee40 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:501
#14 0x00007f4a969a1ddb in QThreadPrivate::start (arg=0x2220f20) at thread/qthread_unix.cpp:298
#15 0x00007f4a90cb7e0e in start_thread (arg=0x7f4a7fa06700) at pthread_create.c:305
#16 0x00007f4a963542bd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 2 (Thread 0x7f4a26d57700 (LWP 14177)):
#0  0x00007f4a9634c13f in __GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007f4a9070a684 in ?? () from /usr/lib64/libglib-2.0.so.0
#2  0x00007f4a9070a7a4 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#3  0x00007f4a96ac9956 in QEventDispatcherGlib::processEvents (this=0x7f4a20002a80, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#4  0x00007f4a96a9a73f in QEventLoop::processEvents (this=this@entry=0x7f4a26d56df0, flags=...) at kernel/qeventloop.cpp:149
#5  0x00007f4a96a9a9c8 in QEventLoop::exec (this=0x7f4a26d56df0, flags=...) at kernel/qeventloop.cpp:204
#6  0x00007f4a9699ee40 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:501
#7  0x00007f4a96a7b11f in QInotifyFileSystemWatcherEngine::run (this=0x6c73e80) at io/qfilesystemwatcher_inotify.cpp:248
#8  0x00007f4a969a1ddb in QThreadPrivate::start (arg=0x6c73e80) at thread/qthread_unix.cpp:298
#9  0x00007f4a90cb7e0e in start_thread (arg=0x7f4a26d57700) at pthread_create.c:305
#10 0x00007f4a963542bd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 1 (Thread 0x7f4a98e26780 (LWP 13518)):
[KCrash Handler]
#6  0x00007f4a9027ad0a in crc32 () from /lib64/libz.so.1
#7  0x00007f4a96f210fd in KZip::writeData (this=0xcb74270, data=0x606498 <QByteArray::shared_null+24> "", size=246938) at /usr/src/debug/kdelibs-4.8.5/kdecore/io/kzip.cpp:1243
#8  0x00007f4a96ef5a0c in KArchive::writeFile (this=this@entry=0xcb74270, name=..., user=..., group=..., data=data@entry=0x606498 <QByteArray::shared_null+24> "", size=size@entry=246938, perm=perm@entry=33188, atime=atime@entry=-1, mtime=mtime@entry=-1, ctime=ctime@entry=-1) at /usr/src/debug/kdelibs-4.8.5/kdecore/io/karchive.cpp:331
#9  0x00007f4a7ca1db0c in MessageCore::AttachmentFromFolderJob::Private::addEntity (this=this@entry=0xc5f9800, f=..., path=...) at /usr/src/debug/kdepim-4.8.5/messagecore/attachmentfromfolderjob.cpp:127
#10 0x00007f4a7ca1eee3 in MessageCore::AttachmentFromFolderJob::Private::compressFolder (this=0xc5f9800) at /usr/src/debug/kdepim-4.8.5/messagecore/attachmentfromfolderjob.cpp:75
#11 0x00007f4a96ab00ae in QObject::event (this=0xcf97ef0, e=<optimized out>) at kernel/qobject.cpp:1204
#12 0x00007f4a974a674c in QApplicationPrivate::notify_helper (this=this@entry=0x2217e10, receiver=receiver@entry=0xcf97ef0, e=e@entry=0xa380270) at kernel/qapplication.cpp:4554
#13 0x00007f4a974aac7a in QApplication::notify (this=0x7fff9bca9010, receiver=0xcf97ef0, e=0xa380270) at kernel/qapplication.cpp:4415
#14 0x00007f4a981bb006 in KApplication::notify (this=0x7fff9bca9010, receiver=0xcf97ef0, event=0xa380270) at /usr/src/debug/kdelibs-4.8.5/kdeui/kernel/kapplication.cpp:311
#15 0x00007f4a96a9b73e in QCoreApplication::notifyInternal (this=0x7fff9bca9010, receiver=receiver@entry=0xcf97ef0, event=event@entry=0xa380270) at kernel/qcoreapplication.cpp:876
#16 0x00007f4a96a9f091 in sendEvent (event=0xa380270, receiver=0xcf97ef0) at kernel/qcoreapplication.h:231
#17 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x21e4350) at kernel/qcoreapplication.cpp:1500
#18 0x00007f4a96ac97a3 in sendPostedEvents () at kernel/qcoreapplication.h:236
#19 postEventSourceDispatch (s=0x2217ca0) at kernel/qeventdispatcher_glib.cpp:279
#20 0x00007f4a9070a3b5 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#21 0x00007f4a9070a6e8 in ?? () from /usr/lib64/libglib-2.0.so.0
#22 0x00007f4a9070a7a4 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#23 0x00007f4a96ac9936 in QEventDispatcherGlib::processEvents (this=0x21e9b80, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#24 0x00007f4a975468ae in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#25 0x00007f4a96a9a73f in QEventLoop::processEvents (this=this@entry=0x7fff9bca8e80, flags=...) at kernel/qeventloop.cpp:149
#26 0x00007f4a96a9a9c8 in QEventLoop::exec (this=0x7fff9bca8e80, flags=...) at kernel/qeventloop.cpp:204
#27 0x00007f4a96a9f3a8 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1148
#28 0x0000000000403699 in main (argc=1, argv=0x7fff9bca9158) at /usr/src/debug/kdepim-4.8.5/kontact/src/main.cpp:218

Reported using DrKonqi
Comment 1 Laurent Montel 2012-09-28 06:37:11 UTC
it was a big directory ?
did you have access to data ?
etc.

(work fine here.)
Comment 2 Michael Monnerie 2012-09-29 06:41:18 UTC
Depends on what "big" is for you: 29628KB, 92 files.

I don't understand the question "did you have access to data ?". I normally have access to my data, if you mean that.

Anyway, is there a way to switch back to the old behaviour so when I enter a directory in the attach dialog I'm not asked "attach dir?" but instead just change into that dir and show me it's files?
Comment 3 Myriam Schweingruber 2012-09-30 10:26:02 UTC
Apparently the crash is in kdelibs, trying to open a compressed file.
Comment 4 Denis Kurz 2016-09-24 19:29:01 UTC
This bug has only been reported for versions before 4.14, which have been unsupported for at least two years now. Can anyone tell if this bug still present?

If noone confirms this bug for a Framework-based version of kontact (version 5.0 or later, as part of KDE Applications 15.08 or later), it gets closed in about three months.
Comment 5 Denis Kurz 2017-01-07 21:55:20 UTC
Just as announced in my last comment, I close this bug. If you encounter it again in a recent version (at least 5.0 aka 15.08), please open a new one unless it already exists. Thank you for all your input.