Hi Whit,

On 5/13/11 10:12 AM, Whit Morriss wrote:
Maybe pluggable logging in general?

Logger instances are created by a factory called getLogger() in the supervisor.options module. We could allow another callable to be specified in supervisord.conf instead. I would be open to patches for this after the 3.0 final release.

Maybe? it is specific to the act of rotation.  I don't know of another case
where you would need to track open file handles for logging, but I'm really
don't know.

I'd lean on only doing this with the rotating handler unless there's another case where it could provide some benefit.

I'll have to check. One of the tests was crafted specifically to illustrate
the scattering inode problem and failed before patching (I wrote it first
before the patch).  That being said, I did quite a few contortions try to
get the original github fork to be an actual official fork and something
might have been lost in the process.

I would like to apply a fix for this issue for 3.0. If you have some time, it would be great if you can take another look.

In general, it sounds like we should flush the filehandle dict on
configuration change to prevent this leakage.  A class attribute is sort of
icky, but I didn't see a sensible place to store the filehandles as part of
the state of the running server.

An alternative could be a reference counter like what Roger did with the FCGI sockets. Decrement the count on each close(), remove the key from the dict if it goes to zero.

Thanks,
Mike

--
Mike Naberezny
Maintainable Software
http://maintainable.com

_______________________________________________
Supervisor-users mailing list
[email protected]
http://lists.supervisord.org/mailman/listinfo/supervisor-users

Reply via email to