Re: help with hp loader errors



Hi,

when a process attaches to shared memory (SHM), then the SHM
segment gets mapped into the processes memory space at some
address. Our processes (oninit, onpload, etc.) usually want to have
SHM segments mapped to their memory space so that several SHM
segments form a contiguous area in the processes memory space.

If some memory area in a processes memory space is already in
use by some other memory object (other SHM segment, shared
libraries, memory heap, memory stack, ...), then the mapping to
the desired address fails, i.e. the system call to do the attach and
mapping fails. This is what happens when a message is given like
"... could not attach ... shared memory segment ...".

onpload processes (created by HPL) are a bit complicated,
because they not only attach to SHM from the server, but they
also have their own SHM segments. Apart from that they may use
some extra memory in the heap and stack memory structures,
especially when run with some (externally implemented) conversion
routines.

By default onpload will try to map the servers SHM segments to
the servers SHMBASE address (as defined in the onconfig file).
Also, by default the onpload will want to map its own SHM segments
to some other address (that I don't know now - it is platform
dependent anyway).

If there is a problem like you see, then you can try to use the
IFX_XFER_SHMBASE environment variable for onpload to
define a different address where onpload will want to map the
servers SHM segments (instead of using the onconfig's SHMBASE).

Also, PLOAD_SHMBASE can be used to define a different address
for onpload where to map its own SHM segments. I think this was
added in some newer version (9.4 or 10.0?: I'm not sure) and I think
it also is an environment variable.

Using these parameters you can avoid that the mapping of SHM
segments into onploads memory space clashes with other
SHM segments or other memory objects already there. It can be
a bit tricky and may require some attempts to figure out useful
values. I guess from your info that you are on a 64-bit platform,
so memory space of processes should be big enough to find
some unused area. :)

You can try to figure out the memory space layout of a running
process. On Linux this is in a pseudo file (for each process)
named /proc/<pid>/maps (where <pid> is the process ID. User
root can look into this file and thus see the memory layout to
figure out where used and unused areas exist in the memory
space of this process.

I do not recommend changing the SHMBASE onconfig file
parameter. This is used by the server (for mapping the servers
own SHM segments into its own memory space). As long as the
server (i.e. the oninit processes) runs fine with a particular
setting of this parameter (and usually this is the value from
the onconfig.std file), I would not change this. (Only when
the server runs into trouble is the time to start fiddling
around with this parameter.)

Regards,
Martin
--
Martin Fuerderer
IBM Informix Development Munich, Germany
Information Management

IBM Deutschland GmbH
Chairman of the Supervisory Board: Hans Ulrich Märki
Board of Management: Martin Jetter (Chairman), Rudolf Bauer, Christian
Diedrich, Christoph Grandpierre, Matthias Hartmann, Andreas Kerstan
Corporate Seat: Stuttgart, Germany; Reg.-Gericht: Amtsgericht Stuttgart,
HRB-Nr.: 14 562 WEEE-Reg.-Nr. DE 99369940

informix-list-bounces@xxxxxxxx wrote on 11.04.2007 15:12:12:

Hi,
I've been testing out doing loads and unloads with the hp loader and
named pipes.
We have 6 cpus, so I orginally named 6 pipes and ran it that way.
The unload works great, the load however gave me load of the following
error:

Client could not attach server shared memory segment, use
IFX_XFER_SHMBASE.

So I figured I'd try it with a less demanding job and only set up 3
pipes for the load and unload jobs.
Again, the unload ran fine, but the load now continuously spews the
following:

09:03:58 Dynamically allocated new virtual shared memory segment (size
4096KB)
09:03:58 Contiguous shared memory segment allocation failed at
0x700000040000000.
Allocation successful at 0x700000610000000.
Check SHMBASE is consistent with the value in
$INFORMIXDIR/etc/onconfig.std.
If you are using the correct SHMBASE value in your ONCONFIG file, then
consider this message informational only.

Is this a bug, or is my SHMBASE somehow configured wrong or what ?

Thank you,
floyd

========================
-<<Floyd Wellershaus>>-
Database Administrator
Unix Administrator

email: fwellers@xxxxxxxxx
Home: 703-430-0805
Cell: 703-477-6045
========================
http://www.one.org/_______________________________________________
Informix-list mailing list
Informix-list@xxxxxxxx
http://www.iiug.org/mailman/listinfo/informix-list

.



Relevant Pages

  • Re: On the relationship between teaching and virtuosity
    ... working the tempo to 100 bpm, after working up the little segments to tempo. ... I always play with a metronome until I am satisfied that the phrase is ... I really exerted myself and managed to memorize VL ... There is a delay while I bring up the memory. ...
    (rec.music.classical.guitar)
  • Re: On the relationship between teaching and virtuosity
    ... I really exerted myself and managed to memorize VL ... There is a delay while I bring up the memory. ... learning and forgetting. ... My "automatic segments controlled by the cerebellum" are certainly the same ...
    (rec.music.classical.guitar)
  • Re: Linux Memory / Process Management on x86
    ... Linux bypases segmentation by setting up 4 segments with the same ... PDE and PTE leave some space for managment information, ... Sharing memory is easy, ...
    (comp.os.linux.misc)
  • Re: On the relationship between teaching and virtuosity
    ... 50 repetitions is of course a fuzzy number because everyone is different. ... My "automatic segments controlled by the cerebellum" are certainly the same ... is retained in a memory separate and unassociated with the piece. ... memorize because it is based on popular music and "riffs". ...
    (rec.music.classical.guitar)
  • Re: eboot.bib question
    ... PM registers. ... controller. ... attribute memory space. ...
    (microsoft.public.windowsce.platbuilder)