Bug 264697 - dolphin freezes after dragging a Subversion folder to Places
Summary: dolphin freezes after dragging a Subversion folder to Places
Status: RESOLVED WORKSFORME
Alias: None
Product: dolphin
Classification: Applications
Component: panels: places (show other bugs)
Version: 1.6.1
Platform: Ubuntu Linux
: NOR crash
Target Milestone: ---
Assignee: Dolphin Bug Assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-01-29 00:16 UTC by Ivan D Vasin
Modified: 2013-06-26 20:26 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ivan D Vasin 2011-01-29 00:16:30 UTC
Version:           unspecified (using KDE 4.6.0) 
OS:                Linux



Reproducible: Always

Steps to Reproduce:
1. make the location bar editable.
2. enter a valid svn+ssh URL and press Enter.
3. drag the folder's icon from the location bar and drop it into a position in the Places panel.

Actual Results:  
Dolphin stops responding to input.  the mouse cursor remains as the dragging hand, and the glowing position placeholder bar remains in the Places panel.  the location bar's text cursor continues blinking.

Expected Results:  
the Subversion folder is added to the Places panel, similarly to other folders.

OS: Linux (x86_64) release 2.6.35-25-generic
Compiler: cc
Comment 1 Frank Reininghaus 2011-01-29 11:21:33 UTC
Thanks for the bug report. How do you actually enter an svn+ssh URL in the location bar? If I try this (URL starts with svn+ssh://), I get an error message "Invalid protocol".

It would be interesting to know where in the code it hangs. Could you this:

1. Close all Dolphin windows
2. Run Dolphin with "gdb --args dolphin --nofork"
3. Enter "run" in gdb
4. Reproduce the bug
5. Press Control+Z in the gdb window
6. Enter "bt" and paste the backtrace here

Thanks.
Comment 2 Ivan D Vasin 2011-03-07 17:19:10 UTC
it seems that kdesvn is handling the svn+ssh URL.  this is now with KDE 4.6.1, Dolphin 1.6.1, and kdesvn 1.5.4.

kdesvn generates a lot of unnecessary messages in the notification area while i type the URL:

  * after i type "svn+ssh://":
    * "To better debug SSH connection problems, remove the -q option from 'ssh' in the [tunnels] section of your Subversion configuration file", even though i removed the "-q" from /etc/subversion/config long ago
    * "Unknown host ''"
  * every time i add a path separator until i've entered a Subversion repository path:
    * "No repository found in 'svn+ssh://{path}'"

the first two messages seem to be inconsistent and mutually exclusive--sometimes one will display, sometimes the other, and sometimes neither; usually it's the first.  the third message is displayed every time as described.

when i finally enter a path to a Subversion folder in some repository, i can view and browse the contents with no apparent problem.  i perform kdesvn actions such as viewing Subversion logs, but they don't work:

  * attempting to view the log on a directory causes a progress bar to appear in the notification area that says "no running jobs", and it seems to hang there until i cancel it.  sometimes the job has no text if i expand the notification area, but sometimes it has text like:
      Source: svn+ssh://{path to the queried directory}
      Destination: /var/tmp/kdecache-...{some numbers}.0.{dirname}
  * attempting to view the log on a file triggers two successive warning dialogs named "SVN Error - kdesvn" with the text:
      Unable to open an ra_local session to URL
      Unable to open repository 'file:///var/tmp/kdecache-{username}/krun/{some numbers}.0.{filename}'
    followed by a dialog window named "kdesvn" with what appears to be an empty text area and two buttons, "OK" and "Cancel".  both buttons simply close the dialog.

in both situations, i can still operate Dolphin while kdesvn is misbehaving.

finally, returning to the original issue in this report, if i drag the location icon from the location bar to Places, i get similar behavior in the notification area as when i attempt to view the log on a directory, but Dolphin also hangs as in this bug's description.  canceling the empty job in the notification area works, but Dolphin remains hung until i kill it.


for what it's worth, here's my opinion of things that should be handled better here:

  * kdesvn actions should actually work from Dolphin.
  * even if kdesvn actions don't work from Dolphin, the small form of the notification area should display some text instead of "no running jobs".
  * even if kdesvn actions don't work from Dolphin, the large form of the notification area should always (instead of sometimes) display the source and destination files.  even better, it should indicate that the job is a kdesvn job.
  * even if kdesvn actions don't work from Dolphin, they should fail similarly, whether the target object is a directory or a file, instead of showing strange jobs for one and strange dialogs for the other.
  * even if kdesvn actions don't work from Dolphin, Dolphin shouldn't hang after dropping a location icon to Places.

i'm willing to split this into multiple bug reports if that's appropriate.  let me know which issues should be separated out, if any.


[slightly off-topic] by the way, i heard that Dolphin now has integrated Subversion browsing support.  how do i use it?  must i remove kdesvn?  does it support svn+ssh?


the backtrace from the hung Dolphin instance follows below.  i'm not sure how to get a backtrace of the notification area jobs or from the kdesvn dialogs, if they're relevant.  i'll happily provide them if someone instructs me.

#0  0x00007ffff78ad203 in __poll (fds=<value optimized out>, 
    nfds=<value optimized out>, timeout=676) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007fffeff79009 in g_main_context_poll (context=0x637520, 
    block=<value optimized out>, dispatch=<value optimized out>, 
    self=<value optimized out>) at /build/buildd/glib2.0-2.26.1/glib/gmain.c:3093
#2  g_main_context_iterate (context=0x637520, block=<value optimized out>, 
    dispatch=<value optimized out>, self=<value optimized out>)
    at /build/buildd/glib2.0-2.26.1/glib/gmain.c:2775
#3  0x00007fffeff7945c in g_main_context_iteration (context=0x637520, may_block=1)
    at /build/buildd/glib2.0-2.26.1/glib/gmain.c:2843
#4  0x00007ffff3c38193 in QEventDispatcherGlib::processEvents (this=0x607e60, 
    flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:415
#5  0x00007ffff46a1a4e in QGuiEventDispatcherGlib::processEvents (this=0xf44d30, 
    flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#6  0x00007ffff3c0aa02 in QEventLoop::processEvents (this=<value optimized out>, 
    flags=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece or DW_OP_bit_piece.
) at kernel/qeventloop.cpp:149
#7  0x00007ffff3c0adec in QEventLoop::exec (this=0x7fffffffa4a0, flags=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece or DW_OP_bit_piece.
)
    at kernel/qeventloop.cpp:201
#8  0x00007ffff59318bc in KIO::NetAccess::enter_loop (this=0x7fffffffa540)
    at ../../kio/kio/netaccess.cpp:510
#9  0x00007ffff593202d in KIO::NetAccess::mimetypeInternal (this=0x7fffffffa540, 
    url=<value optimized out>, window=0x0) at ../../kio/kio/netaccess.cpp:400
#10 0x00007ffff593256a in KIO::NetAccess::mimetype (url=..., window=0x0)
    at ../../kio/kio/netaccess.cpp:295
#11 0x00007ffff758fafe in KFilePlacesModel::dropMimeData (this=0x743900, 
    data=<value optimized out>, action=<value optimized out>, 
    row=<value optimized out>, column=<value optimized out>, 
    parent=<value optimized out>) at ../../kfile/kfileplacesmodel.cpp:612
#12 0x00007ffff4b3ccad in QAbstractItemView::dropEvent (this=0xaabba0, event=
    0x7fffffffb450) at itemviews/qabstractitemview.cpp:1981
#13 0x00007ffff759285c in KFilePlacesView::dropEvent (this=0xaabba0, 
    event=0x7fffffffb450) at ../../kfile/kfileplacesview.cpp:787
#14 0x00007ffff464501c in QWidget::event (this=0xaabba0, event=0x7fffffffb450)
    at kernel/qwidget.cpp:8377
#15 0x00007ffff4a105e6 in QFrame::event (this=0xaabba0, e=0x7fffffffb450)
    at widgets/qframe.cpp:557
#16 0x00007ffff4b49a8b in QAbstractItemView::viewportEvent (this=0xaabba0, 
    event=0x7fffffffb450) at itemviews/qabstractitemview.cpp:1619
#17 0x00007ffff3c0b507 in QCoreApplicationPrivate::sendThroughObjectEventFilters (
    this=<value optimized out>, receiver=0xaaa8a0, event=0x7fffffffb450)
    at kernel/qcoreapplication.cpp:847
#18 0x00007ffff45eefac in QApplicationPrivate::notify_helper (this=0x630b60, 
    receiver=0xaaa8a0, e=0x7fffffffb450) at kernel/qapplication.cpp:4392
#19 0x00007ffff45f4d82 in QApplication::notify (this=<value optimized out>, 
    receiver=0xaaa8a0, e=0x7fffffffb450) at kernel/qapplication.cpp:4202
#20 0x00007ffff537f2c6 in KApplication::notify (this=0x7fffffffe220, 
    receiver=0xaaa8a0, event=0x7fffffffb450)
    at ../../kdeui/kernel/kapplication.cpp:311
#21 0x00007ffff3c0bcdc in QCoreApplication::notifyInternal (this=0x7fffffffe220, 
    receiver=0xaaa8a0, event=0x7fffffffb450) at kernel/qcoreapplication.cpp:732
#22 0x00007ffff4683e8d in sendEvent (this=<value optimized out>, 
    xe=<value optimized out>, passive=<value optimized out>)
    at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#23 QX11Data::xdndHandleDrop (this=<value optimized out>, xe=<value optimized out>, 
    passive=<value optimized out>) at kernel/qdnd_x11.cpp:1183
#24 0x00007ffff4688763 in QDragManager::drop (this=0xee1160)
    at kernel/qdnd_x11.cpp:1725
#25 0x00007ffff4688928 in QDragManager::eventFilter (this=0xee1160, 
    o=<value optimized out>, e=<value optimized out>) at kernel/qdnd_x11.cpp:1312
#26 0x00007ffff3c0b5cb in QCoreApplicationPrivate::sendThroughApplicationEventFilters
    (this=0x630b60, receiver=0xe335e0, event=0x7fffffffbd50)
    at kernel/qcoreapplication.cpp:828
#27 0x00007ffff45eef56 in QApplicationPrivate::notify_helper (this=0xf44d30, 
---Type <return> to continue, or q <return> to quit---
    receiver=0xc, e=0x2a4) at kernel/qapplication.cpp:4371
#28 0x00007ffff45f530e in QApplication::notify (this=0x7fffffffe220, 
    receiver=0xe335e0, e=0x7fffffffbd50) at kernel/qapplication.cpp:3959
#29 0x00007ffff537f2c6 in KApplication::notify (this=0x7fffffffe220, 
    receiver=0xe335e0, event=0x7fffffffbd50)
    at ../../kdeui/kernel/kapplication.cpp:311
#30 0x00007ffff3c0bcdc in QCoreApplication::notifyInternal (this=0x7fffffffe220, 
    receiver=0xe335e0, event=0x7fffffffbd50) at kernel/qcoreapplication.cpp:732
#31 0x00007ffff45f3dbe in sendEvent (receiver=0xe335e0, event=0x7fffffffbd50, 
    alienWidget=0x0, nativeWidget=0xe335e0, buttonDown=<value optimized out>, 
    lastMouseReceiver=<value optimized out>, spontaneous=true)
    at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#32 QApplicationPrivate::sendMouseEvent (receiver=0xe335e0, event=0x7fffffffbd50, 
    alienWidget=0x0, nativeWidget=0xe335e0, buttonDown=<value optimized out>, 
    lastMouseReceiver=<value optimized out>, spontaneous=true)
    at kernel/qapplication.cpp:3058
#33 0x00007ffff4677345 in QETWidget::translateMouseEvent (this=0xe335e0, 
    event=<value optimized out>) at kernel/qapplication_x11.cpp:4403
#34 0x00007ffff4675c5c in QApplication::x11ProcessEvent (this=<value optimized out>, 
    event=0x7fffffffc670) at kernel/qapplication_x11.cpp:3536
#35 0x00007ffff46a20e2 in x11EventSourceDispatch (s=0x638380, 
    callback=<value optimized out>, user_data=<value optimized out>)
    at kernel/qguieventdispatcher_glib.cpp:146
#36 0x00007fffeff75342 in g_main_dispatch (context=0x637520)
    at /build/buildd/glib2.0-2.26.1/glib/gmain.c:2149
#37 g_main_context_dispatch (context=0x637520)
    at /build/buildd/glib2.0-2.26.1/glib/gmain.c:2702
#38 0x00007fffeff792a8 in g_main_context_iterate (context=0x637520, 
    block=<value optimized out>, dispatch=<value optimized out>, 
    self=<value optimized out>) at /build/buildd/glib2.0-2.26.1/glib/gmain.c:2780
#39 0x00007fffeff7945c in g_main_context_iteration (context=0x637520, may_block=1)
    at /build/buildd/glib2.0-2.26.1/glib/gmain.c:2843
#40 0x00007ffff3c38193 in QEventDispatcherGlib::processEvents (this=0x607e60, 
    flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:415
#41 0x00007ffff46a1a4e in QGuiEventDispatcherGlib::processEvents (this=0xf44d30, 
    flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#42 0x00007ffff3c0aa02 in QEventLoop::processEvents (this=<value optimized out>, 
    flags=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece or DW_OP_bit_piece.
) at kernel/qeventloop.cpp:149
#43 0x00007ffff3c0adec in QEventLoop::exec (this=0xe0b0e0, flags=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece or DW_OP_bit_piece.
)
    at kernel/qeventloop.cpp:201
#44 0x00007ffff468900b in QDragManager::drag (this=0xee1160, o=<value optimized out>)
    at kernel/qdnd_x11.cpp:1981
#45 0x00007ffff4604f78 in QDrag::exec (this=0xe69e30, supportedActions=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece or DW_OP_bit_piece.
)
    at kernel/qdrag.cpp:284
#46 0x00007ffff4605033 in QDrag::exec (this=0xf44d30, 
    supportedActions=<value optimized out>) at kernel/qdrag.cpp:239
#47 0x00007ffff59ec505 in KUrlComboBox::mouseMoveEvent (this=0x752460, 
    event=0x7fffffffd510) at ../../kio/kfile/kurlcombobox.cpp:419
#48 0x00007ffff4644cab in QWidget::event (this=0x752460, event=0x7fffffffd510)
    at kernel/qwidget.cpp:8172
#49 0x00007ffff45eefdc in QApplicationPrivate::notify_helper (this=0x630b60, 
    receiver=0x752460, e=0x7fffffffd510) at kernel/qapplication.cpp:4396
#50 0x00007ffff45f530e in QApplication::notify (this=0x7fffffffe220, 
    receiver=0x752460, e=0x7fffffffd510) at kernel/qapplication.cpp:3959
#51 0x00007ffff537f2c6 in KApplication::notify (this=0x7fffffffe220, 
    receiver=0x752460, event=0x7fffffffd510)
    at ../../kdeui/kernel/kapplication.cpp:311
#52 0x00007ffff3c0bcdc in QCoreApplication::notifyInternal (this=0x7fffffffe220, 
    receiver=0x752460, event=0x7fffffffd510) at kernel/qcoreapplication.cpp:732
#53 0x00007ffff45f3dbe in sendEvent (receiver=0x752460, event=0x7fffffffd510, 
    alienWidget=0x752460, nativeWidget=0x730b70, buttonDown=<value optimized out>, 
    lastMouseReceiver=<value optimized out>, spontaneous=true)
    at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
---Type <return> to continue, or q <return> to quit---
#54 QApplicationPrivate::sendMouseEvent (receiver=0x752460, event=0x7fffffffd510, 
    alienWidget=0x752460, nativeWidget=0x730b70, buttonDown=<value optimized out>, 
    lastMouseReceiver=<value optimized out>, spontaneous=true)
    at kernel/qapplication.cpp:3058
#55 0x00007ffff4677345 in QETWidget::translateMouseEvent (this=0x730b70, 
    event=<value optimized out>) at kernel/qapplication_x11.cpp:4403
#56 0x00007ffff4675c5c in QApplication::x11ProcessEvent (this=<value optimized out>, 
    event=0x7fffffffde30) at kernel/qapplication_x11.cpp:3536
#57 0x00007ffff46a20e2 in x11EventSourceDispatch (s=0x638380, 
    callback=<value optimized out>, user_data=<value optimized out>)
    at kernel/qguieventdispatcher_glib.cpp:146
#58 0x00007fffeff75342 in g_main_dispatch (context=0x637520)
    at /build/buildd/glib2.0-2.26.1/glib/gmain.c:2149
#59 g_main_context_dispatch (context=0x637520)
    at /build/buildd/glib2.0-2.26.1/glib/gmain.c:2702
#60 0x00007fffeff792a8 in g_main_context_iterate (context=0x637520, 
    block=<value optimized out>, dispatch=<value optimized out>, 
    self=<value optimized out>) at /build/buildd/glib2.0-2.26.1/glib/gmain.c:2780
#61 0x00007fffeff7945c in g_main_context_iteration (context=0x637520, may_block=1)
    at /build/buildd/glib2.0-2.26.1/glib/gmain.c:2843
#62 0x00007ffff3c38193 in QEventDispatcherGlib::processEvents (this=0x607e60, 
    flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:415
#63 0x00007ffff46a1a4e in QGuiEventDispatcherGlib::processEvents (this=0xf44d30, 
    flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#64 0x00007ffff3c0aa02 in QEventLoop::processEvents (this=<value optimized out>, 
    flags=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece or DW_OP_bit_piece.
) at kernel/qeventloop.cpp:149
#65 0x00007ffff3c0adec in QEventLoop::exec (this=0x7fffffffe160, flags=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece or DW_OP_bit_piece.
)
    at kernel/qeventloop.cpp:201
#66 0x00007ffff3c0eebb in QCoreApplication::exec ()
    at kernel/qcoreapplication.cpp:1009
#67 0x00007ffff7b9d30f in kdemain (argc=<value optimized out>, 
    argv=<value optimized out>) at ../../../dolphin/src/main.cpp:98
#68 0x00007ffff77f1d8e in __libc_start_main (main=<value optimized out>, 
    argc=<value optimized out>, ubp_av=<value optimized out>, 
    init=<value optimized out>, fini=<value optimized out>, 
    rtld_fini=<value optimized out>, stack_end=0x7fffffffe738) at libc-start.c:226
#69 0x0000000000400659 in _start ()
Comment 3 Jeroen van Meeuwen (Kolab Systems) 2012-08-24 16:19:43 UTC
Resetting assignee to default as per bug #305719
Comment 4 Frank Reininghaus 2013-06-26 20:26:52 UTC
Thanks for the info and sorry for the extremely late reply. There is just too much mail coming from bugs.kde.org.

The code where it froze is not executed any more in Dolphin at all, so this bug should not happen any more.

I cannot comment on the kdesvn questions because I'm not familiar at all with it.

(In reply to comment #2)
> [slightly off-topic] by the way, i heard that Dolphin now has integrated
> Subversion browsing support.  how do i use it? 

You must install the SVN plugin and enable it in the "Services" section of the settings dialog.

> must i remove kdesvn? 

I think not.

> does it support svn+ssh?

I don't know. I neither work on nor use the SVN plugin.