Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Limit for Event table size [CORE5617] #5883

Open
firebird-automations opened this issue Sep 19, 2017 · 3 comments
Open

Limit for Event table size [CORE5617] #5883

firebird-automations opened this issue Sep 19, 2017 · 3 comments

Comments

@firebird-automations
Copy link
Collaborator

Submitted by: @pcisar

Replaces CORE5604

Event table can grow without limits. This may lead to crash or server may hang, especially when badly written application registers interest to events in uncontrolled way (quick loop etc.). Engine should prevent this situation by imposing a hard limit to event table size, preferably as configurable value.

@firebird-automations
Copy link
Collaborator Author

Modified by: @pcisar

Link: This issue replaces CORE5604 [ CORE5604 ]

@firebird-automations
Copy link
Collaborator Author

Commented by: Sean Leyne (seanleyne)

For context, how many event (and clients) registrations are we talking about?

@firebird-automations
Copy link
Collaborator Author

Commented by: @pcisar

This limit should be on memory size, not on number of events registered. Right now event table can grow without limits (and when it exceeds several hundred MB's it will cause serious problems, especially when event table management code in engine will not be changed to be more effective and faster). I guess that sensible default limit of 128MB with possibility to change it in configuration would be a good start. Event registration data structure has variable size in relation to event names, so actual number how many events could registered in total will vary.

This request was sparked by real situation when badly written application registered interest for event notification every 20ms. This eventually hangs the server. Right now engine doesn't have any defense to this scenario.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant