Bug 200744

Summary: konsole's zmodem file transfer is not working
Product: [Applications] konsole Reporter: Thomas Dreibholz <dreibh>
Component: generalAssignee: Konsole Developer <konsole-devel>
Status: RESOLVED FIXED    
Severity: normal    
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Thomas Dreibholz 2009-07-19 10:44:55 UTC
Version:           SVN revision 999085 (using Devel)
Compiler:          gcc 4.3.3 
OS:                Linux
Installed from:    Compiled sources

The zmodem transfer implementation in konsole version >=4.0 is broken. When incoming zmodem data is detected, the Session emits the signal zmodemDetected(). This signal is not connected to any slot => nothing happens then.

(In the old konsole 3.5, the zmodemDetected() signal is connected to Konsole::slotZModemDetected() which starts the zmodem transfer.)
Comment 1 Kurt Hindenburg 2009-08-09 17:47:13 UTC
It looks good in general. Is the final dialog really necessary to force the user to click on Close?  


A note that when there is no rzrs package installed on the other machine when doing an upload and you click 'Stop', Konsole crashes.



Application: Konsole (konsole), signal: Segmentation fault
[KCrash Handler]
#6  0xb736e41f in ?? () from /usr/lib/libQtCore.so.4
#7  0xb736e6be in ?? () from /usr/lib/libQtCore.so.4
#8  0xb732e043 in QProcess::~QProcess () from /usr/lib/libQtCore.so.4
#9  0xb75c41af in ~KProcess (this=0x9666710) at /opt/KDE/sources/KDE/svn/trunk/kdelibs/kdecore/io/kprocess.cpp:109
#10 0xb7f6e736 in Konsole::Session::zmodemFinished (this=0x8bdc488) at /opt/KDE/sources/KDE/svn/trunk/kdebase/apps/konsole/src/Session.cpp:1106
#11 0xb7f74664 in Konsole::Session::qt_metacall (this=0x8bdc488, _c=QMetaObject::InvokeMetaMethod, _id=44, _a=0xbf9fa5f8) at /opt/KDE/builds/KDE/xubuntu/trunk/kdebase/apps/konsole/src/Session.moc:210
#12 0xb73a6ca8 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#13 0xb73a7932 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#14 0xb78759f7 in KDialog::user1Clicked (this=0x95b3720) at /opt/KDE/builds/KDE/xubuntu/trunk/kdelibs/kdeui/kdialog.moc:234
#15 0xb7877fbd in KDialog::slotButtonClicked (this=0x95b3720, button=4096) at /opt/KDE/sources/KDE/svn/trunk/kdelibs/kdeui/dialogs/kdialog.cpp:871
#16 0xb787a3ac in KDialog::qt_metacall (this=0x95b3720, _c=QMetaObject::InvokeMetaMethod, _id=33, _a=0xbf9fa7bc) at /opt/KDE/builds/KDE/xubuntu/trunk/kdelibs/kdeui/kdialog.moc:184
#17 0xb7fb069a in Konsole::ZModemDialog::qt_metacall (this=0x95b3720, _c=QMetaObject::InvokeMetaMethod, _id=69, _a=0xbf9fa7bc)
    at /opt/KDE/builds/KDE/xubuntu/trunk/kdebase/apps/konsole/src/ZModemDialog.moc:61
#18 0xb73a6ca8 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#19 0xb73a7932 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#20 0xb73a9be3 in QSignalMapper::mapped () from /usr/lib/libQtCore.so.4
#21 0xb73aa46d in QSignalMapper::map () from /usr/lib/libQtCore.so.4
#22 0xb73aa65e in QSignalMapper::map () from /usr/lib/libQtCore.so.4
#23 0xb73aaf2b in QSignalMapper::qt_metacall () from /usr/lib/libQtCore.so.4
#24 0xb73a6ca8 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#25 0xb73a70e0 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#26 0xb6fe02b1 in QAbstractButton::clicked () from /usr/lib/libQtGui.so.4
#27 0xb6d0b0b9 in ?? () from /usr/lib/libQtGui.so.4
#28 0xb6d0cd14 in ?? () from /usr/lib/libQtGui.so.4
#29 0xb6d0cfa6 in QAbstractButton::mouseReleaseEvent () from /usr/lib/libQtGui.so.4
#30 0xb6980b43 in QWidget::event () from /usr/lib/libQtGui.so.4
#31 0xb6d0af5e in QAbstractButton::event () from /usr/lib/libQtGui.so.4
#32 0xb6db5f20 in QPushButton::event () from /usr/lib/libQtGui.so.4
#33 0xb6929e9c in QApplicationPrivate::notify_helper () from /usr/lib/libQtGui.so.4
#34 0xb6932b11 in QApplication::notify () from /usr/lib/libQtGui.so.4
#35 0xb7919aad in KApplication::notify (this=0xbf9fb844, receiver=0x967d008, event=0xbf9faf18) at /opt/KDE/sources/KDE/svn/trunk/kdelibs/kdeui/kernel/kapplication.cpp:302
#36 0xb7390a3b in QCoreApplication::notifyInternal () from /usr/lib/libQtCore.so.4
#37 0xb6931b7e in QApplicationPrivate::sendMouseEvent () from /usr/lib/libQtGui.so.4
#38 0xb69a197e in ?? () from /usr/lib/libQtGui.so.4
#39 0xb69a0ca7 in QApplication::x11ProcessEvent () from /usr/lib/libQtGui.so.4
#40 0xb69cbc6a in ?? () from /usr/lib/libQtGui.so.4
#41 0xb61a8b88 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#42 0xb61ac0eb in ?? () from /usr/lib/libglib-2.0.so.0
#43 0xb61ac268 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#44 0xb73bc438 in QEventDispatcherGlib::processEvents () from /usr/lib/libQtCore.so.4
#45 0xb69cb365 in ?? () from /usr/lib/libQtGui.so.4
#46 0xb738f06a in QEventLoop::processEvents () from /usr/lib/libQtCore.so.4
#47 0xb738f4aa in QEventLoop::exec () from /usr/lib/libQtCore.so.4
#48 0xb7391959 in QCoreApplication::exec () from /usr/lib/libQtCore.so.4
#49 0xb6929d17 in QApplication::exec () from /usr/lib/libQtGui.so.4
#50 0xb7fd8742 in kdemain (argc=1, argv=0xbf9fb974) at /opt/KDE/sources/KDE/svn/trunk/kdebase/apps/konsole/src/main.cpp:104
#51 0x08048762 in main (argc=) at /opt/KDE/builds/KDE/xubuntu/trunk/kdebase/apps/konsole/src/konsole_dummy.cpp:3
Comment 2 Thomas Dreibholz 2009-08-28 18:41:48 UTC
The segfault is fixed in the updated patch on Review Board (see http://reviewboard.kde.org/r/1095/ ). Also, the Z-Modem dialog handling has been improved: when the transfer is completed, the dialog can now also be closed by pressing the Return key.

It is not easily possible to just close the dialog when the transfer has been completed successfully, because it is difficult to find out whether everything went well. Konsole therefore just prints the output of the session into the dialog box (this has also been the behaviour for Konsole <4.0). There, the user can find information on success or failure of the file transfer(s).
Comment 3 Kurt Hindenburg 2009-08-29 06:24:42 UTC
SVN commit 1016847 by hindenburg:

Allow Konsole's zmodem file transfers to work.

Thanks to Thomas Dreibholz <dreibh@iem.uni-due.de> for the patch.  I removed
some whitespace changes from his patch on reviewboard.

BUG: 200744


 M  +2 -1      desktop/sessionui.rc  
 M  +16 -11    src/Session.cpp  
 M  +64 -1     src/SessionController.cpp  
 M  +4 -0      src/SessionController.h  
 M  +2 -2      src/ZModemDialog.cpp  
 M  +3 -0      src/main.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1016847