=== Md_ is now known as Md [13:06] im creating a custom upstart script... when i say "service pentaho start" it tells me, job is already running... "service pentaho stop" hangs, and "initctl status pentaho" tells me pentaho is start/killed... what do i do now? :/ [13:07] i want to be able to do a clean start/stop again [13:13] rvgate: does 'status pentaho' show a pid that does not exist? [13:14] SpamapS, yes [13:16] rvgate: ok, you have 'expect fork' set wrong [13:16] rvgate: its a known bug, if you set it wrong then the pid will go missing [13:17] rvgate: you have to exhaust pid space to release the job [13:17] rvgate: (or reboot) [13:17] reboot it is [13:17] dev machine anyway :P [13:17] https://bugs.launchpad.net/upstart/+bug/406397 [13:18] http://heh.fi/tmp/workaround-upstart-snafu [13:18] has a script which does the pid space trick [13:19] rvgate: make sure before you reboot that you disable the start on for the job or it won't help right? :) [13:19] jodh: any progress on that bug btw? [13:19] slangasek: ^^ [13:19] i didnt even bother defining a start on yet, since i need to make sure it works first :P [13:19] IIRC there was some thought that it would go away if we moved away from ptrace [13:21] SpamapS, while the machine reboots... could you explain the "exhaust pid space"... it went way over my head [13:21] SpamapS: a little - watch this space... [13:23] jodh: :) [13:23] rvgate: so when you fork(), you get highestpid+1 [13:24] well.. actually its just a counter that goes up until you reach a free slot [13:24] rvgate: anyway, that counter wraps at 65535 .. so.. you have to keep fork()'ing until the missing pid is re-tried.. then upstart will be able to see that pid, reattach to it, and then watch it die [13:25] haha [13:25] so basicly the pid used gets lost [13:25] unable to find it... unable to stop it.. and it hangs [13:25] There are a bunch of ways I'd love to fix it, but jodh and slangasek have told me "don't bother" for a while.. [13:32] got the script working now again, thanks for the help SpamapS [13:55] SpamapS: I don't remember the "don't bother"... I remember saying we should fix it right instead of extending initctl with an "oops" interface [14:00] slangasek: thats "don't bother" in my head anyway [14:01] heh, well, I wouldn't mind help fixing it right ;) [19:52] jodh: If you're around.. was poking at the logging bits of upstart and wondering about what might happen if a system had way too many upstart processes actively logging.... [19:53] jodh: like, say, 50 active loggers producing > 8K/s [19:53] slangasek: ^^ ? [19:54] SpamapS: if upstart is unable to create a new pty to handle the logging, it emits a error, then degrades the job to "console none" automatically. [19:55] jodh: pty's aren't the problem. Processes blocked on write() to stdout/stderr would be though. [19:55] SpamapS: but if you're talking about lots of jobs producing a ton of output, then you might have issues, yeah. [19:55] jodh: seems to me that the buffer size might need to be configurable. [20:01] SpamapS: are you talking about specifying a buffer size limit? [20:03] jodh: I'm talking about the buffer on the pty. Its just a default buffer size AFAICT.. and my brain says that is only 8K [20:36] SpamapS: kernel code suggests it is 64k, but you might want to check with apw on that. init caches as required to minimise the possibility of jobs blocking on write so I don't think there is much else we can do. About to log off but if you can provoke bad behaviour, please let us know. [20:37] 64k is much better than 8k [20:39] well, 8x better anyway *