Bug 293954 - right clicking .jar file causes dauphin to crash
Summary: right clicking .jar file causes dauphin to crash
Status: RESOLVED WORKSFORME
Alias: None
Product: kdelibs
Classification: Frameworks and Libraries
Component: kshareddatacache (show other bugs)
Version: 4.7
Platform: Ubuntu Linux
: NOR crash
Target Milestone: ---
Assignee: kdelibs bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-02-13 02:16 UTC by ramsey152
Modified: 2018-11-29 09:37 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description ramsey152 2012-02-13 02:16:49 UTC
Application: dolphin (1.7)
KDE Platform Version: 4.7.4 (4.7.4)
Qt Version: 4.7.4
Operating System: Linux 3.0.0-14-generic i686
Distribution: Ubuntu 11.10

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

I was right-clicking a .jar file to open it with kde-java. Currently the default program for .jar files is ark. Everytime i go to right click this file, it crashes.

The crash can be reproduced every time.

-- Backtrace:
Application: Dolphin (dolphin), signal: Bus error
[Current thread is 1 (Thread 0xb7808710 (LWP 23928))]

Thread 3 (Thread 0xb697eb70 (LWP 23933)):
#0  0x007dcd10 in clock_gettime () from /lib/i386-linux-gnu/librt.so.1
#1  0x014cf7d5 in do_gettime (frac=0xb697e020, sec=0xb697e018) at tools/qelapsedtimer_unix.cpp:123
#2  qt_gettime () at tools/qelapsedtimer_unix.cpp:140
#3  0x015a24b6 in QTimerInfoList::updateCurrentTime (this=0x91d139c) at kernel/qeventdispatcher_unix.cpp:339
#4  0x015a280a in QTimerInfoList::timerWait (this=0x91d139c, tm=...) at kernel/qeventdispatcher_unix.cpp:442
#5  0x015a1053 in timerSourcePrepareHelper (src=<optimized out>, timeout=0xb697e12c) at kernel/qeventdispatcher_glib.cpp:136
#6  0x015a10ed in timerSourcePrepare (source=0x91d1368, timeout=<optimized out>) at kernel/qeventdispatcher_glib.cpp:169
#7  0x057f288c in g_main_context_prepare () from /lib/i386-linux-gnu/libglib-2.0.so.0
#8  0x057f3637 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#9  0x057f3c2a in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#10 0x015a1b37 in QEventDispatcherGlib::processEvents (this=0x918e8a0, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#11 0x015721dd in QEventLoop::processEvents (this=0xb697e2b0, flags=...) at kernel/qeventloop.cpp:149
#12 0x01572421 in QEventLoop::exec (this=0xb697e2b0, flags=...) at kernel/qeventloop.cpp:201
#13 0x0147590b in QThread::exec (this=0x91b45a0) at thread/qthread.cpp:498
#14 0x01552e2d in QInotifyFileSystemWatcherEngine::run (this=0x91b45a0) at io/qfilesystemwatcher_inotify.cpp:248
#15 0x014787b3 in QThreadPrivate::start (arg=0x91b45a0) at thread/qthread_unix.cpp:331
#16 0x00d2ad31 in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#17 0x00e1b0ce in clone () from /lib/i386-linux-gnu/libc.so.6
Backtrace stopped: Not enough registers or memory available to unwind further

Thread 2 (Thread 0xb4c76b70 (LWP 23936)):
#0  0x00d2dd50 in __pthread_mutex_unlock_usercnt () from /lib/i386-linux-gnu/libpthread.so.0
#1  0x00e28f54 in pthread_mutex_unlock () from /lib/i386-linux-gnu/libc.so.6
#2  0x057f287f in g_main_context_prepare () from /lib/i386-linux-gnu/libglib-2.0.so.0
#3  0x057f3637 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#4  0x057f3c2a in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#5  0x015a1b37 in QEventDispatcherGlib::processEvents (this=0x9507300, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#6  0x015721dd in QEventLoop::processEvents (this=0xb4c762b0, flags=...) at kernel/qeventloop.cpp:149
#7  0x01572421 in QEventLoop::exec (this=0xb4c762b0, flags=...) at kernel/qeventloop.cpp:201
#8  0x0147590b in QThread::exec (this=0x91cd570) at thread/qthread.cpp:498
#9  0x01552e2d in QInotifyFileSystemWatcherEngine::run (this=0x91cd570) at io/qfilesystemwatcher_inotify.cpp:248
#10 0x014787b3 in QThreadPrivate::start (arg=0x91cd570) at thread/qthread_unix.cpp:331
#11 0x00d2ad31 in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#12 0x00e1b0ce in clone () from /lib/i386-linux-gnu/libc.so.6
Backtrace stopped: Not enough registers or memory available to unwind further

Thread 1 (Thread 0xb7808710 (LWP 23928)):
[KCrash Handler]
#7  0x00e603bf in ?? () from /lib/i386-linux-gnu/libc.so.6
#8  0x0147a78e in QByteArray::QByteArray (this=0xbfe3979c, data=0xb6f61031 "", size=12010) at /usr/include/i386-linux-gnu/bits/string3.h:52
#9  0x032fbb5b in KSharedDataCache::find (this=0x9015998, key=..., destination=0xbfe39814) at ../../kdecore/util/kshareddatacache.cpp:1515
#10 0x01161dbb in KIconLoaderPrivate::findCachedPixmapWithPath (this=0x8fe58d8, key=..., data=..., path=...) at ../../kdeui/icons/kiconloader.cpp:860
#11 0x01162161 in KIconLoader::loadIcon (this=0x8fe5ad8, _name=..., group=KIconLoader::Desktop, size=128, state=0, overlays=..., path_store=0x0, canReturnNull=false) at ../../kdeui/icons/kiconloader.cpp:1222
#12 0x01158c40 in KIconEngine::pixmap (this=0x98aa830, size=..., mode=QIcon::Normal, state=QIcon::Off) at ../../kdeui/icons/kiconengine.cpp:104
#13 0x04cde554 in QIcon::pixmap (this=0xbfe39b38, size=..., mode=QIcon::Normal, state=QIcon::Off) at image/qicon.cpp:676
#14 0x00b5a729 in ?? () from /usr/lib/kde4/libkdeinit/libkdeinit4_dolphin.so
#15 0x00b5b6a3 in ?? () from /usr/lib/kde4/libkdeinit/libkdeinit4_dolphin.so
#16 0x01579b7d in metacall (argv=0xbfe39c78, idx=28, cl=QMetaObject::InvokeMetaMethod, object=0x94e1f60) at kernel/qmetaobject.cpp:237
#17 QMetaObject::metacall (object=0x94e1f60, cl=QMetaObject::InvokeMetaMethod, idx=28, argv=0xbfe39c78) at kernel/qmetaobject.cpp:232
#18 0x01588a6a in QMetaObject::activate (sender=0x919ad50, m=0xad0efc, local_signal_index=1, argv=0xbfe39c78) at kernel/qobject.cpp:3278
#19 0x00989475 in KIO::PreviewJob::failed (this=0x919ad50, _t1=...) at ./previewjob.moc:106
#20 0x0098c87e in KIO::PreviewJobPrivate::startPreview (this=0x953a530) at ../../kio/kio/previewjob.cpp:364
#21 0x0098d36f in KIO::PreviewJob::qt_metacall (this=0x919ad50, _c=QMetaObject::InvokeMetaMethod, _id=<optimized out>, _a=0x9871220) at ./previewjob.moc:86
#22 0x01579b7d in metacall (argv=0x9871220, idx=34, cl=QMetaObject::InvokeMetaMethod, object=0x919ad50) at kernel/qmetaobject.cpp:237
#23 QMetaObject::metacall (object=0x919ad50, cl=QMetaObject::InvokeMetaMethod, idx=34, argv=0x9871220) at kernel/qmetaobject.cpp:232
#24 0x01584685 in QMetaCallEvent::placeMetaCall (this=0x95e7750, object=0x919ad50) at kernel/qobject.cpp:535
#25 0x0158bb52 in QObject::event (this=0x919ad50, e=0x95e7750) at kernel/qobject.cpp:1217
#26 0x04c23d84 in notify_helper (e=0x95e7750, receiver=0x919ad50, this=0x8f43480) at kernel/qapplication.cpp:4486
#27 QApplicationPrivate::notify_helper (this=0x8f43480, receiver=0x919ad50, e=0x95e7750) at kernel/qapplication.cpp:4458
#28 0x04c29133 in QApplication::notify (this=0x95e7750, receiver=0x919ad50, e=0x95e7750) at kernel/qapplication.cpp:3886
#29 0x011ba971 in KApplication::notify (this=0xbfe3a594, receiver=0x919ad50, event=0x95e7750) at ../../kdeui/kernel/kapplication.cpp:311
#30 0x0157319e in QCoreApplication::notifyInternal (this=0xbfe3a594, receiver=0x919ad50, event=0x95e7750) at kernel/qcoreapplication.cpp:787
#31 0x01576f93 in sendEvent (event=<optimized out>, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#32 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x8f29e88) at kernel/qcoreapplication.cpp:1428
#33 0x015770ec in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1321
#34 0x015a16a4 in sendPostedEvents () at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:220
#35 postEventSourceDispatch (s=0x8f47778) at kernel/qeventdispatcher_glib.cpp:277
#36 0x057f325f in g_main_context_dispatch () from /lib/i386-linux-gnu/libglib-2.0.so.0
#37 0x057f3990 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#38 0x057f3c2a in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#39 0x015a1ada in QEventDispatcherGlib::processEvents (this=0x8f2abb0, flags=...) at kernel/qeventdispatcher_glib.cpp:422
#40 0x04cdbe7a in QGuiEventDispatcherGlib::processEvents (this=0x8f2abb0, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#41 0x015721dd in QEventLoop::processEvents (this=0xbfe3a504, flags=...) at kernel/qeventloop.cpp:149
#42 0x01572421 in QEventLoop::exec (this=0xbfe3a504, flags=...) at kernel/qeventloop.cpp:201
#43 0x0157719d in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1064
#44 0x04c21924 in QApplication::exec () at kernel/qapplication.cpp:3760
#45 0x00b57453 in kdemain () from /usr/lib/kde4/libkdeinit/libkdeinit4_dolphin.so
#46 0x0804850b in ?? ()
#47 0x00d62113 in __libc_start_main () from /lib/i386-linux-gnu/libc.so.6
#48 0x08048531 in _start ()

Possible duplicates by query: bug 284552, bug 280936, bug 268901.

Reported using DrKonqi
Comment 1 Michael Pyne 2012-05-21 03:22:30 UTC
Git commit 561e6494bdd9a02cc8feef649f7dbbd40a1456c3 by Michael Pyne.
Committed on 20/05/2012 at 00:13.
Pushed by mpyne into branch 'KDE/4.8'.

kshareddatacache: Validate cache page size.

This commit ensures that the cache page size is actually a power-of-2
and within the band of possible sizes that could possibly have been set.

If this is not the case the cache is assumed corrupted and reset.

This should help with any cache-corruption bugs caused by a wrong cache
page size (although these don't exactly make themselves obvious). More
fixes to follow...

This one /should/ fix 274252 outright and may be of interest to several
others.
Related: bug 274252, bug 249362, bug 253665, bug 243573, bug 281217, bug 297815, bug 293447, bug 270915, bug 255233
FIXED-IN:4.8.4

M  +26   -1    kdecore/util/kshareddatacache.cpp

http://commits.kde.org/kdelibs/561e6494bdd9a02cc8feef649f7dbbd40a1456c3
Comment 2 Michael Pyne 2012-05-21 03:22:30 UTC
Git commit d6f72354807a0d79939ecaf0d127004473c03dea by Michael Pyne.
Committed on 21/05/2012 at 03:38.
Pushed by mpyne into branch 'KDE/4.8'.

kshareddatacache: Length-checking for memcpy.

Previous commits added exception support if we tried to read from or
write to individual pages that were invalid.

This doesn't fully cover the cases where memcpy is used across page
boundaries (when reading an entry or writing an entry to the cache),
which requires verifying the length.

It also missed checking the return value of page() in defragment, where
the returned pointer was used inline in memcpy().

Now we throw a corrupt-cache exception if we would violate the
boundaries established in mmap().

Passes the relevant unit tests and limited fuzz tests mentioned in my
last commit. Hopefully this should fix the majority of extant "cache is
corrupt" crashers.
Related: bug 255233, bug 281217
FIXED-IN:4.8.4

M  +52   -7    kdecore/util/kshareddatacache.cpp

http://commits.kde.org/kdelibs/d6f72354807a0d79939ecaf0d127004473c03dea
Comment 3 Michael Pyne 2012-05-21 03:22:30 UTC
Git commit ca2a6a59784232857a35b313adc9599efb87bd5e by Michael Pyne.
Committed on 21/05/2012 at 01:19.
Pushed by mpyne into branch 'KDE/4.8'.

kshareddatacache: Adopt KSDCCorrupted for exceptional errors.

This involves converting many present assertions (which crash no matter
what) and error-code return values (which have to be checked everywhere
the return value is used at) into using the KSDCCorrupted exception.

The nice thing about using the exception is that it can be trapped and
handled so that it does not cause an application crash.

There's still a bit more to do -- the end goal is that all accesses to
shm, no matter how minor, are vetted beforehand to ensure it won't cause
a page fault or bus violation.
Related: bug 249362, bug 253665, bug 243573, bug 281217, bug 297815, bug 293447, bug 270915, bug 255233

M  +49   -34   kdecore/util/kshareddatacache.cpp

http://commits.kde.org/kdelibs/ca2a6a59784232857a35b313adc9599efb87bd5e
Comment 4 Andrew Crouthamel 2018-10-29 22:28:50 UTC
Dear Bug Submitter,

This bug has been stagnant for a long time. Could you help us out and re-test if the bug is valid in the latest version? I am setting the status to NEEDSINFO pending your response, please change the Status back to REPORTED when you respond.

Thank you for helping us make KDE software even better for everyone!
Comment 5 Bug Janitor Service 2018-11-13 14:36:45 UTC
Dear Bug Submitter,

This bug has been in NEEDSINFO status with no change for at least
15 days. Please provide the requested information as soon as
possible and set the bug status as REPORTED. Due to regular bug
tracker maintenance, if the bug is still in NEEDSINFO status with
no change in 30 days the bug will be closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

If you have already provided the requested information, please
mark the bug as REPORTED so that the KDE team knows that the bug is
ready to be confirmed.

Thank you for helping us make KDE software even better for everyone!
Comment 6 Bug Janitor Service 2018-11-29 09:37:54 UTC
This bug has been in NEEDSINFO status with no change for at least
30 days. The bug is now closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

Thank you for helping us make KDE software even better for everyone!