{"action":"created","issue":{"url":"https://api.github.com/repos/p0pr0ck5/FreeWAF/issues/21","labels_url":"https://api.github.com/repos/p0pr0ck5/FreeWAF/issues/21/labels{/name}","comments_url":"https://api.github.com/repos/p0pr0ck5/FreeWAF/issues/21/comments","events_url":"https://api.github.com/repos/p0pr0ck5/FreeWAF/issues/21/events","html_url":"https://github.com/p0pr0ck5/FreeWAF/issues/21","id":57727757,"number":21,"title":"Limit number of possible timers","user":{"login":"p0pr0ck5","id":4625425,"avatar_url":"https://avatars.githubusercontent.com/u/4625425?v=3","gravatar_id":"","url":"https://api.github.com/users/p0pr0ck5","html_url":"https://github.com/p0pr0ck5","followers_url":"https://api.github.com/users/p0pr0ck5/followers","following_url":"https://api.github.com/users/p0pr0ck5/following{/other_user}","gists_url":"https://api.github.com/users/p0pr0ck5/gists{/gist_id}","starred_url":"https://api.github.com/users/p0pr0ck5/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/p0pr0ck5/subscriptions","organizations_url":"https://api.github.com/users/p0pr0ck5/orgs","repos_url":"https://api.github.com/users/p0pr0ck5/repos","events_url":"https://api.github.com/users/p0pr0ck5/events{/privacy}","received_events_url":"https://api.github.com/users/p0pr0ck5/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/p0pr0ck5/FreeWAF/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":{"login":"p0pr0ck5","id":4625425,"avatar_url":"https://avatars.githubusercontent.com/u/4625425?v=3","gravatar_id":"","url":"https://api.github.com/users/p0pr0ck5","html_url":"https://github.com/p0pr0ck5","followers_url":"https://api.github.com/users/p0pr0ck5/followers","following_url":"https://api.github.com/users/p0pr0ck5/following{/other_user}","gists_url":"https://api.github.com/users/p0pr0ck5/gists{/gist_id}","starred_url":"https://api.github.com/users/p0pr0ck5/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/p0pr0ck5/subscriptions","organizations_url":"https://api.github.com/users/p0pr0ck5/orgs","repos_url":"https://api.github.com/users/p0pr0ck5/repos","events_url":"https://api.github.com/users/p0pr0ck5/events{/privacy}","received_events_url":"https://api.github.com/users/p0pr0ck5/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/p0pr0ck5/FreeWAF/milestones/2","html_url":"https://github.com/p0pr0ck5/FreeWAF/milestones/v0.5","labels_url":"https://api.github.com/repos/p0pr0ck5/FreeWAF/milestones/2/labels","id":976481,"number":2,"title":"v0.5","description":"Focus:\r\n\r\n- File upload / form handling\r\n- Evasion detection and mitigation\r\n- Unit testing\r\n- Behavioral analysis","creator":{"login":"p0pr0ck5","id":4625425,"avatar_url":"https://avatars.githubusercontent.com/u/4625425?v=3","gravatar_id":"","url":"https://api.github.com/users/p0pr0ck5","html_url":"https://github.com/p0pr0ck5","followers_url":"https://api.github.com/users/p0pr0ck5/followers","following_url":"https://api.github.com/users/p0pr0ck5/following{/other_user}","gists_url":"https://api.github.com/users/p0pr0ck5/gists{/gist_id}","starred_url":"https://api.github.com/users/p0pr0ck5/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/p0pr0ck5/subscriptions","organizations_url":"https://api.github.com/users/p0pr0ck5/orgs","repos_url":"https://api.github.com/users/p0pr0ck5/repos","events_url":"https://api.github.com/users/p0pr0ck5/events{/privacy}","received_events_url":"https://api.github.com/users/p0pr0ck5/received_events","type":"User","site_admin":false},"open_issues":4,"closed_issues":6,"state":"open","created_at":"2015-02-12T08:48:38Z","updated_at":"2015-03-01T16:15:25Z","due_on":null,"closed_at":null},"comments":1,"created_at":"2015-02-15T11:50:03Z","updated_at":"2015-03-02T13:33:57Z","closed_at":null,"body":"Per the ngx.timer.at docs:\r\n\r\nBecause timer callbacks run in the background and their running time will not add to any client request's response time, they can easily accumulate in the server and exhaust system resources due to either Lua programming mistakes or just too much client traffic. To prevent extreme consequences like crashing the Nginx server, there are built-in limitations on both the number of \"pending timers\" and the number of \"running timers\" in an Nginx worker process.\r\n\r\nSince expire time granularity is tracked in seconds, add in logic to only create one new timer per second "},"comment":{"url":"https://api.github.com/repos/p0pr0ck5/FreeWAF/issues/comments/76711848","html_url":"https://github.com/p0pr0ck5/FreeWAF/issues/21#issuecomment-76711848","issue_url":"https://api.github.com/repos/p0pr0ck5/FreeWAF/issues/21","id":76711848,"user":{"login":"p0pr0ck5","id":4625425,"avatar_url":"https://avatars.githubusercontent.com/u/4625425?v=3","gravatar_id":"","url":"https://api.github.com/users/p0pr0ck5","html_url":"https://github.com/p0pr0ck5","followers_url":"https://api.github.com/users/p0pr0ck5/followers","following_url":"https://api.github.com/users/p0pr0ck5/following{/other_user}","gists_url":"https://api.github.com/users/p0pr0ck5/gists{/gist_id}","starred_url":"https://api.github.com/users/p0pr0ck5/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/p0pr0ck5/subscriptions","organizations_url":"https://api.github.com/users/p0pr0ck5/orgs","repos_url":"https://api.github.com/users/p0pr0ck5/repos","events_url":"https://api.github.com/users/p0pr0ck5/events{/privacy}","received_events_url":"https://api.github.com/users/p0pr0ck5/received_events","type":"User","site_admin":false},"created_at":"2015-03-02T13:33:57Z","updated_at":"2015-03-02T13:33:57Z","body":"Over-complication at its finest. Just use the exptime time of ngx.shared.DICT.set (http://wiki.nginx.org/HttpLuaModule#ngx.shared.DICT.set)"}}