DynamoRIO / DynamoRIO/drmemory

HANG unit_tests ExtensionServiceTest.ExternalExtensionAutoAcknowledgement

Open
#1,434 0 comments 0 reactions 0 assignees View on GitHub
Bug-Hang Hotlist-Release Migrated OpSys-Windows
Dominant language
C
Stars
2.7k
Forks
290
PR merge metrics
No merged PRs in 30d

Description

_From [bruen...@google.com](https://code.google.com/u/109494838902877177630/) on January 31, 2014 14:05:19_

On the FYI bots after switching to Release, full mode unit_tests #3_of_6
was timing out several times in a row: http://build.chromium.org/p/chromium.fyi/builders/Windows%20Unit%20%28DrMemory%20full%29%20%284%29/builds/150/steps/memory%20test%3A%20unit_3/logs/stdio [ RUN ] ExtensionServiceTest.ExternalExtensionAutoAcknowledgement
[1284:3316:0129/215647:24584743:ERROR:ipc_channel_win.cc(405)] pipe error: 232

command timed out: 1200 seconds without output, attempting to kill
program finished with exit code 1
elapsedTime=1661.696000

Worked fine in my local runs prior to FYI change:
e:/derek/chromium/src/RUNLOG-unit-full-release:
[ RUN ] ExtensionServiceTest.ExternalExtensionAutoAcknowledgement
[ OK ] ExtensionServiceTest.ExternalExtensionAutoAcknowledgement (1222 ms)

Yet now when I run it by itself directly (no script) it does hang w/ that
same pipe error.
Attach windbg: ony 4 app threads. No DR or DrMem frames.

Actually it hangs under plain DR:

% ~/dr/git/exports/bin32/drrun -- ./unit_tests.exe --gtest_filter=ExtensionServiceTest.ExternalExtensionAutoAcknowledgement
Valgrind detected, switching to single process mode.
Pass --test-launcher-debug-launcher to valgrind the launcher itself.
Note: Google Test filter = ExtensionServiceTest.ExternalExtensionAutoAcknowledgement
[==========] Running 1 test from 1 test case.
[----------] Global test environment set-up.
[----------] 1 test from ExtensionServiceTest
[ RUN ] ExtensionServiceTest.ExternalExtensionAutoAcknowledgement
[20736:30184:0130/173757:1374966073:ERROR:ipc_channel_win.cc(405)] pipe error: 232

Works natively (I even tried 100x in a loop):
% ./unit_tests.exe --gtest_filter=ExtensionServiceTest.ExternalExtensionAutoAcknowledgement
Valgrind detected, switching to single process mode.
Pass --test-launcher-debug-launcher to valgrind the launcher itself.
Note: Google Test filter = ExtensionServiceTest.ExternalExtensionAutoAcknowledgement
[==========] Running 1 test from 1 test case.
[----------] Global test environment set-up.
[----------] 1 test from ExtensionServiceTest
[ RUN ] ExtensionServiceTest.ExternalExtensionAutoAcknowledgement
[ OK ] ExtensionServiceTest.ExternalExtensionAutoAcknowledgement (437 ms)

// The pipe is being closed.
//
#define ERROR_NO_DATA 232L

Debug and logging shows nothing unusual.

It turns it it's flaky natively:

chromium/src/chrome/browser/extensions/extension_service_unittest.cc
// Flaky on windows; http://crbug.com/309833 In that issue it shows this happening natively:
[3104:1980:1021/145120:1036829:ERROR:ipc_channel_win.cc(405)] pipe error: 232

There's a code change meant to disable it on Windows that has a mistake. So probably we should just properly disable it and just assume DR triggers the flakiness somehow in a timing-related or other way and it's not a DR bug?

_Original issue: http://code.google.com/p/drmemory/issues/detail?id=1434_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.