DynamoRIO / DynamoRIO/dynamorio
APP CRASH (32-bit Win release build, unit_tests) FrameworkUnitTest.AssertTrueOk
- Dominant language
- C
- Stars
- 3.2k
- Forks
- 629
- Avg merge
- 2d 18h
- Merged PRs (30d)
- 30
Description
_From [zhao...@google.com](https://code.google.com/u/106321947286816917100/) on December 13, 2012 13:58:51_
time ~/Workspace/DynamoRIO/builds/build_x86_rel.svn/bin32/drrun.exe -- ./unit_tests.exe --gtest_filter=-_.FLAKY__:_.FAILS__:_.DISABLED__:_.MAYBE__
...
[----------] 2 tests from FrameworkUnitTest
[ RUN ] FrameworkUnitTest.ExpectTrueOk
[3796:15016:1213/174257:873201681:INFO:v8_unit_test.cc(237)] Running TestCase FrameworkUnitTest.ExpectTrueOk
[ OK ] FrameworkUnitTest.ExpectTrueOk (228 ms)
[ RUN ] FrameworkUnitTest.AssertTrueOk
#
# Fatal error in d:\src\chrome-int\src\v8\src\frames-inl.h, line 233
# CHECK(result->IsJSFunction()) failed
#
==== Stack trace ============================================
Security context: 37C57FA9 #0#
1: captureStackTrace [native messages.js:1087](this=37C4C8F5 #1#,a=2575880D #2#,b=37C5407D #3#)
2: new constructor(aka TypeError)(this=2575880D #2#,g=257587F9 )
4: MakeGenericError [native messages.js:256](this=37C4C8F5 #1#,a=37C5407D #3#,b=3CA11BB5 ,c=257587A5 #4#)
5: MakeTypeError [native messages.js:303](this=37C4C8F5 #1#,a=3CA11BB5 ,b=257587A5 #4#)
6: CALL_NON_FUNCTION(aka CALL_NON_FUNCTION) [native runtime.js:408](this=257560B9 #5#)
7: arguments adaptor frame: 1->0
Attempt to print stack while printing stack (double fault)
If you are lucky you may find a partial stack dump on stdout.
Backtrace:
v8::internal::OS::DebugBreak [0x0CADBC83+3](d:srcchrome-intsrcv8srcplatform-win32.cc:983)
v8::internal::OS::Abort [0x0CADBC6D+29](d:srcchrome-intsrcv8srcplatform-win32.cc:974)
V8_Fatal [0x0CAA0CD4+164](d:srcchrome-intsrcv8srcchecks.cc:59)
v8::internal::JavaScriptFrame::function [0x0CAD175C+60](d:srcchrome-intsrcv8srcframes-inl.h:233)
v8::internal::JavaScriptFrame::GetNumberOfIncomingArguments [0x0CBEA4F3+99](d:srcchrome-intsrcv8srcframes.cc:725)
v8::internal::JavaScriptFrame::ComputeParametersCount [0x0CAD1714+20](d:srcchrome-intsrcv8srcframes.h:501)
v8::internal::JavaScriptFrame::GetParameterSlot [0x0CAD1681+17](d:srcchrome-intsrcv8srcframes-inl.h:204)
v8::internal::JavaScriptFrame::GetParameter [0x0CAD1643+19](d:srcchrome-intsrcv8srcframes-inl.h:212)
v8::internal::JavaScriptFrame::receiver [0x0CAD1621+17](d:srcchrome-intsrcv8srcframes-inl.h:218)
v8::internal::JavaScriptFrame::Print [0x0CBEB448+72](d:srcchrome-intsrcv8srcframes.cc:1056)
v8::internal::PrintFrames [0x0CAD2992+162](d:srcchrome-intsrcv8srcisolate.cc:806)
v8::internal::Isolate::PrintStack [0x0CAD287F+207](d:srcchrome-intsrcv8srcisolate.cc:828)
v8::internal::Isolate::PrintStack [0x0CAD26D4+196](d:srcchrome-intsrcv8srcisolate.cc:782)
V8_Fatal [0x0CAA0CCF+159](d:srcchrome-intsrcv8srcchecks.cc:58)
v8::internal::JavaScriptFrame::function [0x0CAD175C+60](d:srcchrome-intsrcv8srcframes-inl.h:233)
v8::internal::IsVisibleInStackTrace [0x0CAD14E3+51](d:srcchrome-intsrcv8srcisolate.cc:563)
v8::internal::Isolate::CaptureSimpleStackTrace [0x0CAD100C+268](d:srcchrome-intsrcv8srcisolate.cc:605)
v8::internal::Runtime_CollectStackTrace [0x0CC6026E+254](d:srcchrome-intsrcv8srcruntime.cc:13097)
(No symbol) [0x1770A3F6](No symbol) [0x17720F2E](No symbol) [0x17721633](No symbol) [0x17716851](No symbol) [0x17720B5C](No symbol) [0x35985C95](No symbol) [0x1771DF66](No symbol) [0x1770E6E1](No symbol) [0x3593B016](No symbol) [0x3593B48B](No symbol) [0x17722379](No symbol) [0x177134EA]
v8::internal::Invoke [0x0CAF4C9B+427](d:srcchrome-intsrcv8srcexecution.cc:118)
v8::internal::Execution::Call [0x0CAF4ABA+394](d:srcchrome-intsrcv8srcexecution.cc:179)
v8::Script::Run [0x0CA7D5E2+578](d:srcchrome-intsrcv8srcapi.cc:1726)
V8UnitTest::ExecuteScriptInContext [0x020B10EF+527](d:srcchrome-intsrcchrometestbasev8_unit_test.cc:192)
V8UnitTest::ExecuteJavascriptLibraries [0x020AF349+889](d:srcchrome-intsrcchrometestbasev8_unit_test.cc:75)
V8UnitTest::RunJavascriptTestF [0x020AF55C+92](d:srcchrome-intsrcchrometestbasev8_unit_test.cc:87)
FrameworkUnitTest_AssertTrueOk_Test::TestBody [0x021CD618+216](d:srcchrome-intsrcoutdebugobjchromeunit_tests.genchrometestdataunitframework_unittest-gen.cc:17)
testing::internal::HandleExceptionsInMethodIfSupportedtesting::Test,void [0x053D7EF5+293](d:srcchrome-intsrctestinggtestsrcgtest.cc:2053)
testing::Test::Run [0x053C9607+135](d:srcchrome-intsrctestinggtestsrcgtest.cc:2068)
testing::TestInfo::Run [0x053C9F5D+173](d:srcchrome-intsrctestinggtestsrcgtest.cc:2248)
testing::TestCase::Run [0x053CA69F+191](d:srcchrome-intsrctestinggtestsrcgtest.cc:2352)
testing::internal::UnitTestImpl::RunAllTests [0x053D04DE+606](d:srcchrome-intsrctestinggtestsrcgtest.cc:4178)
testing::internal::HandleExceptionsInMethodIfSupportedtesting::internal::UnitTestImpl,bool [0x053D87DD+301](d:srcchrome-intsrctestinggtestsrcgtest.cc:2053)
testing::UnitTest::Run [0x053CF126+150](d:srcchrome-intsrctestinggtestsrcgtest.cc:3812)
base:: TestSuite ::Run [0x028C6725+197](d:srcchrome-intsrcbasetesttest_suite.cc:195)
content::UnitTestTestSuite::Run [0x0511F716+22](d:srcchrome-intsrccontentpublictestunittest_test_suite.cc:60)
main [0x0313DD51+161](d:srcchrome-intsrcchrometestbaserun_all_unittests.cc:11)
__tmainCRTStartup [0x0546840F+447](f:ddvctoolscrt_bldself_x86crtsrccrtexe.c:555)
mainCRTStartup [0x0546823F+15](f:ddvctoolscrt_bldself_x86crtsrccrtexe.c:371)
BaseThreadInitThunk [0x76C833AA+14]
__RtlUserThreadStart [0x77A09EF2+112]
_RtlUserThreadStart [0x77A09EC5+27]
real 22m21.767s
user 0m0.015s
sys 0m0.031s
However, it pass on individual test:
$ time ~/Workspace/DynamoRIO/builds/build_x86_rel.svn/bin32/drrun.exe -- ./unit_tests.exe --gtest_filter=FrameworkUnitTest.*
Note: Google Test filter = FrameworkUnitTest.*
[==========] Running 2 tests from 1 test case.
[----------] Global test environment set-up.
[----------] 2 tests from FrameworkUnitTest
[ RUN ] FrameworkUnitTest.ExpectTrueOk
[12988:10420:1213/185830:877734399:INFO:v8_unit_test.cc(237)] Running TestCase FrameworkUnitTest.ExpectTrueOk
[ OK ] FrameworkUnitTest.ExpectTrueOk (1080 ms)
[ RUN ] FrameworkUnitTest.AssertTrueOk
[12988:10420:1213/185830:877734680:INFO:v8_unit_test.cc(237)] Running TestCase FrameworkUnitTest.AssertTrueOk
[ OK ] FrameworkUnitTest.AssertTrueOk (227 ms)
[----------] 2 tests from FrameworkUnitTest (1332 ms total)
[----------] Global test environment tear-down
[==========] 2 tests from 1 test case ran. (1342 ms total)
[ PASSED ] 2 tests.
YOU HAVE 81 DISABLED TESTS
YOU HAVE 3 FLAKY TESTS
real 0m3.367s
user 0m0.000s
sys 0m0.030s
_Original issue: http://code.google.com/p/dynamorio/issues/detail?id=1021_
Contributor guide
Research direction
Start by reproducing the combined unit_tests.exe command with the 32-bit Windows release build and compare it with the passing FrameworkUnitTest.* run. Read chrome/test/base/v8_unit_test.cc, especially ExecuteScriptInContext and the FrameworkUnitTest.AssertTrueOk path, alongside the reported V8 stack frames. Done means the combined run no longer crashes and the relevant test passes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- operating-systems, testing-qa
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100