Subject: Re: rumba causes processes to hang stuck in disk
To: Rick Byers <Rick@BigScaryChildren.net>
From: Matthew Fredette <fredette@MIT.EDU>
List: current-users
Date: 11/17/2000 00:34:33
> Hi,
> On two seperate machines (i386) I have seen that upgrading from 1.4ish to
> 1.5 (currently 1.5_BETA) caused rumba to stop working.  (for those that
> don't know, rumba is a SMB/NFS translator that allows mounting resources
> shared by Windows machines).  I can mount resources fine and even navigate
> the directories.  However attempting to read the contents of a file
> (usually a large file) causes the process to hang.  The rumba process can
> be killed (with SIGKILL) but the directory cannot be unmounted.  Any
> attempt to access the directory (including unmounting) causes the process
> to get hung (ps indicates its stuck in disk).  No amount of kill or kill -9
> will get rid of the processes.
>
[..]

I think this is the same problem I ran into when developing a
userspace NFS daemon under 1.5_ALPHA.  libc's RPC implementation will
not handle packets larger than 8192 bytes when fully assembled, and
NFS read and write packets with 8k blocks of data are larger.  I bet
rumba's read replies are never getting back to the kernel.

I filed lib/11464 last week about __rpc_get_t_size, a function in
lib/libc/rpc/rpc_generic.c.  It causes the 8192-byte limitation.

Matt

--
Matt Fredette
fredette@aquery.com, fredette@mit.edu, fredette@theory.lcs.mit.edu
http://mit.edu/fredette/www
"If you understood everything I said, you'd be me."  - Miles Davis