Jeroen van Wolffelaar wrote:
> On Fri, Mar 23, 2007 at 05:30:02PM -0700, Steve Langasek wrote:
>   
>> Frankly, though, the init script has a *lot* of bad code that's trying to
>> second-guess start-stop-daemon in ways that it shouldn't.  The right way to
>> fix this is to kill off all of this extra code, let s-s-d what it's designed
>> to, and fix imapproxyd to not bail out with an error *after* it's returned
>> control to the parent process...
>>     
>
> Right, except that I tried that, and it failed.
>
> s-s-d's coverage is unfortunately not good enough: #416179 -- making the
> s-s-d --backround --pid-file workaround useless in this case :(
>
> I see three options, all of them suck:
> (1) fix s-s-d (no way one week before release),
> (2) fix pidfile-writing imapproxy (ugh, but doable, and arguably the
>     best longtime solution),
>   
As in "save the recycler thread's PID instead of any other" ?

I already have a version which daemonizes as late as possible (i.e. just
before launching threads). It does help a bit in the sense that
imapproxy will abort execution before dettaching from the parent (s-s-d
in this case), but not more.
> (3) give up and revert to the sarge "killall imapproxyd" way of stopping
>     the daemon
>
> The current way in this init.d script is worse than the killall
> imapproxyd thingy, it attempts to kill just one (random) instance of
> imapproxyd in a very special way (by first writing some found-via-ps PID
> to the pidfile and then using kill-by-pid...) But anyway it plainly
> fails at this too.
>   
Unfortunately, yes.

This initscript has become a pile of patches one of top of the other.
A rewrite I have done (reverting to the new LSB-compliant
/etc/init.d/skeleton) doesn't work much better, either. In fact, it is
unable to even start imapproxy as it is right now [launching 'manually'
does work]

> As attachment, my NMU patch which would have fixed this whole mess if
> not for #416179. The biggest part of it is still applicable for the
> no-op behaviour of start & stop when already started/stopped, and it
> fixes pid-file-removal.
>
> I think the best way forward would be to go for (2).
>   
If you elaborate a bit more on this, I can get it done tonight, I think.


Otherwise, please feel free to contribute whatever you see fit.
My current set of changes just move the daemonization code into a
function of its own and call it just before pthread_create.


Looking forward to your soon response,

    J.L.



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to