severity 415954 serious quit On Sat, Mar 24, 2007 at 01:10:08AM +0100, José Luis Tallón wrote: > Peter Eisentraut wrote: > > Package: imapproxy > > Version: 1.2.4-10 > > Severity: serious
> This doesn't break unrelated software. No, it breaks the package itself. > > This happened during an upgrade just now: > > Starting IMAP proxy: /etc/init.d/imapproxy: line 56: [: too many arguments > > Failed to start imapproxy. Check logs for details. > > invoke-rc.d: initscript imapproxy, action "start" failed. > > The problem is this code: > > psline="`ps ax | grep imapproxyd | grep -v grep`" > > if [ -n $psline ]; then > > because psline will contain multiple shell words. > > After adding quotes, the start action of the script still fails (exist > > status 1) if the service is already running, which is a violation of > > required init script behavior. > This did work some releases ago. Unfortunately, fixes for other problems > seem to have introduced this bug. Earlier the code was: if [ -n "`ps ax | grep imapproxyd | grep -v grep`" ]; then This didn't have the bug, and further, was only called on stop. The new code is called on start, where it's expected that the ps line *will* return a non-empty value; so the start script is now pretty badly broken. I'm not sure how it passed my tests before I uploaded, really, but I shouldn't have let the change in anyway because it was a change unrelated to the RC bugfix, so that's my fault. 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... -- Steve Langasek Give me a lever long enough and a Free OS Debian Developer to set it on, and I can move the world. [EMAIL PROTECTED] http://www.debian.org/