Hi Frank,

On Fri, Sep 22, 2023 at 04:36:07PM -0400, Frank Ch. Eigler via Elfutils-devel 
wrote:
> 
> Author: Frank Ch. Eigler <f...@redhat.com>
> Date:   Fri Sep 22 15:30:51 2023 -0400
> 
>     PR30879: intermittent debuginfod crash with unhandled exception
>     
>     Code inspection identified two places where sqlite_ps objects were
>     being created/used outside try/catch protection.  This patch wraps or
>     replaces them.
>     
>     * configure.ac: Look for glibc backtrace headers.
>     * debuginfod.cxx (scan): New function wrapped by a try/catch loop.
>       (sqlite_checkpoint_pb): Use non-exception-producing sqlite functions.
>       (main, my_terminate_handler): New terminate() handler.

The new terminate_handler seems really useful, I wonder why something
like this isn't the default behaviour.

I think I understand the idea behind wrapping scan () to catch the
reportable_exception.

The sqlite_checkpoint_pb looks simpler now. But I must admit I don't
fully understand if the lifetime of the object. The sqlite_ps had a
destructor that called finalize, which I assume isn't necessary?

The code looks good to me.

Did you already catch (haha, pun intended) where/what caused that odd
sparc uncaught exception?

Cheers,

Mark

Reply via email to