| Summary: | calligraconverter hangs when converting ora to png | ||
|---|---|---|---|
| Product: | [Applications] krita | Reporter: | Halla Rempt <halla> |
| Component: | File formats | Assignee: | Krita Bugs <krita-bugs-null> |
| Status: | RESOLVED WAITINGFORINFO | ||
| Severity: | normal | CC: | cberger, dimula73 |
| Priority: | NOR | ||
| Version First Reported In: | unspecified | ||
| Target Milestone: | --- | ||
| Platform: | Unlisted Binaries | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
| Attachments: | test ora file | ||
|
Description
Halla Rempt
2011-11-05 15:39:06 UTC
Created attachment 65260 [details]
test ora file
It is a bit weird, I get a lock with one thread: (or maybe it is a mutex that can't be taken several time by one thread).
#0 pthread_cond_wait@@GLIBC_2.3.2 ()
at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1 0x00007ffff282109b in wait (time=18446744073709551615, this=0x87cdde0)
at thread/qwaitcondition_unix.cpp:88
#2 QWaitCondition::wait (this=<optimized out>, mutex=0x87cdca0,
time=18446744073709551615) at thread/qwaitcondition_unix.cpp:160
#3 0x00007ffff2814fe1 in QThreadPoolPrivate::waitForDone (this=0x87cdc10)
at concurrent/qthreadpool.cpp:295
#4 0x00007ffff281647d in QThreadPool::waitForDone (this=<optimized out>)
at concurrent/qthreadpool.cpp:616
#5 0x00007fffe12bc251 in KisUpdateScheduler::fullRefresh (this=0x87cd380, root=...,
rc=<optimized out>, cropRect=<optimized out>)
at /home/cyrille/Projects/kde4/src/calligra/krita/image/kis_update_scheduler.cpp:150
#6 0x00007fffe12cb4f6 in KisImage::refreshGraph (this=0x771a60, root=..., rc=...,
cropRect=...)
at /home/cyrille/Projects/kde4/src/calligra/krita/image/kis_image.cc:1269
#7 0x00007fffe12cb5e9 in KisImage::refreshGraph (this=0x771a60, root=...)
at /home/cyrille/Projects/kde4/src/calligra/krita/image/kis_image.cc:1261
#8 0x00007fffbdc78eb7 in KisPNGExport::convert (this=<optimized out>, from=...,
to=<optimized out>)
at /home/cyrille/Projects/kde4/src/calligra/krita/plugins/formats/png/kis_png_export.cc:89
#9 0x00007ffff7b31176 in CalligraFilter::ChainLink::invokeFilter (this=0x797e20,
parentChainLink=0x0)
at /home/cyrille/Projects/kde4/src/calligra/libs/main/KoFilterChainLink.cpp:90
#10 0x00007ffff7b27589 in KoFilterChain::invokeChain (this=0x7983d0)
at /home/cyrille/Projects/kde4/src/calligra/libs/main/KoFilterChain.cpp:94
#11 0x00007ffff7b23f61 in KoFilterManager::exportDocument (this=0x826cb0,
url=<optimized out>, mimeType=...)
at /home/cyrille/Projects/kde4/src/calligra/libs/main/KoFilterManager.cpp:243
#12 0x0000000000404bd5 in convert (uIn=..., inputFormat=..., uOut=...,
outputFormat=..., batch=false)
at /home/cyrille/Projects/kde4/src/calligra/tools/converter/calligraconverter.cpp:83
#13 0x0000000000403cc9 in main (argc=3, argv=0x7fffffffdf18)
at /home/cyrille/Projects/kde4/src/calligra/tools/converter/calligraconverter.cpp:160
(gdb) info threads
Id Target Id Frame
* 1 LWP 17344 "calligraconvert" pthread_cond_wait@@GLIBC_2.3.2 ()
at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
Here's the output of thread apply all bt:
(gdb) thread apply all bt
Thread 5 (Thread 0x7fffc56b1700 (LWP 6453)):
#0 0x00007ffff25736f9 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1 0x00007ffff27ffb22 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib64/libQtCore.so.4
#2 0x00007ffff27f4458 in ?? () from /usr/lib64/libQtCore.so.4
#3 0x00007ffff27ff4d5 in ?? () from /usr/lib64/libQtCore.so.4
#4 0x00007ffff256ea3f in start_thread () from /lib64/libpthread.so.0
#5 0x00007ffff18e166d in clone () from /lib64/libc.so.6
#6 0x0000000000000000 in ?? ()
Thread 4 (Thread 0x7fffc5eb2700 (LWP 6452)):
#0 0x00007ffff257338c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1 0x00007ffff27ffbbb in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib64/libQtCore.so.4
#2 0x00007ffff27fc4c5 in QSemaphore::acquire(int) () from /usr/lib64/libQtCore.so.4
#3 0x00007ffff28fd05f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/libQtCore.so.4
#4 0x00007fffe289c78e in KisImageSignalRouter::__sigNotification (this=<value optimized out>, _t1=SizeChangedSignal)
at /home/boud/kde/build/calligra/krita/image/moc_kis_image_signal_router.cpp:157
#5 0x00007fffe294b902 in KisImageResizeCommand::redo (this=0x59a2aa0)
at /home/boud/kde/src/calligra/krita/image/commands_new/kis_image_resize_command.cpp:38
#6 0x00007fffe29e3a6d in KisStrokeStrategyUndoCommandBased::doStrokeCallback (this=0x5281c50, data=<value optimized out>)
at /home/boud/kde/src/calligra/krita/image/kis_stroke_strategy_undo_command_based.cpp:96
#7 0x00007fffe289f7ab in run (this=0x43e2c50)
at /home/boud/kde/build/calligra/krita/image/../../../../src/calligra/krita/image/kis_stroke_job.h:39
#8 KisUpdateJobItem::run (this=0x43e2c50)
at /home/boud/kde/build/calligra/krita/image/../../../../src/calligra/krita/image/kis_update_job_item.h:59
#9 0x00007ffff27f43c8 in ?? () from /usr/lib64/libQtCore.so.4
#10 0x00007ffff27ff4d5 in ?? () from /usr/lib64/libQtCore.so.4
#11 0x00007ffff256ea3f in start_thread () from /lib64/libpthread.so.0
#12 0x00007ffff18e166d in clone () from /lib64/libc.so.6
#13 0x0000000000000000 in ?? ()
Thread 3 (Thread 0x7fffc66b3700 (LWP 6449)):
#0 0x00007ffff257338c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1 0x00007ffff27ffbbb in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib64/libQtCore.so.4
#2 0x00007ffff27fc6f9 in QSemaphore::tryAcquire(int, int) () from /usr/lib64/libQtCore.so.4
#3 0x00007fffe28dca2a in KisTileDataSwapper::run (this=0x43fbca8)
at /home/boud/kde/src/calligra/krita/image/tiles3/swap/kis_tile_data_swapper.cpp:92
---Type <return> to continue, or q <return> to quit---
#4 0x00007ffff27ff4d5 in ?? () from /usr/lib64/libQtCore.so.4
#5 0x00007ffff256ea3f in start_thread () from /lib64/libpthread.so.0
#6 0x00007ffff18e166d in clone () from /lib64/libc.so.6
#7 0x0000000000000000 in ?? ()
Thread 2 (Thread 0x7fffc6eb4700 (LWP 6448)):
#0 0x00007ffff257338c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1 0x00007ffff27ffbbb in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib64/libQtCore.so.4
#2 0x00007ffff27fc4c5 in QSemaphore::acquire(int) () from /usr/lib64/libQtCore.so.4
#3 0x00007fffe28a445e in KisTileDataPooler::waitForWork (this=0x43fbc70)
at /home/boud/kde/src/calligra/krita/image/tiles3/kis_tile_data_pooler.cc:162
#4 0x00007fffe28a4bcc in KisTileDataPooler::run (this=0x43fbc70)
at /home/boud/kde/src/calligra/krita/image/tiles3/kis_tile_data_pooler.cc:184
#5 0x00007ffff27ff4d5 in ?? () from /usr/lib64/libQtCore.so.4
#6 0x00007ffff256ea3f in start_thread () from /lib64/libpthread.so.0
#7 0x00007ffff18e166d in clone () from /lib64/libc.so.6
#8 0x0000000000000000 in ?? ()
Thread 1 (Thread 0x7ffff7f9f760 (LWP 6343)):
#0 0x00007ffff257338c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1 0x00007ffff27ffbbb in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib64/libQtCore.so.4
#2 0x00007ffff27f3a31 in ?? () from /usr/lib64/libQtCore.so.4
#3 0x00007ffff27f4a0d in QThreadPool::waitForDone() () from /usr/lib64/libQtCore.so.4
#4 0x00007fffe29f1be2 in KisUpdateScheduler::fullRefresh (this=0x452e510, root=Cannot access memory at address 0x7fff000004bf
)
at /home/boud/kde/src/calligra/krita/image/kis_update_scheduler.cpp:150
#5 0x00007fffe2a03bb3 in KisImage::refreshGraph (this=0xdfa6f0, root=..., rc=..., cropRect=...)
at /home/boud/kde/src/calligra/krita/image/kis_image.cc:1286
#6 0x00007fffe2a03cef in KisImage::refreshGraph (this=0xdfa6f0, root=<value optimized out>)
at /home/boud/kde/src/calligra/krita/image/kis_image.cc:1278
#7 0x00007fffc4ca662a in KisPNGExport::convert (this=<value optimized out>, from=<value optimized out>,
to=<value optimized out>) at /home/boud/kde/src/calligra/krita/plugins/formats/png/kis_png_export.cc:89
#8 0x00007ffff7b34828 in CalligraFilter::ChainLink::invokeFilter (this=0x7dc6e0, parentChainLink=0x0)
at /home/boud/kde/src/calligra/libs/main/KoFilterChainLink.cpp:90
#9 0x00007ffff7b2b7e9 in KoFilterChain::invokeChain (this=0x7dbdd0)
at /home/boud/kde/src/calligra/libs/main/KoFilterChain.cpp:94
#10 0x00007ffff7b286e9 in KoFilterManager::exportDocument (this=<value optimized out>, url=<value optimized out>, mimeType=
...) at /home/boud/kde/src/calligra/libs/main/KoFilterManager.cpp:243
---Type <return> to continue, or q <return> to quit---
#11 0x000000000040390f in convert (uIn=..., inputFormat=..., uOut=..., outputFormat=<value optimized out>,
batch=<value optimized out>) at /home/boud/kde/src/calligra/tools/converter/calligraconverter.cpp:83
#12 0x00000000004050bc in main (argc=0, argv=0x7fffffffd070)
at /home/boud/kde/src/calligra/tools/converter/calligraconverter.cpp:160
Some test data:
13:50:44 < deevad> boud: calligraconverter hang-on with ora > png ; but ora > jpg works , jpg > ora works too :) and jpg >
png and xcf > png works too
Git commit 52f13ac5fa6aed9149a9ae4a85788660440309e3 by Boudewijn Rempt. Committed on 16/11/2011 at 14:24. Pushed by rempt into branch 'master'. Make ora work with calligraconverter The ora importer used KisImage::resize to resize images after loading all the layers. This broke when KisImage::resize was ported to the strokes framework and actually became an asynch crop+resize implementation. Somehow, the resize never finished when run in batch mode, which meant that subsequently the png export couldn't even start. CCBUG:285827 M +14 -12 krita/ui/openrastertk/kis_open_raster_stack_load_visitor.cpp http://commits.kde.org/calligra/52f13ac5fa6aed9149a9ae4a85788660440309e3 Git commit e748a1321f797dfa9c286d43aeca69ffd88f89ec by Dmitry Kazakov. Committed on 20/11/2011 at 11:20. Pushed by dkazakov into branch 'master'. Restored synchronization during image loading Looks like the previous fix by boud for ora has fixed the problem. I tested opening and conversion of .ora, .kra and it works fine. CCBUG:285827 M +1 -1 krita/image/kis_image.cc http://commits.kde.org/calligra/e748a1321f797dfa9c286d43aeca69ffd88f89ec Looks like the bug is fixed now, could you test please? |