DynamoRIO / drmemory

Memory Debugger for Windows, Linux, Mac, and Android
Other
2.41k stars 256 forks source link

UNADDR in msvcrt.dll!lock on base_unittests #610

Open derekbruening opened 9 years ago

derekbruening commented 9 years ago

From bruen...@google.com on October 04, 2011 20:48:50

these are making the base_ bot red:

UNADDRESSABLE ACCESS: reading 0x0520ad44-0x0520ad48 4 byte(s)

0 msvcrt.dll!lock

1 msvcrt.dll!strncmp

2 msvcrt.dll!vsnwprintf_l

3 msvcrt.dll!vsnwprintf

4 SHELL32.dll!SHFree

5 SHELL32.dll!SHFree

6 SHELL32.dll!Ordinal723

7 SHELL32.dll!Ordinal723

8 SHELL32.dll!Ordinal723

9 SHELL32.dll!SHRestricted

10 SHELL32.dll!SHRestricted

11 SHELL32.dll!SHGetDiskFreeSpaceExW

12 SHELL32.dll!SHGetDiskFreeSpaceExW

13 SHELL32.dll!SHGetFolderPathEx

14 SHELL32.dll!SHGetFolderPathW

15 base::PathProviderWin [base\base_paths_win.cc:70]

16 PathService::Get [base\path_service.cc:209]

17 `anonymous namespace'::ReturnsValidPath [base\path_service_unittest.cc:23]

18 PathServiceTest_Get_Test::TestBody [base\path_service_unittest.cc:68]

19 testing::internal::HandleExceptionsInMethodIfSupportedtesting::Test,void [testing\gtest\src\gtest.cc:2145]

Note: @0:00:23.812 in thread 2876 Note: prev lower malloc: 0x0520aca0-0x0520acc4 Note: instruction: mov 0x6c(%eax) -> %ecx

15:25:31 drmemory_analyze.py [ERROR] UNADDRESSABLE ACCESS: reading 0x0520ad40-0x0520ad44 4 byte(s)

0 msvcrt.dll!lock

1 msvcrt.dll!strncmp

2 msvcrt.dll!vsnwprintf_l

3 msvcrt.dll!vsnwprintf

4 SHELL32.dll!SHFree

5 SHELL32.dll!SHFree

6 SHELL32.dll!Ordinal723

7 SHELL32.dll!Ordinal723

8 SHELL32.dll!Ordinal723

9 SHELL32.dll!SHRestricted

10 SHELL32.dll!SHRestricted

11 SHELL32.dll!SHGetDiskFreeSpaceExW

12 SHELL32.dll!SHGetDiskFreeSpaceExW

13 SHELL32.dll!SHGetFolderPathEx

14 SHELL32.dll!SHGetFolderPathW

15 base::PathProviderWin [base\base_paths_win.cc:70]

16 PathService::Get [base\path_service.cc:209]

17 `anonymous namespace'::ReturnsValidPath [base\path_service_unittest.cc:23]

18 PathServiceTest_Get_Test::TestBody [base\path_service_unittest.cc:68]

19 testing::internal::HandleExceptionsInMethodIfSupportedtesting::Test,void [testing\gtest\src\gtest.cc:2145]

Note: @0:00:23.812 in thread 2876 Note: prev lower malloc: 0x0520aca0-0x0520acc4 Note: instruction: mov 0x68(%eax) -> %ecx

15:25:31 drmemory_analyze.py [ERROR] UNADDRESSABLE ACCESS: reading 0x0520ad48-0x0520ad49 1 byte(s)

0 msvcrt.dll!tolower

1 msvcrt.dll!strncmp

2 msvcrt.dll!vsnwprintf_l

3 msvcrt.dll!vsnwprintf

4 SHELL32.dll!SHFree

5 SHELL32.dll!SHFree

6 SHELL32.dll!Ordinal723

7 SHELL32.dll!Ordinal723

8 SHELL32.dll!Ordinal723

9 SHELL32.dll!SHRestricted

10 SHELL32.dll!SHRestricted

11 SHELL32.dll!SHGetDiskFreeSpaceExW

12 SHELL32.dll!SHGetDiskFreeSpaceExW

13 SHELL32.dll!SHGetFolderPathEx

14 SHELL32.dll!SHGetFolderPathW

15 base::PathProviderWin [base\base_paths_win.cc:70]

16 PathService::Get [base\path_service.cc:209]

17 `anonymous namespace'::ReturnsValidPath [base\path_service_unittest.cc:23]

18 PathServiceTest_Get_Test::TestBody [base\path_service_unittest.cc:68]

19 testing::internal::HandleExceptionsInMethodIfSupportedtesting::Test,void [testing\gtest\src\gtest.cc:2145]

Note: @0:00:23.812 in thread 2876 Note: prev lower malloc: 0x0520aca0-0x0520acc4 Note: instruction: test 0x70(%eax) $0x02

Original issue: http://code.google.com/p/drmemory/issues/detail?id=610

derekbruening commented 9 years ago

From timurrrr@google.com on October 06, 2011 07:11:57

Example failure: http://build.chromium.org/p/chromium.fyi/builders/Windows%20Tests%20%28DrMemory%20Win%207%29/builds/45/steps/memory%20test%3A%20base/logs/stdio I can't repro that locally with $ tools\valgrind\chrome_tests.bat -t base --tool drmemory_light --gtest_filter="PathServiceTest.*"

Maybe one should run the preceding tests too. $ C:\chromium\src>tools\valgrind\chrome_tests.bat -t base --tool drmemory_light --gtestfilter="FilePath:PathServiceTest.:AtomicOps:TimeTicks:ValuesTest:UTF:MD5:VersionTest.:EnvironmentTest.:ToolsSanity:LoggingTest.:ObserverListTest.:StringPrintfTest._:StringNum*" -> has the report!

Labels: Hotlist-Chrome

derekbruening commented 9 years ago

From timurrrr@google.com on October 06, 2011 07:30:30

Hm, looks like it may be related to issue #532 [LoggingTest vs UNADDR instrumentation]:

$ tools\valgrind\chrome_tests.bat -t base --tool drmemory_light --gtestfilter="PathServiceTest.Get:LoggingTest.:ObserverListThreadSafeTest._"

When I remove anything from the gtest_filter, the report goes away. Looks like something threaded from the ObserverList tests affects some Logging tests that result in PathService test unaddrs.

Derek, Can you have a look?

Owner: bruen...@google.com

derekbruening commented 9 years ago

From timurrrr@google.com on October 06, 2011 07:34:28

Yeah!

Here's the report: $ tools\valgrind\chrome_tests.bat -t base --tool drmemory_light --gtest_filter="PathServiceTest.Get:LoggingTest.Dcheck:ObserverListThreadSafeTest.CrossThreadObserver" (3 tests)

but not here: $ tools\valgrind\chrome_tests.bat -t base --tool drmemory_light --gtest_filter="PathServiceTest.Get:LoggingTest.Dcheck" (2 tests)

nor here: $ tools\valgrind\chrome_tests.bat -t base --tool drmemory_light --gtest_filter="PathServiceTest.Get:ObserverListThreadSafeTest.CrossThreadObserver" (2 tests)

derekbruening commented 9 years ago

From bruen...@google.com on October 06, 2011 10:24:37

can't repro the unaddr here yet, but I can repro issue #533