Coda File System

Re: Connection timeout

From: Jan Harkes <jaharkes_at_cs.cmu.edu>
Date: Thu, 19 Jul 2001 09:36:07 -0400
On Thu, Jul 19, 2001 at 03:11:21PM +0200, Wim Godden wrote:
> I've set up 2 coda servers (1 SCM). The 2 servers are called sni and
> alfastar. They are supposed to have a root volume called vserver.
> Running vice-setup gave no problem, RVM was created fine, etc.
> 
> So I ran :
> 
> <echo vserver 7f000000       2 d000001 d000001 0 0 0 0 0 0 E0000100 >>
				 ^^^^^^^ ^^^^^^^
Arghhh, both servers are using the same identifier in /vice/db/servers.
This is really bad, because a volume lookup for 'd000001' can only find
one of the two replicas.

> This all seemed to be good... the servers were running fine. I ran
> venus-setup and started venus, which told me /coda had been mounted. But
> when I try to access /coda I get a connection timeout.

The client tries to concurrently access the same volume twice (on the
same server). It bumps into it's own locks, either on the client side or
on the server side that doesn't matter much. I'm actually glad it
returns connection timed out and doesn't totally deadlock.

> Any ideas ?

Ehhh, yeah, but fixing this is not simple. Let me think for a second..

Ok, with current clients and servers it should be possible to fix this
reasonably well. I'm assuming (given the 0x0d prefix to the volume
identifiers) that you assigned server number 13 to both servers.

On 'alfastar' do the following,

    # volutil purge 0xd000001 vserver.1
    # volutil shutdown

Then on 'sni',

    # volutil shutdown
    # vi /vice/db/servers ... change the server-id of alfastar to 14
    # vi /vice/db/VRList  ... change the second replica id (2nd d000001) to
			      e000001

Then on 'alfastar',

    ... check that the updates to /vice/db/servers and VRList were propagated
    # startserver &
    ... wait until the server has started... (check /vice/srv/SrvLog)
    # volutil create_rep /vicepa vserver.1 0x7f000000 0xe000001

Then back on 'sni',

    # startserver &
    ... wait until the server has started... (check /vice/srv/SrvLog)

    # /usr/sbin/bldvldb.sh sni alfastar
    # volutil makevrdb /vice/db/VRList

And cross your fingers....

Jan
Received on 2001-07-19 09:36:18