Coda File System

Re: Venus died

From: Denis Chapligin <chollya_at_satgate.net>
Date: Wed, 7 Sep 2005 10:59:23 +0300
Hello

On Tue, Sep 06, 2005 at 01:47:01PM -0400, Jan Harkes wrote:
> > venus: refcounted.h:55: void RefCountedObject::PutRef(): Assertion
> > `refcount > 0
> > ' failed.
> 
> This is where we drop the reference count on some internal object and it
> is already down to zero (or even negative). My guess is that this was
> fixed in Coda-6.0.11,
> 
> - Fix iterators to make sure we keep objects pinned down with a refcount
>   to prevent them from being pulled out when we yield (make an RPC2 call)
>   during the iteration.

Okay, i've upgraded client to 6.0.11 and found a new bug:) 
If server listens on one interface and clients tries to connect using
another one interface on server, the server tells to the client the hostname of
correct interface. But if this interface isn't accessible from the client,
venus will die with:

====
venus: refcounted.h:55: void RefCountedObject::PutRef(): Assertion
`refcount > 0
' failed.
10:43:11 Fatal Signal (6); pid 2296 becoming a zombie...
10:43:11 You may use gdb to attach to 2296
10:43:18 RecovTerminate: dirty shutdown (1 uncommitted transactions)
====

and after it venus will never start, failing during initialization.

====
11:29:10 starting FSDB scan (4166, 100000) (25, 75, 4)
11:29:10        4 cache files in table (0 blocks)
11:29:10        4162 cache files on free-list
venus: refcounted.h:55: void RefCountedObject::PutRef(): Assertion
`refcount > 0
' failed.
11:29:10 Fatal Signal (6); pid 2367 becoming a zombie...
11:29:10 You may use gdb to attach to 2367
11:29:23 RecovTerminate: dirty shutdown (1 uncommitted transactions)
====

so the only way to run venus is to reinitialize it. This bug is not a very
big problem, but it would be great if sometimes it will be fixed ;)

-- 
						Denis Chapligin

Received on 2005-09-07 04:02:07