[bitbake-devel] [PATCH] lib/bb/utils: fix set_process_name

Richard Purdie richard.purdie at linuxfoundation.org
Tue Jul 12 23:00:48 UTC 2016


On Tue, 2016-07-12 at 08:20 -0700, Christopher Larson wrote:
> 
> On Tue, Jul 12, 2016 at 8:15 AM, Ross Burton <ross.burton at intel.com>
> wrote:
> > With Python 3 create_string_buffer needs a bytes() not a str() but
> > as we were
> > catching all exceptions nobody noticed.
> > 
> > [ YOCTO #9910 ]
> > 
> > Signed-off-by: Ross Burton <ross.burton at intel.com>
> > ---
> >  bitbake/lib/bb/utils.py | 5 ++---
> >  1 file changed, 2 insertions(+), 3 deletions(-)
> > 
> > diff --git a/bitbake/lib/bb/utils.py b/bitbake/lib/bb/utils.py
> > index 0a1bf68..3bc2437 100644
> > --- a/bitbake/lib/bb/utils.py
> > +++ b/bitbake/lib/bb/utils.py
> > @@ -1444,9 +1444,8 @@ def set_process_name(name):
> >      # This is nice to have for debugging, not essential
> >      try:
> >          libc = cdll.LoadLibrary('libc.so.6')
> > -        buff = create_string_buffer(len(name)+1)
> > -        buff.value = name
> > -        libc.prctl(15, byref(buff), 0, 0, 0)
> > +        buf = create_string_buffer(bytes(name, 'utf-8'))
> > +        libc.prctl(15, byref(buf), 0, 0, 0)
> >      except:
> >          pass
> > 
> Why are we catching all exceptions, anyway? That's not usually a good
> idea.

The variety of ways cdll and direct syscalls can fail is potentially
quite large in this code block and if this doesn't work, its not really
a big deal, its there for debugging so at the time it seemed reasonable
just to continue if it fails. If someone wants to figure out the
different cdll failure modes on various distros, I'm happy for them to
do so and send a patch. Obviously it did hurt in the python3 transition
but we won't do that every day...

Cheers,

Richard





More information about the bitbake-devel mailing list