Subject Re: [firebird-support] v1.52 Abnormal Termination bug?
Author Helen Borrie
At 01:39 PM 8/06/2005 +0000, you wrote:
>Whilst debugging my app, I noticed that Firebird v1.52 SS kept
>abnormally terminating. I tracked it down to a recent trigger I'd added:
>
>CREATE TRIGGER CONTACTS_CHANGED FOR CONTACTS ACTIVE AFTER INSERT OR
>UPDATE OR DELETE POSITION 1 AS
>begin
> POST_EVENT 'CONTACT_CHANGED_' || old.contact_id;
>end
>
>Everytime

== or just after inserts?

>this executed, the Firebird server terminated. It was my
>mistake to refer to 'old.contact_id' in a trigger that is called after
>an insert, but I'm surprised Firebird crashed.

It's quite valid to refer to old.thingie in an after update or after delete
trigger; and a bad context reference in an after insert trigger should at
most cause an exception, not crash the server.

What's the data type of contact_id? Is it potentially longer than 62 bytes?

I'm more inclined to suspect maybe a deeper bug, in the callback mechanism
itself. POST_EVENT obviously isn't a lot of use if you make up its string
on the fly. The idea of events is for client apps to *know* what the event
identifiers are and to listen for them. Your attempt to "enhance" the
event by adding run-time data to it should be trapped somehow (but
apparently isn't), even if it is just swallowed.

No exception should crash the server. Please prepare a reproducible test
case and offer it initially in firebird-devel. Make sure you are explicit
about the version[s] of both server and client that were involved.

./heLen