This is the mail archive of the elfutils-devel@sourceware.org mailing list for the elfutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


https://sourceware.org/bugzilla/show_bug.cgi?id=25394

            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.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]