Re: Error -25588 and errno 22 from shmat()
Posted in 1999
Topics: Installation, Setup & Upgrades, Connectivity: ESQL/C, 4GL & Embedded SQL, Server Administration, Transactions, Locking & Isolation, Logging & Checkpoints, Networking & sqlhosts Configuration, Platform-Specific Issues, Versions, Editions & End-of-Life
Well, I think I found something. I looked at the truss
output for a few different programs, and found that the
programs that fail are trying to attach the IDS
shmem segment below their break address, which is
rightfully invalid.
Every program tries to attach the segment at 0x00800000.
But I thought this was controlled by SHMBASE - changing
SHMBASE does not change the fact that the programs
try to attach at 0x00800000.
Isn't that what SHMBASE is for?
On Thu, 9 Sep 1999, Tony Flaherty wrote:
> Mmm,
> I had this exact same problem after upgrading to this version on HP-UX 10.20
> and it was due to the kernel parameters for semaphores being set too low, it
> was the semaphore undo structures which needed to be changed in my case.
>
> Hope that helps.
>
> --
> ---------------------------------------
> Tony Flaherty aef@mfs.misys.co.uk
> Analyst Programmer
> Misys Financial Systems
> All statements and opinions are my own,
> Misys don't pay me enough to have opinions
> on their behalf
>
> .
> Ben Fersenheim wrote in message <7r6oth$1vv$1@news.xmission.com>...
> >
> >Hi all -
> >
> >Solaris 2.5.1 Generic_103640-08
> >IDS 7.30.UC7
> >ESQL 7.24.UC7
> >
> >I've recently installed a machine with the above config
> >and am now trying to compile some software packages.
> >The software in question used to run against Online 5.10.
> >I'm having a problem with some of the larger binaries.
> >
> >Some of the compiled programs will fail to connect to
> >the server with the following error:
> >
> >SQL: -25588 The appl process cannot connect to Dynamic server informix7
> >ISAM: 4 Interrupted system call.
> >
> >Other programs executing the same subroutine do not fail.
> >The code is nothing more than:
> >
> >$char dbname = "blah";
> >EXEC SQL DATABASE :dbname;
> >
> >online.log is as clean as could be hoped for.
> >
> >I've tried with EXEC SQL CONNECT TO instead, but to no avail.
> >I watched the processes with truss and found that the executables
> >that fail do so on the following system call:
> >
> >shmat(610, 8388608, 0) = Errno 22 [EINVAL]
> >
> >( 610 is the shmid of the server's shmem segment in this
> >case ). The programs that are working instead show:
> >
> >shmat(610, 8388608, 0) = 0x00800000
> >
> >Since 8388608 = 0x00800000 = The value I had for SHMBASE,
> >I figured I would try changing SHMBASE - no good, although
> >that makes for some interesting errors if you're too
> >naive about it.....
> >
> >I get the same results if i compile the code with
> >the static libs or the dynamic libs.
> >
> >I tried different combinations of entries in sqlhosts
> >( shmem, sockets, etc ) and they all seem to fail the
> >same way.
> >
> >My config info is below. Does anyone have any ideas?
> >
> >Thanks,
> >Ben <ben@bu.edu>
> >
> >sqlhosts
> >--------
> >informix7 onipcshm apollo informix7
> >informix7tcp ontlitcp apollo informix7tcp> >
> >services
> >--------
> >informix7 1549/tcp
> >informix7tcp 1550/tcp
> >
> >onconfig excerpts
> >-----------------
> >SERVERNUM 0 # Unique id corresponding to a Dynamic
> >DBSERVERNAME informix7 # Name of default database server
> >DBSERVERALIASES informix7tcp # List of alternate dbservernames
> >NETTYPE ipcshm,2,200,CPU # Configure poll thread(s) for nettype
> >NETTYPE tlitcp,2,200,NET # Configure poll thread(s) for nettype
> >DEADLOCK_TIMEOUT 60 # Max time to wait of lock in distributed
> >RESIDENT 0 # Forced residency flag (Yes = 1, No = 0)
> >MULTIPROCESSOR 0 # 0 for single-processor, 1 for
> >NUMCPUVPS 10 # Number of user (cpu) vps
> >SINGLE_CPU_VP 0 # If non-zero, limit number of cpu vps to
> >LOCKS 64000 # Maximum number of locks
> >BUFFERS 6000 # Maximum number of shared buffers
> >NUMAIOVPS # Number of IO vps
> >PHYSBUFF 320 # Physical log buffer size (Kbytes)
> >LOGBUFF 32 # Logical log buffer size (Kbytes)> >LOGSMAX 60 # Maximum number of logical log files
> >CLEANERS 1 # Number of buffer cleaner processes
> >SHMBASE 0x0A000000L # Shared memory base address
> >SHMVIRTSIZE 8000 # initial virtual shared memory segment
> >SHMADD 8192 # Size of new shared memory segments
> >SHMTOTAL 0 # Total shared memory (Kbytes).
> >CKPTINTVL 300 # Check point interval (in sec)
> >LRUS 8 # Number of LRU queues
> >LRU_MAX_DIRTY 60 # LRU percent dirty begin cleaning limit
> >LRU_MIN_DIRTY 50 # LRU percent dirty end cleaning limit
> >LTXHWM 50 # Long transaction high water mark
> >LTXEHWM 60 # Long transaction high water mark
> >TXTIMEOUT 300 # Transaction timeout (in sec)
> >STACKSIZE 32 # Stack size (Kbytes)> >
> >
> >
>
>
> > Well, I think I found something. I looked at the truss > output for a few different programs, and found that the > programs that fail are trying to attach the IDS > shmem segment below their break address, which is > rightfully invalid. > > Every program tries to attach the segment at 0x00800000. > But I thought this was controlled by SHMBASE - changing > SHMBASE does not change the fact that the programs > try to attach at 0x00800000. > > Isn't that what SHMBASE is for? > > The SHMBASE address in your onconfig tells the OS to choose it's own base value. The SHMVIRTSIZE is low as is SHMADD, are you overruning the number of segments per process, or the total for the box? When you look in the truss what was the value of exit code of the shmat failure, ?EINVAL Paul Watson # I don't suffer from WF Software Ltd. # stress, I'm just Tel. (+44) 1436 674729 # a carrier Fax. (+44) 1436 678693 # www.wfsoftware.com
In article <7r92o8$stp$1@news.xmission.com>, Ben Fersenheim <ben@bu.edu> writes > > >Well, I think I found something. I looked at the truss >output for a few different programs, and found that the >programs that fail are trying to attach the IDS >shmem segment below their break address, which is >rightfully invalid. > >Every program tries to attach the segment at 0x00800000. >But I thought this was controlled by SHMBASE - changing >SHMBASE does not change the fact that the programs >try to attach at 0x00800000. > >Isn't that what SHMBASE is for? > SHMBASE in the $ONCONFIG file is for VP's to use to attach with. I think The environment variable for clients is $INFORMIXSHMBASE. > -- David Williams
Related threads
- what's the matter with error -25588
- Re: "Network down" on fresh install
- The appl process cannot connect
- Error 25588 : IDS 7.31UD1 on Solaris8