Subject | Sever at 100% CPU when using events |
---|---|
Author | bl@wobe-systems.com |
Post date | 2004-04-26T16:49:49Z |
Hi,
it has taken some time to single out the problem but the folowing procedure reproducably get's a Firebird 1.5 Server on Windows to hog the CPU at 100% making further connections perform very poor:
Use a DB with only one stored procedure as follows
CREATE PROCEDURE EVENT_POSTING (
EVNAME VARCHAR (50))
AS
BEGIN
POST_EVENT :EVNAME;
exit;
END
Now connect a client to it and register an event that this client will listen to with the server. Simulating a network problem disable the network card of the PC the connected client resides on and close the app after receiving the expected connection error.
Now reenable the NIC and connect another client that will post the event registered in the first step. Eexecute the stored procedure with the eventname as parameter and viola fbserver goes out and grabs the CPU.
The only way to get the server back to normal is restarting the firebird engine.
As we use events in our production applications this severely interferes with stable system behaviour. Even the most stable network will eventually show connection problems. If this allways renders the server unusable we will have to think about not using events for client notification.
Has anybody else witnessed anything like this? Is this possibly a bug in the engine?
Any ideas ... ?
Best Regards
Bjoern
I can supply an application to reproduce and test.
Some more background info:
Windows XP Professional as Client an Server
also Win2000Server as FBserver and Windows XP Pro as Client
Firebird-1.5.0.4306-Win32.exe
Testapp written with: IBO 4.3.Aa and Delphi 7E
---
wobe-systems GmbH
Bjoern Latte - Software Development
Schauenburger Str. 116
24118 Kiel
it has taken some time to single out the problem but the folowing procedure reproducably get's a Firebird 1.5 Server on Windows to hog the CPU at 100% making further connections perform very poor:
Use a DB with only one stored procedure as follows
CREATE PROCEDURE EVENT_POSTING (
EVNAME VARCHAR (50))
AS
BEGIN
POST_EVENT :EVNAME;
exit;
END
Now connect a client to it and register an event that this client will listen to with the server. Simulating a network problem disable the network card of the PC the connected client resides on and close the app after receiving the expected connection error.
Now reenable the NIC and connect another client that will post the event registered in the first step. Eexecute the stored procedure with the eventname as parameter and viola fbserver goes out and grabs the CPU.
The only way to get the server back to normal is restarting the firebird engine.
As we use events in our production applications this severely interferes with stable system behaviour. Even the most stable network will eventually show connection problems. If this allways renders the server unusable we will have to think about not using events for client notification.
Has anybody else witnessed anything like this? Is this possibly a bug in the engine?
Any ideas ... ?
Best Regards
Bjoern
I can supply an application to reproduce and test.
Some more background info:
Windows XP Professional as Client an Server
also Win2000Server as FBserver and Windows XP Pro as Client
Firebird-1.5.0.4306-Win32.exe
Testapp written with: IBO 4.3.Aa and Delphi 7E
---
wobe-systems GmbH
Bjoern Latte - Software Development
Schauenburger Str. 116
24118 Kiel