Summary: | Crash in Qt drag&drop code | ||
---|---|---|---|
Product: | [Applications] ark | Reporter: | Octavian Voicu <octavian.voicu> |
Component: | general | Assignee: | Harald Hvaal <metellius> |
Status: | RESOLVED DUPLICATE | ||
Severity: | crash | CC: | andresbajotierra, markotahal, rakuco |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Unlisted Binaries | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
Octavian Voicu
2009-08-02 14:37:07 UTC
Are you using Desktop Compositing/ Effects ? This is probably related to bug 200583 / bug 192270. Thanks i can reproduce this bug too. kde 4.3, archlinux, kernel 2.6.30.4, Qt 4.5.2 steps to reproduce: open an archive in Ark, select file and drag it, then you must alt+tab(!?) somewhere, then drop it and ark crashes. Please confirm if you have desktop effects enabled. yes, i have compositing + desk effects (flip switch) on ok, i give up :) i was trying to proof its connected with desktop effects/compositing.. did some tests: 1: my default- effects+composit. on --crashes 2: no effects -- no crash 3: compos. off -- no crashes // finally 4: both on: -- no crashes! ( :( ) Please someone else test. I suspect if it might be sth w/ memory/buffers?? Merging with bug 200583. @Marek: thanks for your findings. Thanks for your replies. This looks like a duplicate of bug 200583, so I'm marking it as such. Since it has happened at least to Ark and Dolphin, the issue seems to be a bit lower in the stack. *** This bug has been marked as a duplicate of bug 200583 *** I also have compositing+desktop effects enabled and use cover switch. Bug doesn't occur with no effects, so it's somehow caused by the switching effect. Steps to reliably reproduce the bug: 1. Activate composting + Cover Switch effect 2. Open an archive with Ark 3. Start dragging a file from the Ark window and keep the button pressed 4. Press Alt and keep it pressed 5. Tap the Alt key until the Ark window is just to the left of the central window in the Cover Switch effect (you should have at least 3-4 open windows on current desktop) 6. Move mouse in the center of the Ark window, while still keeping the mouse button and Alt key pressed 7. Release the Alt key and *immediately* drag the mouse upwards; Ark should crash Something similar can be used to cause a crash for the Flip Switch effect. Other effects seem unaffected (probably because they don't really move windows). Octavian, can you please post these steps on the page for bug 192270? This bug and some others have been marked as duplicates of it, so all comments and patches related to this issue should be reported there in order to be likely to be read. Thanks for your work on this. I still have doubts that this bug is identical to bug 192270, although they are caused by the same actions. The stack trace is quite different. The following analysis only applies to the stack trace in this bug. Recompiled libQtGui with debug enabled, executed ark through gdb and reproduced the bug. Some commands in gdb: #0 0x00007f1f6d5cb4af in QWidget::testAttribute_helper (this=0xa8a240, attribute=Qt::WA_Hover) at kernel/qwidget.cpp:9976 9976 const int int_off = x / (8*sizeof(uint)); 9977 return (d->high_attributes[int_off] & (1<<(x-(int_off*8*sizeof(uint))))); (gdb) print *this $4 = {<QObject> = {_vptr.QObject = 0x13a2f60, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x7f1f6ca9f8c0 "QObject", data = 0x7f1f6ca9f960, extradata = 0x7f1f6ccf4040}}, d_ptr = 0x10, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x7f1f6caa9140 "Qt", data = 0x7f1f6caac020, extradata = 0x0}}}, <QPaintDevice> = {_vptr.QPaintDevice = 0xa8a25a, painters = 9856}, static staticMetaObject = {d = {superdata = 0x7f1f6ccf4020, stringdata = 0x7f1f6dbb6ea0 "QWidget", data = 0x7f1f6dbb7340, extradata = 0x0}}, data = 0x6e006100480064} As you can see above, the widget (this) has an invalid d_ptr (0x10) so that accessing d->high_attributes (d is an alias for d_ptr, I think) yields a SEGV. I'm still researching how d_ptr got to be invalid. The widget comes from here: #5 0x00007f1f6d5f9b19 in QETWidget::translateMouseEvent (this=0xa8a240, event=<value optimized out>) at kernel/qapplication_x11.cpp:4409 QWidget *widget = QApplicationPrivate::pickMouseReceiver(this, globalPos, pos, type, buttons, qt_button_down, alienWidget); // ... QApplicationPrivate::sendMouseEvent(widget, &e, alienWidget, this, &qt_button_down, qt_last_mouse_receiver); This is the point that is common to both stack traces (for this bug and for the duplicate one), so the cause must be here or somewhere higher up the stack. |