On Thu, Aug 25, 2011 at 8:01 PM, Aaron Colwell <[email protected]> wrote: > Hi, > I started a thread with the following message on the FFmpeg-devel list and > someone suggested that I start a discussion on this list as well. Any help > you could provide would be greatly appreciated. > Thanks, > Aaron > > ---------- Forwarded message ---------- > From: Aaron Colwell <[email protected]> > Date: Thu, Aug 25, 2011 at 11:26 AM > Subject: Race conditions in libavcodec/pthread.c > To: [email protected] > > > Hi, > Some recent changes to Chromium unit tests have caused FFmpeg decoding to > get regularly scrutinized by our ThreadSanitizer tool. This has led to the > detection of a variety of race conditions in libavcodec/pthread.c . Quick > inspection of the code reveals that there is significant use of the > "double-checked locking" anti-pattern and inconsistent use of > PerThreadContext::mutex and PerThreadContext::progress_mutex which are > likely causing of most of the race conditions. I wanted to ask a few > questions before jumping in and trying to fix this. > 1. Are you already aware of these issues? > 2. Is someone already working on fixing these? > 3. Who is the expert on libavcodec/pthread.c so I can direct questions to > them? > 4. Why is "double-checked locking" being used? Will there be significant > protest if I remove it? > 5. What is the relationship between PerThreadContext::mutex > & PerThreadContext::progress_mutex and what member variables are they > supposed to protect? I've seen cases where only mutex is held, mutex & > progress_mutex are held, and only progress_mutex is held. At times these 3 > cases appear to modify the same state variables. ThreadSanitizer is getting > stuck on some test runs now which leads me to believe that there is a > locking pattern that results in deadlock. > 6. Is someone else interested in tackling this? > Thanks, > Aaron > > _______________________________________________ > libav-devel mailing list > [email protected] > https://lists.libav.org/mailman/listinfo/libav-devel > >
Hi Ronald, Could this issue possibly be the cause of the (h264-conformance-mr3_tandberg_b && threads == 2) failures? _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
