Thank you,
I already sent DBMS log to CA. They have not gotten back yet.
I was so lucky and caught the following query on another machine. How
many are out there...:o(?
Warning! the following query will bring down INGRES database and you
will get a friendly E_DMA469_PROCESS_HAS_DIED .
with no other trace.
SELECT DISTINCT fac.fac_id , TRIM(address.street_nbr) as street_nbr ,
TRIM(address.street_nbr_sfx) as street_nbr_sfx ,
TRIM(address.street_dir) as street_dir ,
TRIM(address.street_name) as street_name , TRIM(address.street_sfx) as
street_sfx , TRIM(address.street_apt) as street_apt ,
TRIM(address.city) as city , TRIM(address.state) as state ,
TRIM(address.zip) as zip , TRIM(address.zip_four) as zip_four ,
fac.fac_status , fac.zone , fac_bus_info.name FROM fac ,
address , fac_bus_info
WHERE ( address.bus_info_id = fac_bus_info.bus_info_id ) and (
fac.bus_info_id = fac_bus_info.bus_info_id ) and
( ( fac.fac_id in
(136,136,136,236,236,236,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,434,465,465,
1003, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206,
1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1206, 1308, 1744, 1744,
1744, 1744, 1744...this list go on to 1116 count of
facilities...,12345,232843
) ) and ( address.system_type = 'LOC' ) )
ORDER BY fac.fac_id ASC
As you can see, this is a 3 page in clause. Why our beloved programmer
do that...is beyond my understanding.
We ran into a similar case on Ingres 2.0 where they put 500 return
characters in a simple SQL which brought down I2.0 (no fix for it, CA-
just pump up to a much higher number, I forgot what is the max). The
good thing about I2.0 it will tell us who is the last person unlike
I2.6 E_DMA469_PROCESS_HAS_DIED .
As far as I know, some one internal can build a coffee break button and
submit this query through ODBC....no trace.
I will work with CA on this problem and let you all know.
Thank you,
Hoan
ghingres@yahoo.co.uk - 07 May 2005 13:01 GMT
Great News...
And you don't need to do an OS upgrade to get round problem ;-)
CA should be already aware of a large IN clause causing the problem
it was what was causing our first set of DMA469's... We put forard the
suggestion that the query optimizer should internally store a large IN
clause as a temporary internal table and perform a comparison against
that rather than stacking (and thus going bang) - HEY ANY R3 People
wanna have a look ?? Apparently on other OS's you do get a stack
overflow messsage, on Tru64 you get nothing - but DMA469 when running
OS threads...
Fun thing to do (on your test box), switch to Ingres threads and run
that same 3 page IN clause... you'll see it is more helpful in telling
you whoops - blown stack ;-)
Glad you're a happier bunny
Cheers
Gary
Betty & Karl Schendel - 07 May 2005 15:04 GMT
> CA should be already aware of a large IN clause causing the problem
>it was what was causing our first set of DMA469's... We put forard the
>suggestion that the query optimizer should internally store a large IN
>clause as a temporary internal table and perform a comparison against
>that rather than stacking (and thus going bang) - HEY ANY R3 People
>wanna have a look ??
R3 doesn't process IN's recursively any more. I wouldn't expect any
stack overflow or crash for large IN's in R3.
Karl
Thai - 10 May 2005 17:13 GMT
I ran the same query on R3. It did do anything on my R3. Very
interesting the way Ingres handles error.
Hoan