Coda File System

Re: rdsinit problem coda-5.3.12

From: Jan Harkes <jaharkes_at_cs.cmu.edu>
Date: Tue, 23 Jan 2001 11:08:21 -0500
On Tue, Jan 23, 2001 at 04:47:01PM +0100, Jigal Weinberg wrote:
> Hi,
> 
> I am trying to get coda to run on my alpha machine.
> Whitch might not be a good idea. But nonetheless I am trying it.

We have LWP and RVM cleaned up and working well on the Alpha processors.
The next big step will be RPC2.

The biggest problem is:

-   typedef long RPC2_Integer;
+   typedef int RPC2_Integer;

After that all hell breaks loose, but... the RPC2_Integer must become a
32-bit value on Alpha. Later on a 64-bit type could be defined, but all
existing (and working) platforms assume RPC2_Integer to be 32-bits.

> When compiling I encountered a few problems with casts.
> vice_file.c: In function `vice_file':
> vice_file.c:52: warning: cast to pointer from integer of different size

Yes, but you don't see the hundreds of problems that are hidden by casts
and obscurity, such as in the rpc2 marshalling/unmarshalling code,

    *(RPC2_Integer *)_ptr = (RPC2_Integer)value1;
    (char *)_ptr += 4;
    *(RPC2_Integer *)_ptr = (RPC2_Integer)value2;
    (char *)_ptr += 4;

The compiler will not give you any warnings, but a lot of important data
gets lost or corrupted this way.

> Next I got an error per taining the following message:
> 
> Rdsinit will initialize data and log.
> This takes a while.
> rvm_initialize succeeded.
> Going to initialize data file to zero, could take awhile.
> done.
> rdsinit: rds_init.c:107: rds_init_heap: Assertion `(char *)addr <= base + length' failed.
> /usr/sbin/vice-setup-rvm: line 300: 16575 Aborted                 /usr/sbin/rdsinit -f $log $data $parms

rdsinit will work on the Alpha, it just needs to have the right
parameters. It looks like some length is not big enough either heap,
static, or total segment length.

Jan
Received on 2001-01-23 11:08:37