Re: oninit: Dictionary Cache and SPL Routine Cache error
Posted in 2005
Topics: Stored Procedures & SPL
Looks like it is forking at the end and dying. ------- open64("/dbms/informix/etc/.infos.demo_on", O_RDWR) = 0 fcntl(0, F_SETLK64, 0xFFBD6D70) = 0 read(0, "\\007\\0\\0\\00201\\b\\0\\0\\0\\0".., 264) = 264 read(0, "\\001\\0\\0\\0\\0\\0\\0 R V H01".., 264) = 264 read(0, "\\004\\0\\0 / d b m s / i n".., 264) = 264 read(0, "\\005\\0\\0 f i n a n c e -".., 264) = 264 read(0, "\\006\\0\\0 I B M I n f o".., 264) = 264 read(0, 0xFFBD6E60, 264) = 0 llseek(0, 0, SEEK_END) = 1320 write(0, "\\0\\b\\0\\0 / d b m s / i n".., 264) = 264 fcntl(0, F_SETLK64, 0xFFBD6D70) = 0 close(0) = 0 umask(022) = 07 umask(07) = 022 getpid() = 4130 [4129] sigprocmask(SIG_SETMASK, 0xFF3AA074, 0xFFBD7250) = 0 fork() = 4131 sigprocmask(SIG_SETMASK, 0xFFBD7250, 0x00000000) = 0 lwp_schedctl(SC_STATE|SC_PREEMPT, 0, 0xFFBD7124) = 0 sigaction(SIGTERM, 0xFFBD6FF8, 0xFFBD71C0) = 0 wait() = 4131 [0x0100] _exit(1) -------------- I can send the full dump logs if you think that would be useful. The only *.iem file it is opening is olserver.iem and that one is there. I'm wondering if the missing message file isn't just a red herring and the real errors lie somewhere else.
Jef wrote:
> Looks like it is forking at the end and dying.
> -------
> open64("/dbms/informix/etc/.infos.demo_on", O_RDWR) = 0
> fcntl(0, F_SETLK64, 0xFFBD6D70) = 0
> read(0, "\\007\\0\\0\\00201\\b\\0\\0\\0\\0".., 264) = 264
> read(0, "\\001\\0\\0\\0\\0\\0\\0 R V H01".., 264) = 264
> read(0, "\\004\\0\\0 / d b m s / i n".., 264) = 264
> read(0, "\\005\\0\\0 f i n a n c e -".., 264) = 264
> read(0, "\\006\\0\\0 I B M I n f o".., 264) = 264
> read(0, 0xFFBD6E60, 264) = 0
> llseek(0, 0, SEEK_END) = 1320
> write(0, "\\0\\b\\0\\0 / d b m s / i n".., 264) = 264
> fcntl(0, F_SETLK64, 0xFFBD6D70) = 0
> close(0) = 0
> umask(022) = 07
> umask(07) = 022
> getpid() = 4130 [4129]
> sigprocmask(SIG_SETMASK, 0xFF3AA074, 0xFFBD7250) = 0
> fork() = 4131
> sigprocmask(SIG_SETMASK, 0xFFBD7250, 0x00000000) = 0
> lwp_schedctl(SC_STATE|SC_PREEMPT, 0, 0xFFBD7124) = 0
> sigaction(SIGTERM, 0xFFBD6FF8, 0xFFBD71C0) = 0
> wait() = 4131 [0x0100]
> _exit(1)
> --------------
>
> I can send the full dump logs if you think that would be useful. The
> only *.iem file it is opening is olserver.iem and that one is there.
>
> I'm wondering if the missing message file isn't just a red herring and
> the real errors lie somewhere else.
Don't send any full output logs to the news group - that wouldn't be fair.
The child is failing...fork() returns 4131, which indicates that the
child process is 4131 (we know from the getpid() a couple of lines
earlier that the oninit process is 4130, and its parent is 4129, likely
to be your shell, or the shell script you're running to run oninit. We
can tell that the child is failing with exit code 1 from the 0x0100.
This 16-bit value encodes the return status in the top 8 bits (0x01),
and the signal information in the lower 8 bits (0x00 - no signal, no
core dump). So, the child terminates abnormally.
As Tsutomu said, truss -f is your friend for following child processes.
I didn't mention it because it seemed likely that your server was dying
before it was forking; evidently, that assumption was incorrect.
Follow the child - children - and see which of those is failing and
writing the failure message. Look at what it was doing immediately
beforehand, to see which operation failed. Some failed operations are
immaterial - others are not. Just seeing a failure does not
automatically condemn the whole process to failure.
You should try truss -f and grep the log for open operations that fail
(bearing in mind that shared libraries may not be loaded from a number
of different directories before being found on the tail of
LD_LIBRARY_PATH). You might also grep for write operations, especially
ones which write the error message texrt.
I've forgotten the initial context - why aren't you going to IBM
Informix Tech Support?
--
Jonathan Leffler #include <disclaimer.h>
Email: jleffler@earthlink.net, jleffler@us.ibm.com
Guardian of DBD::Informix v2005.02 -- http://dbi.perl.org/