Re: ids 9.20 crash on Linux. please help.
Posted in 2000
Topics: Error Codes & Troubleshooting, Versions, Editions & End-of-Life
Konstantin Bakunov wrote:
> hi All..
> Can anybody help me ?
>
> 19:39:01 (-9791): ERROR: Routine execution trap -- procname=<updsst>
> procid=183
> reason: mem
> 19:39:01 Assert Failed: Exception Caught. Type: MT_EX_OS, Context: mem
> 19:39:01 Informix Dynamic Server 2000 Version 9.20.UC1
> 19:39:01 Who: Session(72963, root@app.les.loc, 30410, 276629628)
> Thread(197446, sqlexec, 107a8dd8, 1)
> File: mtex.c Line: 330
> 19:39:01 Action: Please notify Informix Technical Support.
> 19:39:01 stack trace for pid 443 written to /var/tmp/af.72e4a09
> 19:39:01 See Also: /var/tmp/af.72e4a09, shmem.72e4a09.1
OK.
This has nothing to do with Linux.
The problem is that the code in the user-defined function "updsst" is
barfing. The MT_EX_OS reports that the operating system has sent either a
SIGBUS or SIGSEG signal to the oninit process. Under normal circumstances,
this would cause the engine to crash, but in IDS.2000 we "catch" and
"handle" these signals by halting the execution of the thread that invoked
the UDF, rolling it all out, and starting again.
Look at the UDF "updsst". It is doing something illegal. Probably
following a bad pointer.
Paul Brown wrote:
> OK.
>
> This has nothing to do with Linux.
>
> The problem is that the code in the user-defined function "updsst" is
> barfing. The MT_EX_OS reports that the operating system has sent either a
> SIGBUS or SIGSEG signal to the oninit process. Under normal circumstances,
> this would cause the engine to crash, but in IDS.2000 we "catch" and
> "handle" these signals by halting the execution of the thread that invoked
> the UDF, rolling it all out, and starting again.
>
> Look at the UDF "updsst". It is doing something illegal. Probably
> following a bad pointer.
Thank you..
You right it was probably something incorrect with that procedure.. but i
can't imagine what is this...
-------------------------------------
create procedure updsst( nPlata smallint, nLinia smallint, sPz char(1),
nImpuls integer ) returning integer;
define vNzu like tlf.nzu;
define vNr like tlf.nr;
define vRzgImp like tlf.rzn;
define vSm like rzkz.sm;
define vDtTm like tlf.dtz;
define vCtrSm like zkz.nch;
define nScet smallint;
define vCtrNzu like tlf.nzu;
on exception in (-284)
return -284;
end exception;
on exception in (-244)
return -244;
end exception;
let vDtTm = CURRENT;
update tlf set (sst, dtz, imp, rzn) = (sPz, vDtTm, nImpuls, nImpuls-tlf.imp )
where npl = nPlata and nln = nLinia;
insert into plis ( npl, nln, dtz, sst, imp)
values ( nPlata, nLinia, vDtTm, sPz, nImpuls );
select nzu, nr, rzn into vNzu, vNr, vRzgImp from tlf
where npl = nPlata and nln = nLinia;
if vRzgImp < 0 then
let vSm = vRzgImp * (-1);
else
let vSm = vRzgImp;
end if;
if (sPz = "2") then
if (vRzgImp <> 0) and (vNr > 0) then
update rzkz set (dtf, imp, sm, mrk) = (vDtTm, vRzgImp, vSm, 'F')
where nzu = vNzu and nr = vNr; end if;
return 0;
elif (sPz = "3") then
if (vRzgImp <> 0) and (vNr > 0) then
update rzkz set (dtf, imp, sm, mrk) = (vDtTm, vRzgImp, vSm, 'F')
where nzu = vNzu and nr = vNr; end if;
let vNr = vNr + 1;
let nScet = 0;
let vCtrNzu = 0;
while (vCtrNzu = 0) or (vCtrNzu is null)
let nScet = nScet + 1;
if nScet = 3 then
return -1;
end if;
insert into rzkz (nzu, nr, dts, dtf, imp, sm, mrk)
values (vNzu, vNr, vDtTm, vDtTm, 0, 0, 'G'); select nzu into vCtrNzu from rzkz
where nzu = vNzu and nr = vNr and mrk = 'G';
end while;
update tlf set (nr) = (vNr) where npl = nPlata and nln = nLinia; return 0;
else
if (vRzgImp > 0) then
update rzkz set (dtf, imp, sm, mrk) = (vDtTm, vRzgImp, vSm, 'F')
where nzu = vNzu and nr = vNr; end if;
end if;
return 0;
end procedure;
-------------------------------------
I can't see where's something about pointers.......
So, i have a lot of error messages (there's no anything about that routine
execution trap):
---------------------------------------
15:35:36 Logical Log 1120 Complete.
15:35:39 Logical Log 1120 - Backup Started
15:35:39 Logical Log 1120 - Backup Completed
15:35:44 Assert Failed: No Exception Handler
15:35:44 Informix Dynamic Server 2000 Version 9.20.UC1
15:35:44 Who: Session(176, root@app.les.loc, 2043, 276615616)
Thread(244, sqlexec, 107a1518, 1)
File: mtex.c Line: 458
15:35:44 Results: Exception Caught. Type: MT_EX_OS, Context: mem
15:35:44 Action: Please notify Informix Technical Support.
15:35:44 stack trace for pid 440 written to /var/tmp/af.4dc9190
15:35:44 See Also: /var/tmp/af.4dc9190, shmem.4dc9190.0
15:35:52 mtex.c, line 458, thread 244, proc id 440, No Exception Handler.
15:35:52 The Master Daemon Died
15:35:52 PANIC: Attempting to bring system down
----------------------------------
09:30:06 Assert Failed: Mutex Holder Value is not Null
09:30:06 Informix Dynamic Server 2000 Version 9.20.UC1
09:30:06 Who: Session(3570, cpp@app.les.loc, 22117, 272280636)
Thread(16544, sqlexec, 1037cf58, 1)
File: mt.c Line: 6136
09:30:06 stack trace for pid 537 written to /var/tmp/af.4488ba5d
09:30:06 Process exited with return code 142: /bin/sh /bin/sh -c
/opt/informix
09:30:07 See Also: /var/tmp/af.4488ba5d, shmem.4488ba5d.0
09:30:27 mt.c, line 6136, thread 16544, proc id 537, Mutex Holder Value isnot
09:30:35 The Master Daemon Died
09:30:37 PANIC: Attempting to bring system down
-------------------------------------
08:55:49 Process exited with return code 1: /bin/sh /bin/sh -c
/opt/informix/e
08:55:49 Logical Log 810 - Backup Completed
08:55:55 Assert Failed: Memory block header corruption detected in
mt_shm_free
08:55:55 Informix Dynamic Server 2000 Version 9.20.UC1
08:55:55 Who: Session(3743, rita@srvgos.les.loc, -1, 276616068)
Thread(13265, sqlexec, 107a31d8, 1)
File: mtshpool.c Line: 2851
08:55:55 Results: Pool repaired
08:55:55 Action: Please notify Informix Technical Support.
08:55:55 stack trace for pid 443 written to /var/tmp/af.37b904da
08:55:55 See Also: /var/tmp/af.37b904da, shmem.37b904da.0
08:56:10 Assert Failed: No Exception Handler
08:56:10 Informix Dynamic Server 2000 Version 9.20.UC1
08:56:10 Who: Session(3743, rita@srvgos.les.loc, -1, 276616068)
Thread(13265, sqlexec, 107a31d8, 1)
File: mtex.c Line: 458
08:56:10 Results: Exception Caught. Type: MT_EX_OS, Context: mem
08:56:10 Action: Please notify Informix Technical Support.
08:56:10 stack trace for pid 443 written to /var/tmp/af.37b904da
08:56:10 See Also: /var/tmp/af.37b904da, shmem.37b904da.1
08:56:20 mtex.c, line 458, thread 13265, proc id 443, No Exception Handler.
08:56:21 The Master Daemon Died
08:56:21 PANIC: Attempting to bring system down
---------------------------------------------------
May be the problem is that i have kernel-2.2.14 and glibc-2.1.3 ?
Thank you for your time.