Bug 272507

Summary: ark crashes extracting files with different locales from system locales
Product: [Applications] ark Reporter: Mau <maugarta>
Component: generalAssignee: Raphael Kubo da Costa <rakuco>
Status: RESOLVED DUPLICATE    
Severity: crash CC: maugarta
Priority: NOR    
Version: 2.14   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Mau 2011-05-05 09:54:34 UTC
Application: ark (2.14)
KDE Platform Version: 4.4.5 (KDE 4.4.5)
Qt Version: 4.6.2
Operating System: Linux 2.6.31-20-generic x86_64
Distribution: Ubuntu 10.04.2 LTS

-- Information about the crash:
Try extract this http://www.edu.gva.es/ocd/areaord/docs/idiomas/pruebasCertificacion/2010/Ingles2010.rar

The crash can be reproduced every time.

 -- Backtrace:
Application: Ark (ark), signal: Segmentation fault
[Current thread is 1 (Thread 0x7ff3b4ca6760 (LWP 6249))]

Thread 2 (Thread 0x7ff3a8d03700 (LWP 6250)):
[KCrash Handler]
#5  memcpy () at ../sysdeps/x86_64/memcpy.S:90
#6  0x00007ff3b262784e in QString (this=0x7ff3a8d01600, unicode=0x2000000007, size=2) at /usr/include/bits/string3.h:52
#7  0x00007ff3b2627a5d in QString::mid (this=<value optimized out>, position=<value optimized out>, n=35048720) at tools/qstring.cpp:3267
#8  0x00007ff3b25f8621 in QDateTimeParser::parseSection (this=0x7ff3a8d01b90, currentValue=<value optimized out>, sectionIndex=0, text=<value optimized out>, cursorPosition=<value optimized out>, 
    index=<value optimized out>, state=@0x7ff3a8d019fc, usedptr=0x7ff3a8d019f8) at tools/qdatetime.cpp:4523
#9  0x00007ff3b25f92be in QDateTimeParser::parse (this=0x7ff3a8d01b90, input=<value optimized out>, cursorPosition=<value optimized out>, currentValue=<value optimized out>, 
    fixup=<value optimized out>) at tools/qdatetime.cpp:4736
#10 0x00007ff3b25fa72f in QDateTimeParser::fromString (this=0x7ff3a8d01b90, t=<value optimized out>, date=0x0, time=0x7ff3a8d01c20) at tools/qdatetime.cpp:5501
#11 0x00007ff3b25fc11c in QTime::fromString (string=..., format=...) at tools/qdatetime.cpp:1980
#12 0x00007ff3a974e7e9 in CliPlugin::readListLine (this=0x215d060, line=<value optimized out>) at ../../../../ark/plugins/clirarplugin/cliplugin.cpp:150
#13 0x00007ff3b48b4712 in Kerfuffle::CliInterface::handleLine (this=0x215d060, line=...) at ../../../ark/kerfuffle/cliinterface.cpp:523
#14 0x00007ff3b48b4cfc in Kerfuffle::CliInterface::readStdout (this=0x215d060, handleAll=216) at ../../../ark/kerfuffle/cliinterface.cpp:468
#15 0x00007ff3b48b4fee in Kerfuffle::CliInterface::qt_metacall (this=0x215d060, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7ff3a8d022d0) at ./cliinterface.moc:80
#16 0x00007ff3b26ebe3f in QMetaObject::activate (sender=0x2136260, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x216cd10) at kernel/qobject.cpp:3293
#17 0x00007ff3b267871a in QProcessPrivate::_q_canReadStandardOutput (this=0x21593f0) at io/qprocess.cpp:887
#18 0x00007ff3b2678af9 in QProcess::qt_metacall (this=0x2136260, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7ff3a8d024d0) at .moc/release-shared/moc_qprocess.cpp:107
#19 0x00007ff3b3777a38 in KProcess::qt_metacall (this=0x216cd3a, _c=QMetaObject::QueryPropertyEditable, _id=4, _a=0x216cd10) at ./kprocess.moc:69
#20 0x00007ff3b26ebe3f in QMetaObject::activate (sender=0x2159260, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x216cd10) at kernel/qobject.cpp:3293
#21 0x00007ff3b2737c6e in QSocketNotifier::activated (this=0x216cd3a, _t1=18) at .moc/release-shared/moc_qsocketnotifier.cpp:89
#22 0x00007ff3b26f2fb3 in QSocketNotifier::event (this=0x2159260, e=0x7ff3a8d02b80) at kernel/qsocketnotifier.cpp:317
#23 0x00007ff3b2bac22c in QApplicationPrivate::notify_helper (this=0x20427a0, receiver=0x2159260, e=0x7ff3a8d02b80) at kernel/qapplication.cpp:4300
#24 0x00007ff3b2bb26fb in QApplication::notify (this=0x7fff63d33c20, receiver=0x2159260, e=0x7ff3a8d02b80) at kernel/qapplication.cpp:4183
#25 0x00007ff3b3d58a16 in KApplication::notify (this=0x7fff63d33c20, receiver=0x2159260, event=0x7ff3a8d02b80) at ../../kdeui/kernel/kapplication.cpp:302
#26 0x00007ff3b26d906c in QCoreApplication::notifyInternal (this=0x7fff63d33c20, receiver=0x2159260, event=0x7ff3a8d02b80) at kernel/qcoreapplication.cpp:704
#27 0x00007ff3b27028ca in QCoreApplication::sendEvent (source=0x213a9c0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#28 socketNotifierSourceDispatch (source=0x213a9c0) at kernel/qeventdispatcher_glib.cpp:110
#29 0x00007ff3ae5568c2 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#30 0x00007ff3ae55a748 in ?? () from /lib/libglib-2.0.so.0
#31 0x00007ff3ae55a8fc in g_main_context_iteration () from /lib/libglib-2.0.so.0
#32 0x00007ff3b2702513 in QEventDispatcherGlib::processEvents (this=0x2156d30, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:412
#33 0x00007ff3b26d7992 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#34 0x00007ff3b26d7d6c in QEventLoop::exec (this=0x7ff3a8d02db0, flags=) at kernel/qeventloop.cpp:201
#35 0x00007ff3b25e1d59 in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:487
#36 0x00007ff3b48a50da in Kerfuffle::ThreadExecution::run (this=0x2156910) at ../../../ark/kerfuffle/threading.cpp:47
#37 0x00007ff3b25e4775 in QThreadPrivate::start (arg=0x2156910) at thread/qthread_unix.cpp:248
#38 0x00007ff3aff5c9ca in start_thread (arg=<value optimized out>) at pthread_create.c:300
#39 0x00007ff3b1fba70d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#40 0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7ff3b4ca6760 (LWP 6249)):
#0  0x00007ff3b1fac4bd in read () at ../sysdeps/unix/syscall-template.S:82
#1  0x00007ff3ae559aa5 in g_main_context_check () from /lib/libglib-2.0.so.0
#2  0x00007ff3ae55a4c3 in ?? () from /lib/libglib-2.0.so.0
#3  0x00007ff3ae55a8fc in g_main_context_iteration () from /lib/libglib-2.0.so.0
#4  0x00007ff3b2702513 in QEventDispatcherGlib::processEvents (this=0x2028380, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:412
#5  0x00007ff3b2c5c46e in QGuiEventDispatcherGlib::processEvents (this=0x3, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#6  0x00007ff3b26d7992 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#7  0x00007ff3b26d7d6c in QEventLoop::exec (this=0x7fff63d32bd0, flags=) at kernel/qeventloop.cpp:201
#8  0x00007ff3b48a52eb in Kerfuffle::ArchiveBase::listIfNotListed (this=0x210bdb0) at ../../../ark/kerfuffle/archivebase.cpp:162
#9  0x00007ff3b48a5379 in Kerfuffle::ArchiveBase::isPasswordProtected (this=0x3) at ../../../ark/kerfuffle/archivebase.cpp:174
#10 0x00007ff3b48a5b18 in Kerfuffle::ArchiveBase::copyFiles (this=0x210bdb0, files=..., destinationDir=..., options=) at ../../../ark/kerfuffle/archivebase.cpp:106
#11 0x00007ff3b48adea1 in Kerfuffle::BatchExtract::addExtraction (this=0x2121220, archive=0x210bdc0) at ../../../ark/kerfuffle/batchextract.cpp:86
#12 0x00007ff3b48ae9ca in Kerfuffle::BatchExtract::slotStartJob (this=0x2121220) at ../../../ark/kerfuffle/batchextract.cpp:128
#13 0x00007ff3b48aef94 in Kerfuffle::BatchExtract::qt_metacall (this=0x2121220, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff63d33170) at ./batchextract.moc:83
#14 0x00007ff3b26ebe3f in QMetaObject::activate (sender=0x213aa50, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0xffffffffffffffff) at kernel/qobject.cpp:3293
#15 0x00007ff3b26f365f in QSingleShotTimer::timerEvent (this=0x213aa50) at kernel/qtimer.cpp:308
#16 0x00007ff3b26e8a63 in QObject::event (this=0x213aa50, e=0x7fff63d338d0) at kernel/qobject.cpp:1212
#17 0x00007ff3b2bac22c in QApplicationPrivate::notify_helper (this=0x20427a0, receiver=0x213aa50, e=0x7fff63d338d0) at kernel/qapplication.cpp:4300
#18 0x00007ff3b2bb26fb in QApplication::notify (this=0x7fff63d33c20, receiver=0x213aa50, e=0x7fff63d338d0) at kernel/qapplication.cpp:4183
#19 0x00007ff3b3d58a16 in KApplication::notify (this=0x7fff63d33c20, receiver=0x213aa50, event=0x7fff63d338d0) at ../../kdeui/kernel/kapplication.cpp:302
#20 0x00007ff3b26d906c in QCoreApplication::notifyInternal (this=0x7fff63d33c20, receiver=0x213aa50, event=0x7fff63d338d0) at kernel/qcoreapplication.cpp:704
#21 0x00007ff3b2705d42 in QCoreApplication::sendEvent (this=0x2046440) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#22 QTimerInfoList::activateTimers (this=0x2046440) at kernel/qeventdispatcher_unix.cpp:603
#23 0x00007ff3b2702824 in timerSourceDispatch (source=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:184
#24 0x00007ff3ae5568c2 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#25 0x00007ff3ae55a748 in ?? () from /lib/libglib-2.0.so.0
#26 0x00007ff3ae55a8fc in g_main_context_iteration () from /lib/libglib-2.0.so.0
#27 0x00007ff3b2702513 in QEventDispatcherGlib::processEvents (this=0x2028380, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:412
#28 0x00007ff3b2c5c46e in QGuiEventDispatcherGlib::processEvents (this=0x3, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#29 0x00007ff3b26d7992 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#30 0x00007ff3b26d7d6c in QEventLoop::exec (this=0x7fff63d33b70, flags=) at kernel/qeventloop.cpp:201
#31 0x00007ff3b26dbaab in QCoreApplication::exec () at kernel/qcoreapplication.cpp:981
#32 0x0000000000409c97 in main (argc=<value optimized out>, argv=<value optimized out>) at ../../../ark/app/main.cpp:210

Reported using DrKonqi
Comment 1 Raphael Kubo da Costa 2011-05-05 18:09:18 UTC
I was able to extract that file just fine, with LANG=en_US.utf8.

What locale do you use? Can you check if you have unrar or unrar-free?
Comment 2 Mau 2011-05-06 08:29:03 UTC
(In reply to comment #1)
> I was able to extract that file just fine, with LANG=en_US.utf8.
> 
> What locale do you use? 

LANG=ca_ES.UTF-8


> Can you check if you have unrar or unrar-free?

ii  unrar-free                           1:0.0.1+cvs20071127-1

If I try to extract it with unrar:

#unrar-free --extract-no-paths Ingles2010.rar 

unrar 0.0.1  Copyright (C) 2004  Ben Asselstine, Jeroen Dekkers
Extracting from /tmp/Ingles2010.rar
Extracting  Ingl�s/IN_NA_PDF/IN_EO_NA_PDF/FICHA 3.pdf                 Failed
...

It seems that the problem is with the name of the directory 'Ingl�s'.
Comment 3 Raphael Kubo da Costa 2011-05-06 15:20:25 UTC
Thanks. This is actually a problem with Ark and unrar-free which was fixed in KDE SC 4.6.0.

The problem with the directory being listed with wrong characters for accents is in unrar(-free) itself, and shouldn't crash Ark.

Thanks for the report.

*** This bug has been marked as a duplicate of bug 243273 ***