Version: 1.5.90 (using KDE KDE 3.5.4) Installed from: SuSE RPMs OS: Linux To reproduce: 1. Open a flat (jpg/png) image, and select a region. 2. Use Copy and paste to create new layer. 3. Add new group layer. 4. Drag and drop the layer from 2 into the group layer from 3. 5. Select layer from 2. 6. Select a region of layer from 2 7. Copy and paste. Krita tries to create new paste layer in group layer from 3, but crashes. Note that if before performing the paste in 7 you switch to a layer not in a group layer, the crash does not occur. This has crashed every time so far. Normally just crashes krita, but I have had one instance where it killed the X server. Expected Behaviour: Not to crash ;-) Backtrace: System configuration startup check disabled. Using host libthread_db library "/lib/libthread_db.so.1". [Thread debugging using libthread_db enabled] [New Thread -1231104336 (LWP 5987)] [KCrash handler] #6 0xffffe410 in __kernel_vsyscall () #7 0xb6f897d0 in raise () from /lib/libc.so.6 #8 0xb6f8aea3 in abort () from /lib/libc.so.6 #9 0xb6fbef8b in __libc_message () from /lib/libc.so.6 #10 0xb6fc4911 in malloc_printerr () from /lib/libc.so.6 #11 0xb6fc5f84 in free () from /lib/libc.so.6 #12 0xb7132e51 in operator delete () from /usr/lib/libstdc++.so.6 #13 0xb7dcf828 in KShared::~KShared () from /opt/kde3/lib/libkio.so.4 #14 0xb6098cd4 in KisSelectionManager::qt_invoke () from /opt/kde3/lib/libkritaui.so.1 #15 0xb7500edd in QObject::activate_signal () from /usr/lib/qt3/lib/libqt-mt.so.3 #16 0xb7501b3d in QObject::activate_signal () from /usr/lib/qt3/lib/libqt-mt.so.3 #17 0xb6db2a69 in KAction::activated () from /opt/kde3/lib/libkdeui.so.4 #18 0xb6de7ea2 in KAction::slotActivated () from /opt/kde3/lib/libkdeui.so.4 #19 0xb6ed53df in KAction::qt_invoke () from /opt/kde3/lib/libkdeui.so.4 #20 0xb7500edd in QObject::activate_signal () from /usr/lib/qt3/lib/libqt-mt.so.3 #21 0xb7501b3d in QObject::activate_signal () from /usr/lib/qt3/lib/libqt-mt.so.3 #22 0xb7a43b29 in KAccelPrivate::menuItemActivated () from /opt/kde3/lib/libkdecore.so.4 #23 0xb7a939d7 in KAccelPrivate::emitActivatedSignal () from /opt/kde3/lib/libkdecore.so.4 #24 0xb7b1ee39 in KAccelPrivate::eventFilter () from /opt/kde3/lib/libkdecore.so.4 #25 0xb75007dc in QObject::activate_filters () from /usr/lib/qt3/lib/libqt-mt.so.3 #26 0xb750084b in QObject::event () from /usr/lib/qt3/lib/libqt-mt.so.3 #27 0xb753988c in QWidget::event () from /usr/lib/qt3/lib/libqt-mt.so.3 #28 0xb74a1ec7 in QApplication::internalNotify () from /usr/lib/qt3/lib/libqt-mt.so.3 #29 0xb74a3222 in QApplication::notify () from /usr/lib/qt3/lib/libqt-mt.so.3 #30 0xb7b29963 in KApplication::notify () from /opt/kde3/lib/libkdecore.so.4 #31 0xb7a9f722 in KAccelEventHandler::x11Event () from /opt/kde3/lib/libkdecore.so.4 #32 0xb7b277ab in KApplication::x11EventFilter () from /opt/kde3/lib/libkdecore.so.4 #33 0xb7430dc4 in qt_x11EventFilter () from /usr/lib/qt3/lib/libqt-mt.so.3 #34 0xb7440733 in QApplication::x11ProcessEvent () from /usr/lib/qt3/lib/libqt-mt.so.3 #35 0xb74515ea in QEventLoop::processEvents () from /usr/lib/qt3/lib/libqt-mt.so.3 #36 0xb74b8ce8 in QEventLoop::enterLoop () from /usr/lib/qt3/lib/libqt-mt.so.3 #37 0xb74b8b7e in QEventLoop::exec () from /usr/lib/qt3/lib/libqt-mt.so.3 #38 0xb74a1a7f in QApplication::exec () from /usr/lib/qt3/lib/libqt-mt.so.3 #39 0xb727a0dd in kdemain () from /opt/kde3/lib/libkdeinit_krita.so #40 0xb727c534 in kdeinitmain () from /opt/kde3/lib/kde3/krita.so #41 0x0804e8cf in launch () #42 0x0804f15a in handle_launcher_request () #43 0x0804f4df in handle_requests () #44 0x0804feb1 in main ()
Hm, yes. Here's a bit of a stacktrace with line numbers: 0xb7cbb9a1 in raise () from /lib/tls/i686/cmov/libc.so.6 #8 0xb7cbd2b9 in abort () from /lib/tls/i686/cmov/libc.so.6 #9 0xb7cef87a in __fsetlocking () from /lib/tls/i686/cmov/libc.so.6 #10 0xb7cf5fd4 in malloc_usable_size () from /lib/tls/i686/cmov/libc.so.6 #11 0xb7cf634a in free () from /lib/tls/i686/cmov/libc.so.6 #12 0xb7e978b1 in operator delete () from /usr/lib/libstdc++.so.6 #13 0xb7b6a594 in KShared::~KShared () from /usr/lib/libkio.so.4 #14 0xb607e9fa in KisSelectionManager::qt_invoke () at /scratch/koffice/1.6/koffice/krita/ui/layerlist.cpp:269 #15 0xb7203eb9 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3 #16 0xb7204954 in QObject::activate_signal () from /usr/lib/libqt-mt.so.
Still occuring in 1.6.0, though I'm a bit confused as the website still has latest as RC1 (1.5.92) I don't want to sound like a whiner, but shouldn't something this basic and easily reproducable be considered a blocker on even a release candidate, never mind a final release?
1.6.0 is still not release :) but no, it's not easily reproductible doesn't mean blocker.
> krita --version Qt: 3.3.6 KDE: 3.5.4 "release 88.1" Krita: 1.6.0 OK, so someone, somewhere is obviously jumping the gun. Maybe I worded it wrong. It was more the outcome, and basic-ness of the operation that led to it, that I thought would make it a blocker. An application crash on something as mundane as pasting from the clipboard into a group layer would be in definate need of fixing if I had anything to do with it. Unfortunately, I don't have anything to do with it bar the reporting, so I'll slink back to my corner and be quiet now. 'pologies for the disturbance, guv'nor, won't 'appen again. <doffs cap>
I think there was some grammar missing in Cyrille's reply... The problem with this bug is that it isn't easy to solve: I was able to reproduce it myself, but the place where it seems to happen is really weird. And since Cyrille is really busy doing the 1.6 release today, and I'm working really hard on 2.0 (which doesn't have the code where the crash happens anymore), we had to -- reluctantly -- decide we couldn't fix it in time of the release. Which doesn't mean that your clear and helpful bug-reports aren't appreciated!
SVN commit 599782 by berger: at least don't crash, but the copy don't happen CCBUG:133124 M +6 -3 kis_selection_manager.cc --- branches/koffice/1.6/koffice/krita/ui/kis_selection_manager.cc #599781:599782 @@ -447,9 +447,12 @@ if (dlg->exec() == QDialog::Accepted) layer->convertTo(img->colorSpace()); */ - img->addLayer(layer, img->rootLayer(), img->activeLayer()); - - return layer; + if(img->addLayer(layer, img->rootLayer(), img->activeLayer())) + { + return layer; + } else { + return 0; + } } return 0; }
SVN commit 599784 by berger: even if the crash doesn't occur in trunk, you lose nothing at been cleaner CCBUG:133124 M +2 -1 kis_selection_manager.cc --- trunk/koffice/krita/ui/kis_selection_manager.cc #599783:599784 @@ -452,7 +452,8 @@ if (dlg->exec() == QDialog::Accepted) layer->convertTo(img->colorSpace()); */ - img->addLayer(KisLayerSP(layer), img->rootLayer(), img->activeLayer()); + if(!img->addLayer(KisLayerSP(layer), img->rootLayer(), img->activeLayer())) + { return 0; } return KisLayerSP(layer); }
SVN commit 599787 by berger: and now be able to copy CCBUG:133124 M +1 -1 kis_selection_manager.cc --- trunk/koffice/krita/ui/kis_selection_manager.cc #599786:599787 @@ -452,7 +452,7 @@ if (dlg->exec() == QDialog::Accepted) layer->convertTo(img->colorSpace()); */ - if(!img->addLayer(KisLayerSP(layer), img->rootLayer(), img->activeLayer())) + if(!img->addLayer(KisLayerSP(layer), img->activeLayer()->parent(), img->activeLayer())) { return 0; } return KisLayerSP(layer);
SVN commit 599788 by berger: and now be able to copy BUG:133124 M +1 -1 kis_selection_manager.cc --- branches/koffice/1.6/koffice/krita/ui/kis_selection_manager.cc #599787:599788 @@ -447,7 +447,7 @@ if (dlg->exec() == QDialog::Accepted) layer->convertTo(img->colorSpace()); */ - if(img->addLayer(layer, img->rootLayer(), img->activeLayer())) + if(img->addLayer(layer, img->activeLayer()->parent(), img->activeLayer())) { return layer; } else {
You need to log in before you can comment on or make changes to this bug.