start-stop-daemon broke on linus tree

Joakim Tjernlund joakim.tjernlund at transmode.se
Thu Apr 17 17:07:10 UTC 2008


On Thu, 2008-04-17 at 13:37 +0200, Joakim Tjernlund wrote:
> On Thu, 2008-04-17 at 03:40 +0200, Denys Vlasenko wrote:
> > On Thursday 17 April 2008 00:47, Joakim Tjernlund wrote:
> > > > -----Original Message-----
> > > > From: Denys Vlasenko [mailto:vda.linux at googlemail.com]
> > > > Sent: den 16 april 2008 20:47
> > > > To: busybox at busybox.net; joakim.tjernlund at transmode.se
> > > > Subject: Re: start-stop-daemon broke on linus tree
> > > > 
> > > > On Wednesday 16 April 2008 19:56, Joakim Tjernlund wrote:
> > > > > Just sent this to the kernel list, figured you might want a copy too,
> > > > > see last in this mail. One more note, stracing
> > > > >  strace -s 120 start-stop-daemon --stop --exec /opt/appl/cuappl02a-r11a-080416jt2/sbin/dropbear
> > > > > shows alot of
> > > > >  readlink("/proc/371/exe", "/opt/appl/cuappl02a-r11a-080416jt2/bin/eq_monolit", 49) = 49
> > > > >  readlink("/proc/373/exe", "/opt/appl/cuappl02a-r11a-080416jt2/bin/eq_monolit", 49) = 49
> > > > >  readlink("/proc/375/exe", "/opt/appl/cuappl02a-r11a-080416jt2/bin/eq_monolit", 49) = 49
> > > > >  readlink("/proc/411/exe", "/opt/appl/cuappl02a-r11a-080416jt2/bin/dropbearmu", 49) = 49
> > > > >
> > > > > 49 bytes seems a little short, we have longer path names than 49 bytes.
> > > > 
> > > > Not really. strlen("/opt/appl/cuappl02a-r11a-080416jt2/sbin/dropbear") = 48.
> > > > We can safely read 48+1 byte only if we only want to know whether it is
> > > > equal to that or not:
> > > 
> > > I also noticed that readlink("/proc/411/exe",..) returns the real file name so
> > > the start-stop-daemon command above won't work when 
> > > /opt/appl/cuappl02a-r11a-080416jt2/sbin/dropbear is a symlink pointing to
> > > /opt/appl/cuappl02a-r11a-080416jt2/sbin/dropbearmulti
> > 
> > start-stop-daemon have serious design problems, judging by the amount
> > of people complaining about it not doing that and not doing this.
> > 
> > Fixing one issue makes something else break.
> > 
> > Why you guys wouldn't try something more sensible, like runsvdir?
> 
> Legacy, got a system that has years on its neck in the field.
> 
> Now that 2.6.25 is out with the changed lseek behaviour I wonder if
> there is a bb solution in sight? Perhaps fstat() would do?
> 
>   Jocke

The patch I just sent will also solve the lseek problem on 2.6.25

 Jocke



More information about the busybox mailing list