Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 71746 - konqueror hangs when accessing CIFS mounted network share
Summary: konqueror hangs when accessing CIFS mounted network share
Status: RESOLVED LATER
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] KDE (show other bugs)
Hardware: x86 Linux
: High normal (vote)
Assignee: Daniel Drake (RETIRED)
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-11-19 04:48 UTC by Richard Musil
Modified: 2004-12-22 00:14 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Richard Musil 2004-11-19 04:48:51 UTC
Note: I have already reported on KDE bugzilla, without any resolution yet. The report is here: http://bugs.kde.org/show_bug.cgi?id=92347

For the record I repeat the original report here as well:

Using linux kernel 2.6.9 (plain vanilla from kernel.org, no patches) in Gentoo distro on both client and server. Both machines are also running samba 3.0.7 from Gentoo portage.
Server is configured to export network share in pure CIFS way (no Samba) with linux extension on. Client mounts this share using fstab line command:
//amd-k6/data /mnt/amd cifs iocharset=utf8,user=risa,noauto 0 0
(risa is allowed username on CIFS server, amd-k6 is server name)
There is no problem mounting this share from console (either from vc, or from Konsole in KDE), i.e files are accessible as expected charset translation works as expected etc. When I try to browse mounted share in konqueror, it hangs in hard way.
Hanging process cannot be killed (I presume it hangs in kernel). Even after shutting down X server it remains. ps -AFH looks like this:
UID        PID  PPID  C    SZ  RSS PSR STIME TTY          TIME CMD
root         1     0  0   339  496   0 12:34 ?        00:00:01 init [3]  
<omitted all other processes>
root      9786     1  0     0    0   0 12:40 ?        00:00:00   [cifsd]
risa     27165     1  0  9421 23568  0 20:41 ?        00:00:00   kdeinit: konqueror --silent
The problem is that after this happen it is impossible to shutdown correctly, because it is not possible to unmount network share. It is not possible to kill the konqueror process, it is however possible to kill [cifsd] process (which is probably hung up too). Sometimes it leads to crash, sometimes not.
Just for the record, applications using GTK(2) like GVim, Ethereal, run fine and can access mounted network share without any problem. I can submit CIFS log (created from "cifsFYI=1") and network capture from communication between server and client. 

--------------------

Since then, I have updated to samba-3.0.8 and kde-3.3.1 full install, neither update solved the problem mentioned.

Reproducible: Always
Steps to Reproduce:
1.mount cifs
2.navigate konqueror to mounted folder
3.konqueror hangs




I thought this was a problem in konqueror or same base kde component. Someone
suggested it is in kio. I am not sure, whether it is related directly to gentoo,
but at least on my gentoo it exposes quite clearly.
The strange is, not much reports appeared until now.

There are binary files attached to original report on KDE bugzilla which might
be helpful.
Comment 1 Vermyndax 2004-12-17 14:53:22 UTC
Happening to me too - actually, it's worse for me... if I mount a cifs share, the whole KDE panel hangs when I click on the "K".

According to the devs at KDE, this is a kernel bug.  There is a patch for the 2.6.9 kernel attached to the bug report you linked in bugs.kde.org.

I'd love to see this patch make it into a 2.6.9-r10 ;)
Comment 2 Simone Gotti (RETIRED) gentoo-dev 2004-12-17 16:25:41 UTC
You can wait for kernel 2.6.10. 
but in the meantime I'll CC kernel people. It's upon them to decide this.
Comment 3 Vermyndax 2004-12-17 20:45:35 UTC
FWIW, kernel folks... I'm on amd64 arch.  I know this bug is filed against x86, so FYI.

The bug is a little more critical than is described in the KDE bug report.  I cannot get smbfs to work, so cifs is the only thing that works for me right now.  Unfortunately, it hangs all of my KDE even when I click on the Start menu... I don't have to browse a share for it to freeze.
Comment 4 Richard Musil 2004-12-18 08:08:03 UTC
ad #1, #2
If you take a look at the link I posted in the report there is whole thread at KDE bugzilla. I this thread I posted the patch for kernel 2.6.9 according to instruction someone pointed out here:
http://lists.samba.org/archive/linux-cifs-client/2004-December/000612.html
The patch so simple that you can get the idea for other kernel versions.
If you follow the link a mentioned i previuos sentence, you will find out that kernel people already know about this and the fix will be in 2.6.10.

ad #3
If you are facing problems with smbfs or cifs without even any browsing then this is probably different issue. This one is strictly related to browsing network share in konqueror and is produced by wrong implementation of directory notify feature in cifs.

I suggest to change resolution of this bug to FIXED.
Comment 5 Simone Gotti (RETIRED) gentoo-dev 2004-12-18 08:17:53 UTC
I know that the bug is fixed on the kdeside (it doesn't exists). Now the bug is on the kernel side as the gentoo-sources doesn't provide this patch (until linux-2.6.10 is out). So I CCed the kernel herd so they are aware of this fact. 

kernel herd: if you accept this bug feel free to change the bug owner from kde to kernel. thanks.
Comment 6 John Mylchreest (RETIRED) gentoo-dev 2004-12-18 08:27:53 UTC
the kernel fix is pretty simple.

----------------
--- cifsfs.c.old	2004-12-14 21:04:10.404790384 +0100
+++ cifsfs.c	2004-12-14 21:05:37.780507256 +0100
@@ -537,14 +537,18 @@
 	.flush = cifs_flush,
 	.mmap  = cifs_file_mmap,
 	.sendfile = generic_file_sendfile,
+/*
 	.dir_notify = cifs_dir_notify,
+*/
 };
 
 struct file_operations cifs_dir_ops = {
 	.readdir = cifs_readdir,
 	.release = cifs_closedir,
 	.read    = generic_read_dir,
+/*
 	.dir_notify = cifs_dir_notify,
+*/
 };
 
 static void
-----------------

But I dont think this warrants inclusion into the tree.
I will however leave it up to greg or dsd to decide, since theyre the main maintainers.
Comment 7 Vermyndax 2004-12-18 09:07:50 UTC
Patching my 2.6.9-r9 kernel with the cifsfs.c patch in the KDE bug report fixed the issue for me.
Comment 8 Daniel Drake (RETIRED) gentoo-dev 2004-12-18 13:37:04 UTC
That patch is an evil workaround and won't get into our kernel.
It would be nice if someone could test 2.6.10-rc3 and confirm that it definately is fixed (without need for patching) there.
Comment 9 Daniel Drake (RETIRED) gentoo-dev 2004-12-18 13:39:55 UTC
Actually, a similar fix has been merged into 2.6.10

The following patch should fix 2.6.9 and will be considered for inclusion if we do another gentoo-dev-sources 2.6.9 release

http://linux.bkbits.net:8080/linux-2.6/gnupatch@41b8f2d45ZvDh290WROGkhznUh7Qjg
Comment 10 Daniel Drake (RETIRED) gentoo-dev 2004-12-19 15:01:46 UTC
Sorry, there have been too many changes to the cifsfs.c file in 2.6.10 such that the above patch doesn't apply to 2.6.9 without a million other patches alongside it. You are going to have to wait for 2.6.10, sorry for the inconvenience.
Comment 11 Richard Musil 2004-12-22 00:14:20 UTC
I would like to make few comments, particularly with regard to #8,#9,#10. This patch is definitely workaround, not a solution. As was already pointed out by cifs kernel developer here: http://lists.samba.org/archive/linux-cifs-client/2004-December/000612.html
the notify feature was substantially broken and simply did not work. Therefore you see quite significant changes in 2.6.10 kernel in this part.
However I do not agree with that is "evil workaround". Apart from the fact the change is really very simple, it also does not change any conditional logic or expression evalution in the code. The patch just disables feature (which was broken anyway) by hiding it. So even if there is some user space client somewhere which depends on this feature being present (konqueror works fine without this feature - you just do not get directory content updated automatically), this no longer should hang kernel, which is the important result.
So this is probably most stable workaround (apart from fixing it). I am not saying that it should be included into kernel, this is up to folks from gentoo kernel, but I am trying to ease it a bit for people who are not able/willing to switch to the new kernel, but need to fix it ASAP, and may by in doubts.