Status: Unconfirmed
Owner: ----
Labels: OS-Linux Area-Misc Size-Medium Type-Bug

New issue 15473 by timurrrr: Data race in DirectoryWatcherImpl
http://code.google.com/p/chromium/issues/detail?id=15473

Chrome Version       : SVN r16070-19400 (at least)
OS + version : Linux

The data race was detected using ThreadSanitizer (see
http://code.google.com/p/data-race-test/wiki/ThreadSanitizer ).

The race can be proved using RaceChecker class (see
http://code.google.com/p/data-race-test/wiki/RaceCheckerClass )

What steps will reproduce the problem?
1. Apply the attached patch (adds RaceChecker class files into base/...,
adds dependencies for these files and puts RaceChecker calls into
base/directory_watcher_inotify.cc)
2. gclient sync && hammer -C build base_unittests
3. RACECHECKER=1 RACECHECKER_SLEEP_MS=100 ./sconsbuild/Debug/base_unittests
--gtest_filter="DirectoryWatcherTest*"

What happens instead?
Race found between these points
=== writer:
./sconsbuild/Debug/base_unittests[0x8345248]
./sconsbuild/Debug/base_unittests(_ZN16DirectoryWatcher5WatchERK8FilePathPNS_8DelegateEP11MessageLoopb+0x42)[0x823db6a]
./sconsbuild/Debug/base_unittests[0x823d9b2]
./sconsbuild/Debug/base_unittests(_ZN7testing4Test3RunEv+0x7e)[0x84300ec]
./sconsbuild/Debug/base_unittests(_ZN7testing8internal12TestInfoImpl3RunEv+0xb1)[0x8433d71]
./sconsbuild/Debug/base_unittests(_ZN7testing8internal12TestInfoImpl7RunTestEPNS_8TestInfoE+0x19)[0x843895f]
./sconsbuild/Debug/base_unittests(_ZNK7testing8internal4ListIPNS_8TestInfoEE7ForEachIPFvS3_EEEvT_+0x2b)[0x843467b]
./sconsbuild/Debug/base_unittests(_ZN7testing8TestCase3RunEv+0x9a)[0x8433c5c]
./sconsbuild/Debug/base_unittests(_ZN7testing8TestCase11RunTestCaseEPS0_+0x11)[0x8438943]
./sconsbuild/Debug/base_unittests(_ZNK7testing8internal4ListIPNS_8TestCaseEE7ForEachIPFvS3_EEEvT_+0x2b)[0x84344ef]
./sconsbuild/Debug/base_unittests(_ZN7testing8internal12UnitTestImpl11RunAllTestsEv+0x1f7)[0x8433acd]
./sconsbuild/Debug/base_unittests(_ZN7testing8UnitTest3RunEv+0x14)[0x8433bc0]
./sconsbuild/Debug/base_unittests(_ZN9TestSuite3RunEv+0x138)[0x82b4b34]
./sconsbuild/Debug/base_unittests(main+0x46)[0x82b43ca]
=== reader:
./sconsbuild/Debug/base_unittests[0x83446fd]
./sconsbuild/Debug/base_unittests[0x8344954]
./sconsbuild/Debug/base_unittests[0x8346102]
./sconsbuild/Debug/base_unittests(_ZN11MessageLoop7RunTaskEP4Task+0xce)[0x836426c]
./sconsbuild/Debug/base_unittests(_ZN11MessageLoop21DeferOrRunPendingTaskERKNS_11PendingTaskE+0x35)[0x8364787]
./sconsbuild/Debug/base_unittests(_ZN11MessageLoop6DoWorkEv+0xfb)[0x8364b33]
./sconsbuild/Debug/base_unittests(_ZN4base18MessagePumpDefault3RunEPNS_11MessagePump8DelegateE+0xc9)[0x836c039]
./sconsbuild/Debug/base_unittests(_ZN11MessageLoop11RunInternalEv+0xc7)[0x83650d5]
./sconsbuild/Debug/base_unittests(_ZN11MessageLoop10RunHandlerEv+0x11)[0x83650ef]
./sconsbuild/Debug/base_unittests(_ZN11MessageLoop3RunEv+0x23)[0x8365153]
./sconsbuild/Debug/base_unittests(_ZN4base6Thread10ThreadMainEv+0xca)[0x839bb3c]
./sconsbuild/Debug/base_unittests[0x8375382]

The data race happens on a number of DirectoryWatcherImpl fields of
different types, including string (scary).
The data race may result in a segfault, for example try RACECHECKER=1.

Attachments:
        DirectoryWatcher_race.patch  11.8 KB

--
You received this message because you are listed in the owner
or CC fields of this issue, or because you starred this issue.
You may adjust your issue notification preferences at:
http://code.google.com/hosting/settings

--~--~---------~--~----~------------~-------~--~----~
Automated mail from issue updates at http://crbug.com/
Subscription options: http://groups.google.com/group/chromium-bugs
-~----------~----~----~----~------~----~------~--~---

Reply via email to