DynamoRIO / DynamoRIO/dynamorio

APP CRASH (32-bit Win release build, unit_tests) FrameworkUnitTest.AssertTrueOk

Open
#1,021 0 comments 0 reactions 0 assignees View on GitHub
Migrated OpSys-Windows Priority-Medium
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.