| Summary: | skanlite crashes when removing last area to scan | ||
|---|---|---|---|
| Product: | [Applications] Skanlite | Reporter: | susundberg |
| Component: | general | Assignee: | Kåre Särs <kare.sars> |
| Status: | RESOLVED WORKSFORME | ||
| Severity: | crash | CC: | adamcrume, erik6350 |
| Priority: | NOR | Keywords: | investigated, triaged |
| Version First Reported In: | unspecified | ||
| Target Milestone: | --- | ||
| Platform: | Ubuntu | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
| Attachments: | Image showing the status before removing areas | ||
|
Description
susundberg
2010-12-16 16:14:24 UTC
That is a problem :( I can not reproduce the problem here. I have Qt 4.7.0 A workaround until I find the problem is the clear selections action you can find from the preview context-menu. Created attachment 54851 [details]
Image showing the status before removing areas
Hello! And thanks for quick reply! I tried this again, and even after boot etc the bug happens every time Here is more detail: - Start skanlite from command line - Preview scan ( in my scan target there is 3 larger and 1 small area) - Set scan mode to gray - Set scan resolution to 300DPI (from max 600DPI) - Remove other than smallest area - Zoom in - Remove last => crash If you do the same, but first add the real target area (whole upper page) and then remove the last no crash occurs. See attached image. Oh, i just found out (after your comment) that there exists right-click content menu. That seems to work ok. Another feature i would love to see is to somehow disable the automatic detection by default -- now i have to every time unselect the selected areas before scanning (or am i just missing something here). Thanks! Still the best lite-scanner software i have found! *** Bug 266557 has been marked as a duplicate of this bug. *** As bug 266557 has the same problem with an older Qt that Qt theory fails :( I still can not reproduce... What scanners/backends do you have? The zoom in seems to be essential there -- i tried to reproduce with no luck until i zoomed in. Here is valgrind output: QImage::pixel: coordinate (65,877) out of range QImage::pixel: coordinate (66,877) out of range Skanlite(2247)/kio (Slave) KIO::Slave::kill: killing slave pid 2380 ( "file://" ) Skanlite(2247)/kio (Slave) KIO::Slave::kill: killing slave pid 2379 ( "trash://" ) ==2247== Invalid read of size 8 ==2247== at 0x655D13B: QGraphicsSceneFindItemBspTreeVisitor::visit(QList<QGraphicsItem*>*) (qscopedpointer.h:113) ==2247== by 0x655BFFF: QGraphicsSceneBspTree::climbTree(QGraphicsSceneBspTreeVisitor*, QRectF const&, int) const (qgraphicsscene_bsp.cpp:261) ==2247== by 0x655C09F: QGraphicsSceneBspTree::climbTree(QGraphicsSceneBspTreeVisitor*, QRectF const&, int) const (qgraphicsscene_bsp.cpp:252) ==2247== by 0x655BFFF: QGraphicsSceneBspTree::climbTree(QGraphicsSceneBspTreeVisitor*, QRectF const&, int) const (qgraphicsscene_bsp.cpp:261) ==2247== by 0x655C09F: QGraphicsSceneBspTree::climbTree(QGraphicsSceneBspTreeVisitor*, QRectF const&, int) const (qgraphicsscene_bsp.cpp:252) ==2247== by 0x655C76D: QGraphicsSceneBspTree::items(QRectF const&, bool) const (qgraphicsscene_bsp.cpp:154) ==2247== by 0x655F600: QGraphicsSceneBspTreeIndexPrivate::estimateItems(QRectF const&, Qt::SortOrder, bool) (qgraphicsscenebsptreeindex.cpp:387) ==2247== by 0x655F7C2: QGraphicsSceneBspTreeIndex::estimateTopLevelItems(QRectF const&, Qt::SortOrder) const (qgraphicsscenebsptreeindex.cpp:540) ==2247== by 0x6553169: QGraphicsScenePrivate::drawItems(QPainter*, QTransform const*, QRegion*, QWidget*) (qgraphicsscene.cpp:4733) ==2247== by 0x6570031: QGraphicsView::paintEvent(QPaintEvent*) (qgraphicsview.cpp:3469) ==2247== by 0x5FA0F1D: QWidget::event(QEvent*) (qwidget.cpp:8346) ==2247== by 0x634FD05: QFrame::event(QEvent*) (qframe.cpp:557) ==2247== Address 0x1a519e08 is 8 bytes inside a block of size 24 free'd ==2247== at 0x4C26D7F: operator delete(void*) (vg_replace_malloc.c:387) ==2247== by 0x52EF9A8: ??? (in /usr/lib/libksane.so.0.2.0) ==2247== by 0x52FEDCD: ??? (in /usr/lib/libksane.so.0.2.0) ==2247== by 0x52FF42B: ??? (in /usr/lib/libksane.so.0.2.0) ==2247== by 0x706FC17: QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (qobject.cpp:3280) ==2247== by 0x65C2961: QAbstractButton::clicked(bool) (moc_qabstractbutton.cpp:206) ==2247== by 0x630DACD: QAbstractButtonPrivate::emitClicked() (qabstractbutton.cpp:546) ==2247== by 0x630F04A: QAbstractButtonPrivate::click() (qabstractbutton.cpp:539) ==2247== by 0x630F2BB: QAbstractButton::mouseReleaseEvent(QMouseEvent*) (qabstractbutton.cpp:1121) ==2247== by 0x5FA0F6B: QWidget::event(QEvent*) (qwidget.cpp:8200) ==2247== by 0x5F50043: QApplicationPrivate::notify_helper(QObject*, QEvent*) (qapplication.cpp:4445) ==2247== by 0x5F55382: QApplication::notify(QObject*, QEvent*) (qapplication.cpp:4006) ==2247== ==2247== Invalid read of size 8 ==2247== at 0x655D13F: QGraphicsSceneFindItemBspTreeVisitor::visit(QList<QGraphicsItem*>*) (qgraphicsscene_bsp.cpp:79) ==2247== by 0x655BFFF: QGraphicsSceneBspTree::climbTree(QGraphicsSceneBspTreeVisitor*, QRectF const&, int) const (qgraphicsscene_bsp.cpp:261) ==2247== by 0x655C09F: QGraphicsSceneBspTree::climbTree(QGraphicsSceneBspTreeVisitor*, QRectF const&, int) const (qgraphicsscene_bsp.cpp:252) ==2247== by 0x655BFFF: QGraphicsSceneBspTree::climbTree(QGraphicsSceneBspTreeVisitor*, QRectF const&, int) const (qgraphicsscene_bsp.cpp:261) ==2247== by 0x655C09F: QGraphicsSceneBspTree::climbTree(QGraphicsSceneBspTreeVisitor*, QRectF const&, int) const (qgraphicsscene_bsp.cpp:252) ==2247== by 0x655C76D: QGraphicsSceneBspTree::items(QRectF const&, bool) const (qgraphicsscene_bsp.cpp:154) ==2247== by 0x655F600: QGraphicsSceneBspTreeIndexPrivate::estimateItems(QRectF const&, Qt::SortOrder, bool) (qgraphicsscenebsptreeindex.cpp:387) ==2247== by 0x655F7C2: QGraphicsSceneBspTreeIndex::estimateTopLevelItems(QRectF const&, Qt::SortOrder) const (qgraphicsscenebsptreeindex.cpp:540) ==2247== by 0x6553169: QGraphicsScenePrivate::drawItems(QPainter*, QTransform const*, QRegion*, QWidget*) (qgraphicsscene.cpp:4733) ==2247== by 0x6570031: QGraphicsView::paintEvent(QPaintEvent*) (qgraphicsview.cpp:3469) ==2247== by 0x5FA0F1D: QWidget::event(QEvent*) (qwidget.cpp:8346) ==2247== by 0x634FD05: QFrame::event(QEvent*) (qframe.cpp:557) ==2247== Address 0x80 is not stack'd, malloc'd or (recently) free'd ==2247== KCrash: Application 'skanlite' crashing... QSocketNotifier: Invalid socket 10 and type 'Read', disabling... ==2247== Thread 2: ==2247== Invalid read of size 2 ==2247== at 0x70854C7: socketNotifierSourceCheck(_GSource*) (qeventdispatcher_glib.cpp:92) ==2247== by 0xAE568A3: g_main_context_check (in /lib/libglib-2.0.so.0.2800.0) ==2247== by 0xAE57191: ??? (in /lib/libglib-2.0.so.0.2800.0) ==2247== by 0xAE57698: g_main_context_iteration (in /lib/libglib-2.0.so.0.2800.0) ==2247== by 0x7085AA5: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventdispatcher_glib.cpp:417) ==2247== by 0x7059F11: QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:149) ==2247== by 0x705A14B: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:201) ==2247== by 0x6F71223: QThread::exec() (qthread.cpp:490) ==2247== by 0x703C46E: QInotifyFileSystemWatcherEngine::run() (qfilesystemwatcher_inotify.cpp:248) ==2247== by 0x6F739DD: QThreadPrivate::start(void*) (qthread_unix.cpp:285) ==2247== by 0xA9E3D8B: start_thread (pthread_create.c:304) ==2247== by 0x777539C: clone (clone.S:112) ==2247== Address 0x125e9eb6 is 6 bytes inside a block of size 16 free'd ==2247== at 0x4C26D7F: operator delete(void*) (vg_replace_malloc.c:387) ==2247== by 0x70854C6: socketNotifierSourceCheck(_GSource*) (qeventdispatcher_glib.cpp:92) ==2247== by 0xAE568A3: g_main_context_check (in /lib/libglib-2.0.so.0.2800.0) ==2247== by 0xAE57191: ??? (in /lib/libglib-2.0.so.0.2800.0) ==2247== by 0xAE57698: g_main_context_iteration (in /lib/libglib-2.0.so.0.2800.0) ==2247== by 0x7085AA5: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventdispatcher_glib.cpp:417) ==2247== by 0x7059F11: QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:149) ==2247== by 0x705A14B: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:201) ==2247== by 0x6F71223: QThread::exec() (qthread.cpp:490) ==2247== by 0x703C46E: QInotifyFileSystemWatcherEngine::run() (qfilesystemwatcher_inotify.cpp:248) ==2247== by 0x6F739DD: QThreadPrivate::start(void*) (qthread_unix.cpp:285) ==2247== by 0xA9E3D8B: start_thread (pthread_create.c:304) ==2247== ==2247== Invalid read of size 2 ==2247== at 0x70854CB: socketNotifierSourceCheck(_GSource*) (qeventdispatcher_glib.cpp:83) ==2247== by 0xAE568A3: g_main_context_check (in /lib/libglib-2.0.so.0.2800.0) ==2247== by 0xAE57191: ??? (in /lib/libglib-2.0.so.0.2800.0) ==2247== by 0xAE57698: g_main_context_iteration (in /lib/libglib-2.0.so.0.2800.0) ==2247== by 0x7085AA5: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventdispatcher_glib.cpp:417) ==2247== by 0x7059F11: QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:149) ==2247== by 0x705A14B: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:201) ==2247== by 0x6F71223: QThread::exec() (qthread.cpp:490) ==2247== by 0x703C46E: QInotifyFileSystemWatcherEngine::run() (qfilesystemwatcher_inotify.cpp:248) ==2247== by 0x6F739DD: QThreadPrivate::start(void*) (qthread_unix.cpp:285) ==2247== by 0xA9E3D8B: start_thread (pthread_create.c:304) ==2247== by 0x777539C: clone (clone.S:112) ==2247== Address 0x125e9eb4 is 4 bytes inside a block of size 16 free'd ==2247== at 0x4C26D7F: operator delete(void*) (vg_replace_malloc.c:387) ==2247== by 0x70854C6: socketNotifierSourceCheck(_GSource*) (qeventdispatcher_glib.cpp:92) ==2247== by 0xAE568A3: g_main_context_check (in /lib/libglib-2.0.so.0.2800.0) ==2247== by 0xAE57191: ??? (in /lib/libglib-2.0.so.0.2800.0) ==2247== by 0xAE57698: g_main_context_iteration (in /lib/libglib-2.0.so.0.2800.0) ==2247== by 0x7085AA5: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventdispatcher_glib.cpp:417) ==2247== by 0x7059F11: QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:149) ==2247== by 0x705A14B: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (qeventloop.cpp:201) ==2247== by 0x6F71223: QThread::exec() (qthread.cpp:490) ==2247== by 0x703C46E: QInotifyFileSystemWatcherEngine::run() (qfilesystemwatcher_inotify.cpp:248) ==2247== by 0x6F739DD: QThreadPrivate::start(void*) (qthread_unix.cpp:285) ==2247== by 0xA9E3D8B: start_thread (pthread_create.c:304) ==2247== KCrash: Attempting to start /usr/lib/kde4/libexec/drkonqi from kdeinit sock_file=/home/sundberg/.kde/socket-hp-k64/kdeinit4__0 QSocketNotifier: Invalid socket 22 and type 'Read', disabling... [1]+ Stopped valgrind skanlite sundberg@hp-k64:~$ I have to take my words back. I tried to reproduce with debug symbols installed, but with no luck. Here is full valgrind stderr output: http://susundberg.pastebin.com/c35wQ2KL I am using printer + scanner HP Deskjet F380. Thanks for the Valgrind logs. I'm afraid I could not find any leads tho :( I was about to suggest to compile libksane and Skanlite, but if installing the debug symbols prevents the crash you will probably not be able to reproduce the crash with the compiled versions... There could be a binary compatibility problem... One other thing that you could test is to use the test backend, add selections and then remove them. Does that trigger the crash? 'skanlite -d test' will start Skanlite with the test backend. libsane-hpaio.so did have quite a lot of valgrind warnings... *** Bug 293406 has been marked as a duplicate of this bug. *** 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 set the bug status 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! Dear Bug Submitter, 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! |