Bug 155591 - fish kioslave does not work properly in kde4 if no user is specified in the urls
Summary: fish kioslave does not work properly in kde4 if no user is specified in the urls
Status: RESOLVED FIXED
Alias: None
Product: kio
Classification: Unclassified
Component: fish (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR normal with 40 votes (vote)
Target Milestone: ---
Assignee: Jörg Walter
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-01-13 00:48 UTC by Pablo De Napoli
Modified: 2008-10-25 14:11 UTC (History)
6 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
Backtrace of dolphin crash with fish:// (5.18 KB, text/plain)
2008-10-16 14:28 UTC, Thomas Kamps
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Pablo De Napoli 2008-01-13 00:48:31 UTC
Version:            (using KDE Devel)
Installed from:    Compiled sources
OS:                Linux

I would like to report the following bug: fish kioslave does not work 
properly on kde4 (svn revision 759969)

I have prepeared the folowwing setting on my local network to reproduce
the bug. I a host with static IP address 192.168.0.2 that runs an 
openssh-server, and has a user "euler"

Now, in host 192.168.0.1 I have a user "kde-devel" runing KDE 4
and as that user, I want to connect to 192.168.0.2 using fish kioslave.

So I follow the following steps

1) I open Konqueror and type "sftp://192.168.0.1" in the URL bar

2) a dialog apppears showing the message

"kde-devel@192.168.0.1 password:"

and letting me enter a username ("kde-devel" apperas as a default choise,
but I may edit it)

3) I enter "euler" as user name, and its password

then the conection fails, with the message

An error occurred while loading fish://192.168.0.2:
The process for the fish://192.168.0.2 protocol died unexpectedly.

and following debug messages:

konqueror(25918) LocalDomainUriFilter::filterUri: KUrl("fish://192.168.0.2")
konqueror(25918) FixHostUriFilter::filterUri: FixHostUriFilter::filterUri:  KUrl("fish://192.168.0.2")
konqueror(25918) KonqMainWindow::openFilteredUrl: url  "fish://192.168.0.2"  filtered into  KUrl("fish://192.168.0.2")
konqueror(25918) KonqMainWindow::openUrl: KonqMainWindow::openUrl : url = ' KUrl("fish://192.168.0.2") '   mimeType=' ""  req= "[typedUrl=fish://192.168.0.2 newTabInFront]" ' view= QObject(0x0)
konqueror(25918) KonqMainWindow::openUrl: trying openView for  KUrl("fish://192.168.0.2")  (mimeType  "" )
konqueror(25918) KonqMainWindow::openUrl: Creating new konqrun for  KUrl("fish://192.168.0.2")  req.typedUrl= "fish://192.168.0.2"
konqueror(25918)/kio (KIOJob) KIO::stat: stat  KUrl("fish://192.168.0.2")
konqueror(25918)/kio (Slave) KIO::Slave::createSlave: createSlave ' "fish" ' for  "fish://192.168.0.2"
konqueror(25918)/kio (KIOConnection) KIO::ConnectionServer::listenForRemote: Listening on  "local:/tmp/kde-devel-kde4/ksocket-kde-devel/konquerory25918.slave-socket"
klauncher(25863)/kio (KLauncher) KLauncher::requestSlave: KLauncher: launching new slave  "kio_fish"  with protocol= "fish"  args= ("fish", "local:/tmp/kde-devel-kde4/ksocket-kde-devel/klauncherT25863.slave-socket", "local:/tmp/kde-devel-kde4/ksocket-kde-devel/konquerory25918.slave-socket")
kdeinit4: Got EXEC_NEW 'kio_fish' from launcher.
kdeinit4: preparing to launch 
fish(25929)/kio_fish kdemain: 131 :  *** Starting fish
fish(25929)/kio_fish fishProtocol::fishProtocol: 246 :  fishProtocol::fishProtocol()
klauncher(25863)/kio (KLauncher) KLauncher::processRequestReturn: "kio_fish" (pid 25929) up and running.
fish(25929)/kio_fish fishProtocol::setHost: 659 :  setHost  "" @ "192.168.0.2"
fish(25929)/kio_fish fishProtocol::stat: 1415 :  @@@@@@@@@ stat  KUrl("fish://192.168.0.2")
fish(25929)/kio_fish fishProtocol::openConnection: 304 :  _______ emitting infoMessage( "Connecting..." )
fish(25929)/kio_fish fishProtocol::openConnection: 306 :  connecting to:  "kde-devel" @ "192.168.0.2" : 0
fish(25929)/kio_fish fishProtocol::sendCommand: 720 :  queuing: cmd= 0 [' FISH ']( 0 ), alt=[' echo; /bin/sh -c start_fish_server > /dev/null 2>/dev/null; perl .fishsrv.pl abcc4c517321c96aa2184bf291d3dcb7 2>/dev/null; perl -e '$|=1; print "### 100 transfer fish server\n"; while(<STDIN>) { last if /^__END__/; $code.=$_; } exit(eval($code));' 2>/dev/null; '], lines= 1
fish(25929)/kio_fish fishProtocol::sendCommand: 720 :  queuing: cmd= 1 [' VER 0.0.3 copy append lscount lslinks lsmime exec stat ']( 0 ), alt=[' echo 'VER 0.0.3 copy append lscount lslinks lsmime exec stat' '], lines= 1
konqueror(25918)/kio (KIOJob) KIO::SlaveInterface::requestNetwork: requestNetwork  "" "fish25929"
fish(25929)/kio_fish fishProtocol::connectionStart: 398 :  Exec:  /usr/bin/ssh  Port:  0  User:  "kde-devel"
fish(25929)/kio_fish fishProtocol::establishConnection: 547 :  establishing: got  "kde-devel@192.168.0.2's password:"
fish(25929)/kio_fish fishProtocol::establishConnection: 588 :  sending mpass
fish(25929)/kio (kioslave) KIO::SlaveBase::checkCachedAuthentication: SlaveBase::checkCachedAuthInfo window =  4194305  url =  "fish://kde-devel@192.168.0.2"
kded(25865)/kded4 Kded::loadModule: Successfully loaded module "kpasswdserver"
kded(25865)/kio (KPasswdServer) KPasswdServer::checkAuthInfo: KPasswdServer::checkAuthInfo: User=  "kde-devel" , WindowId =  4194305
kded(25865)/kio (KDirWatch) KDirWatchPrivate::addEntry: Added Dir "/home/kde-devel/.kde4/share/apps/kwallet" for "" ["KWallet Directory Watcher"]
kded(25865)/kio (KDirWatch) KDirWatchPrivate::useINotify: trying to use inotify for monitoring
kded(25865)/kio (KDirWatch) KDirWatchPrivate::useINotify: inotify successfully used for monitoring
kded(25865)/kded4 Kded::loadModule: Successfully loaded module "kwalletd"
fish(25929)/kio (kioslave) KIO::SlaveBase::openPasswordDialog: SlaveBase::openPasswordDialog window-id= 4194305
kded(25865)/kio (KPasswdServer) KPasswdServer::queryAuthInfo: KPasswdServer::queryAuthInfo: User=  "kde-devel" , Message=  "kde-devel@192.168.0.2's password:" , WindowId =  4194305
kded(25865)/kio (KPasswdServer) KPasswdServer::processRequest: KPasswdServer::processRequest: User=  "kde-devel" , Message=  "kde-devel@192.168.0.2's password:"
kwin(25875) KWin::Client::readUserTimeMapTimestamp: User timestamp, initial: 1775915034
kwin(25875) KWin::Client::readUserTimeMapTimestamp: User timestamp, ASN: 1775915034
kwin(25875) KWin::Client::readUserTimeMapTimestamp: User timestamp, final: 'ID: 10485786 ;WMCLASS: "kded4" : "kded4" ;Caption: "SSH Authorization" ' : 1775915034
kwin(25875) KWin::Workspace::allowClientActivation: Activation, compared: 'ID: 10485786 ;WMCLASS: "kded4" : "kded4" ;Caption: "SSH Authorization" ' : 1775915034 : 1775913455 : true
knotify(25877) KNotify::slotPluginFinished: 10  ref= 2
knotify(25877) KNotify::event: 10  ref= 0
kwin(25875)/kdeui (KNotification) KNotification::slotReceivedId: 0
kwin(25875)/kdeui (KNotification) KNotification::~KNotification: 0
Task added, isActive =  false 
knotify(25877) KNotify::event: 11  ref= 0
kwin(25875)/kdeui (KNotification) KNotification::slotReceivedId: 0
kwin(25875)/kdeui (KNotification) KNotification::~KNotification: 0
kded(25865)/kio (KPasswdServer) KPasswdServer::addAuthInfoItem: Creating AuthInfo
fish(25929)/kio (kioslave) KIO::SlaveBase::openPasswordDialog: SlaveBase::openPasswordDialog: username= "euler"
fish(25929)/kio (kioslave) KIO::SlaveBase::openPasswordDialog: SlaveBase::openPasswordDialog: password=[hidden]
fish(25929)/kio_fish fishProtocol::establishConnection: 608 :  _______ emitting redirection( KUrl("fish://euler@192.168.0.2") )
fish(25929)/kio_fish fishProtocol::finished: 1329 :  _______ emitting finished()
fish(25929)/kio_fish fishProtocol::openConnection: 314 :  subprocess is running
konqueror(25918)/kio (KIOJob) KIO::StatJobPrivate::slotRedirection: StatJob::slotRedirection( KUrl("fish://euler@192.168.0.2") )
fish(25929)/kio_fish fishProtocol::setHost: 659 :  setHost  "euler" @ "192.168.0.2"
fish(25929)/kio_fish fishProtocol::shutdownConnection: 698 :  _______ emitting infoMessage( "Disconnected." )
fish(25929)/kio_fish fishProtocol::stat: 1415 :  @@@@@@@@@ stat  KUrl("fish://euler@192.168.0.2")
fish(25929)/kio_fish fishProtocol::openConnection: 304 :  _______ emitting infoMessage( "Connecting..." )
fish(25929)/kio_fish fishProtocol::openConnection: 306 :  connecting to:  "euler" @ "192.168.0.2" : 0
fish(25929)/kio_fish fishProtocol::sendCommand: 720 :  queuing: cmd= 0 [' FISH ']( 0 ), alt=[' echo; /bin/sh -c start_fish_server > /dev/null 2>/dev/null; perl .fishsrv.pl abcc4c517321c96aa2184bf291d3dcb7 2>/dev/null; perl -e '$|=1; print "### 100 transfer fish server\n"; while(<STDIN>) { last if /^__END__/; $code.=$_; } exit(eval($code));' 2>/dev/null; '], lines= 1
fish(25929)/kio_fish fishProtocol::sendCommand: 720 :  queuing: cmd= 1 [' VER 0.0.3 copy append lscount lslinks lsmime exec stat ']( 0 ), alt=[' echo 'VER 0.0.3 copy append lscount lslinks lsmime exec stat' '], lines= 1
fish(25929)/kio (kioslave) KIO::SlaveBase::waitForAnswer: SlaveBase::waitForAnswer has read error.
fish(25929)/kio_fish fishProtocol::error: 1338 :  ERROR:  123  -  "192.168.0.2"
ASSERT: "d->appConnection.inited()" in file /home/kde-devel/kde/src/kdelibs/kio/kio/slavebase.cpp, line 231
kioslave: ####### CRASH ###### protocol = fish pid = 25929 signal = 6
/home/kde-devel/kde/lib/libkio.so.5[0xb7aa3198]
[0xffffe420]
/lib/tls/i686/cmov/libc.so.6(abort+0x101)[0xb6862201]
/usr/lib/libQtCore.so.4(_Z17qt_message_output9QtMsgTypePKc+0xcf)[0xb7df201d]
/usr/lib/libQtCore.so.4(_Z6qFatalPKcz+0x7f)[0xb7df20a1]
/usr/lib/libQtCore.so.4(_Z9qt_assertPKcS0_i+0x35)[0xb7df220d]
/home/kde-devel/kde/lib/libkio.so.5(_ZN3KIO9SlaveBase12dispatchLoopEv+0xff)[0xb7aa215d]
/home/kde-devel/kde/lib/kde4/kio_fish.so(kdemain+0x239)[0xb6354c39]
kdeinit4: kio_fish [kd[0x804e10c]
kdeinit4: kio_fish [kd[0x804eb4b]
kdeinit4: kio_fish [kd[0x804f330]
kdeinit4: kio_fish [kd[0x804fcaa]
/lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe0)[0xb684c050]
kdeinit4: kio_fish [kd[0x804b301]
konqueror(25918)/kio (KIOJob) KIO::SlaveInterface::dropNetwork: dropNetwork  "" "fish25929"
konqueror(25918)/kio (Slave) KIO::Slave::gotInput: slave died pid =  25929
konqueror(25918)/kparts KParts::BrowserRun::slotStatResult: BrowserRun::slotStatResult: "The process for the fish://192.168.0.2 protocol died unexpectedly."
konqueror(25918) KonqRun::handleError: KonqRun::handleError error: "The process for the fish://192.168.0.2 protocol died unexpectedly."
konqueror(25918)/kdecore (trader) KMimeTypeTrader::weightedOffers: KMimeTypeTrader::weightedOffers(  "text/html" ,  "Application"  )
konqueror(25918) KonqMainWindow::openView: KonqMainWindow::openView  "text/html"   KUrl("error:/?error=143&errText=fish%3A%2F%2F192.168.0.2#fish://192.168.0.2")   KonqView(0x8431b60)  req: "[typedUrl=fish://192.168.0.2 newTabInFront forceAutoEmbed]"

As you can see, something strange is happening: the line 

fish(25929)/kio_fish fishProtocol::setHost: 659 :  setHost  "euler" @ "192.168.0.2"

shows that the user that I've entered is set, but the line

fish(25929)/kio_fish fishProtocol::connectionStart: 398 :  Exec:  /usr/bin/ssh  Port:  0  User:  "kde-devel"

says that the user "kde-devel" and the port "0" was actually used!
(shouldn't port be 22 ?)

Two final remarks:

1) If I enter, "fish://euler@192.168.0.2" this works as expected.

2) In KDE 3.5.8 things work OK (this is a regression in KDE 4)
Comment 1 András Manţia 2008-02-08 14:35:45 UTC
Although I had similar problems with fish in KDE4, I just tried it now (=from trunk) and ... it works. Both sftp, fish, in Dolphin, in Konqueror, with or without user name in the url. 
Comment 2 Albert Astals Cid 2008-05-12 14:52:27 UTC
I made a change that should fix fish problems, if you are running from svn please update to after than r806784 and try again, else please try again once new KDE 4.0.x or 4.1 is released 
Comment 3 Rui G. 2008-08-28 13:46:09 UTC
I can reproduce this bug for the fish protocol in Opensuse 11.0 Konqueror 4.1.1. I can login without expressing the username with sftp but not in fish.  

fish://ip doesn't work like the first comment indicates, asks for username and password but gives unexpected error anyway.
fish://user@ip works as expected.

Also, in Dolphin, if I try fish://ip , then username and password filled out, I press ok and Dolphin crashes. 

All I'm saying is maybe this bug isn't really fixed. I can reproduce it at will, any help you need, just ask.
Comment 4 Albert Astals Cid 2008-08-28 23:46:13 UTC
Are you sure you are running KDE 4.1.1? Can you please paste the output of running 
zypper info kdelibs4
in a shell?
Comment 5 Rui G. 2008-08-29 01:34:21 UTC
I didn't really say I was running Kde 4.1.1 , but it was misleading yes. Kdelibs is still 4.1.0 , here is the relevant part of the output:

Repository: openSUSE BuildService - KDE4:Factory:Desktop
Name: kdelibs4
Version: 4.1.0-40.4
Arch: i586
Vendor: openSUSE Build Service
Installed: Yes
Status: up-to-date

So Kde is 4.1.0 but Konqueror reports 4.1.1 :

konqueror --version
Qt: 4.4.0
KDE: 4.1.1 (KDE 4.1.0 (4.1 >= 20080722)) "release 40.4"
Konqueror: 4.1.1 (KDE 4.1.0 (4.1 >= 20080722)) "release 40.4"

So I should just test again when kdelibs reaches 4.1.1 . 
Comment 6 utonto 2008-09-10 11:12:51 UTC
I can reproduce this behavior (fish://username@url.net failing with "protocol has unexpectedly terminated") with:

konqueror --version
Qt: 4.4.1
KDE: 4.1.1 (KDE 4.1.1)
Konqueror: 4.1.1 (KDE 4.1.1)

Comment 7 Albert Astals Cid 2008-09-10 23:50:30 UTC
OpenSuse 4.1.1 works for me when logging to tsdgeos@shell.berlios.de with konqueror.

Any chace I can have an account at the machine you are having problems to see if it crashes? If you want you can send the date in private mail.
Comment 8 rfox 2008-09-12 09:52:18 UTC
I get signal 6 fatal error when trying to use fish protocol - under konqueror it still works.  When using Dolphin, and I edit the address line with the following: fish://192.168.10.100 and hit enter, I get a login diaog from the other machine - I put the correct name and password, then it crashes with a SIGABRT signal 6 crash.  Same as comment #3 here.

I can repeat this everytime.

using kdelibs4-core-4.1.1-6mdv2009.0 from Mandriva Cooker

Comment 9 Albert Astals Cid 2008-09-12 10:57:56 UTC
The fish ioslave is not in the kdelibs package, but on the kdebase-runtime package, make sure you have it uptodate too

All i can keep saying is "works for me"
Comment 10 xavy94 2008-10-09 21:10:15 UTC
*** This bug has been confirmed by popular vote. ***
Comment 11 Thomas Kamps 2008-10-16 14:28:13 UTC
Created attachment 27938 [details]
Backtrace of dolphin crash with fish://

Using KDE 4.1.2

fish works, when going to fish://[USERNAME]@[ADRESS].

But when going to fish://[ADRESS] and give [USERNAME] and [PASSWORD] in the login dialog dolphin crashes.
Konqueror says only: "Prozess wurde unerwartet beendet." but does not crash.
Comment 12 Albert Astals Cid 2008-10-24 00:06:51 UTC
SVN commit 875283 by aacid:

sigaction somehow was playing tricks with other Qt/KDE code, so let's remove it and use waitpid directly after kill

This fixes protocol died errors when logging in to fish urls when no user is specified, that is, part of bug 155591 and only works when using konqueror

When using dolphin it still triggers an assert on KDirLister::Private::redirect so i'm not sure it's a problem of the slave, of dolphins code or what

David can you have a look?

CCBUG: 155591
CCMAIL: faure@kde.org



 M  +2 -21     fish.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=875283
Comment 13 Peter Penz 2008-10-24 21:52:30 UTC
SVN commit 875554 by ppenz:

Assure that no reloading is done if KDirLister emits a redirection, only change the the URL. Thanks to David Faure and Albert Alstals Cid for the detailed analysis!

BUG: 155591

 M  +1 -8      dolphinview.cpp  
 M  +8 -7      dolphinview.h  
 M  +11 -0     dolphinviewcontainer.cpp  
 M  +7 -0      dolphinviewcontainer.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=875554
Comment 14 Peter Penz 2008-10-24 22:32:47 UTC
SVN commit 875564 by ppenz:

Backport of SVN commit 875554:

Assure that no reloading is done if KDirLister emits a redirection, only change the the URL. Thanks to David Faure and Albert Alstals Cid for the detailed analysis!

CCBUG: 155591

 M  +1 -8      dolphinview.cpp  
 M  +6 -6      dolphinview.h  
 M  +11 -1     dolphinviewcontainer.cpp  
 M  +7 -0      dolphinviewcontainer.h  


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