[Bug debuginfod/25394] New: groom vs. scan race condition

fche at redhat dot com sourceware-bugzilla@sourceware.org
Wed Jan 15 23:10:00 GMT 2020


            Bug ID: 25394
           Summary: groom vs. scan race condition
           Product: elfutils
           Version: unspecified
            Status: NEW
          Severity: normal
          Priority: P2
         Component: debuginfod
          Assignee: fche at redhat dot com
          Reporter: fche at redhat dot com
                CC: elfutils-devel at sourceware dot org
  Target Milestone: ---

The grooming thread tries to nuke orphan buildid records (those with no d/e/s
type payload records pointing to them).  This can race with the stages of
creation of a payload record in the scanner threads, wherein a buildid record
is interned first, then the referring d/e/s record is written.  If these are
interleaved just right, the d/e/s record will be disallowed, so the file or
archive data will be incomplete.  Worse, since the size/mtime payload record is
still written (because the scanner threads think d/e/s was successful), a later
scan pass will not try to rescan the affected file/archive either.

We need some A(tomicity) in the scanner threads (a transaction that includes
the interning and the payload inserts).  And we probably need a schema reset,
just so possibly incomplete databases are regenerated correctly.

You are receiving this mail because:
You are on the CC list for the bug.

More information about the Elfutils-devel mailing list