(I think I might have missed a reply here... sorry if this is redundant)

It looks like your system has a limit of 64 shared memory segments, and its
thinking that the max segment size is 4Meg - so its taking 100 segments to
get 400 meg total.   DX 3.1.4 must be using a different default, and the
right number must be at least 400/64 if 3.1.4 works.  The offending code is
in src/exec/libdx/mem.c.  It looks to see if SHMMAX is defined, and if not,
sets it to 256M.   It allows this to be overriden by the DXSHMEMSEGMAX env
variable.  So one of two things is happening - either its picking up a bad
value for SHMEM from somewhere in your system includes, or somewhere,
DXSHMEMSEGMAX is getting set.

You can see if DXSHMEMSEGMAX is assigned a value anywhere by creating a
little shell file foo:

#! /bin/sh
echo DXSHMEMSEGMAX is $DXSHMEMSEGMAX

Then set the shell file to executable (chmod a+x foo), and

dx -exec ./foo -script

You're fooling it into thinking that foo is a valid dxexec, and what it
prints will tell you whether the env var is set when the dx script finally
gets around to calling dxexec - where the problem is.

I'd guess if you set an environment variable DXSHMEMSEGMAX to 8 it'll work
- you'll need only 50 segments.  Of course, the right anwer is to figure
out what the correct max segment size on your system is.   Unless its
getting overridden somewhere by the dx scripts, and the above test should
show you that.

Hope this helps.  Probably the biggest single difference between 3.1.4 and
OpenDX is that OpenDX uses the GNU automatic configuration stuff, rather
than the hand-made configuration we used when we released binaries from
IBM.  So its always possible that the configuration - eg. the include files
it uses - differ between the two.

Greg


"Betsy Foote" <[EMAIL PROTECTED]>@opendx.watson.ibm.com on 03/08/2001
03:04:47 PM

Please respond to [email protected]

Sent by:  [EMAIL PROTECTED]


To:   [email protected]
cc:
Subject:  Re: [opendx-users] cannot attach shared memory segment



I was just able to run version 3.1.4 of dx with the same arguments as
below, on the same machine, and was able to start up dx successfully.
So there appears to be some difference between 3.1.4 and 4.1 for this
case. Any ideas?

Betsy


>I'm running OpenDX on an 8 processor Compaq AlphaServer with 8GB of
>shared memory. When I start up dx with:
>
>    dx -memory 400 -program junk.net
>
>I get the following error message.
>
>Connection to server east failed:
>Starting DX executive
>Error during Initialization
>cannot attach shared memory segment/failed on segment 65 of 100 needed
>segments/last call to shmat returned errno=24
>cannot initialize DX library
>
>Although I cannot try it out anymore, I believe this used to work with
>version 3.1.4.
>
>Any ideas as to what is going on and how to be able to use 400M of
>memory?
>
>Thanks,
>
>Betsy



Reply via email to