Re: [PATCH v8 01/16] perf python: Add more exceptions on error paths
From: Ian Rogers
Date: Thu Jul 24 2025 - 11:05:30 EST
On Wed, Jul 23, 2025 at 5:40 PM Namhyung Kim <namhyung@xxxxxxxxxx> wrote:
>
> On Wed, Jul 23, 2025 at 04:22:02PM -0700, Ian Rogers wrote:
> > Returning NULL will cause the python interpreter to fail but not
> > report an error. If none wants to be returned then Py_None needs
> > returning. Set the error for the cases returning NULL so that more
> > meaningful interpreter behavior is had.
>
> Nit: I still don't get what "add more exceptions" means. What I'm
> seeing is adding more error messages. Also returning NULL from this
> function won't pass it to the interpreter as the convert checks the
> return value.
So it isn't error messages, calling for example:
PyErr_Format(PyExc_TypeError, "Unexpected header type %u",
event->header.type);
is like setting errno as in there is a global/thread-local current
exception object. When this is set/pending, returning any value will
cause the interpreter to throw an exception on return, so NULL is an
okay return value - normally for returning NULL you need to return
Py_NONE. Anyway, the old code was returning NULL but without the errno
like exception object set and so the interpreter was crashing/failing.
> But anyway, looks good to me.
Thanks,
Ian
> Thanks,
> Namhyung
>
> >
> > Signed-off-by: Ian Rogers <irogers@xxxxxxxxxx>
> > Tested-by: Arnaldo Carvalho de Melo <acme@xxxxxxxxxx>