Status: New
Owner: ----
CC: [email protected], [email protected], [email protected], [email protected]
Labels: Type-Bug Priority-Medium

New issue 3150 by [email protected]: NaCl: Mysterious test failures which boil down to not being able to pass v8::internal::Vector as a param
http://code.google.com/p/v8/issues/detail?id=3150

Example failure:

http://build.chromium.org/p/client.v8/builders/NaCl%20V8%20Linux64%20-%20stable/builds/1587/steps/Check/logs/stdio

=== cctest/test-api/PreCompileInvalidPreparseDataError ===
--- stderr ---
DEBUG MODE ENABLED (bypass acl)
DEBUG MODE ENABLED (skip validator)
[1185,4071294784:02:55:16.749217] BYPASSING ALL ACL CHECKS
[1185,4071294784:02:55:16.749877] Native Client module will be loaded at base address 0x000040cc00000000
[1185,4071294784:02:55:16.750188] VALIDATION SKIPPED.
[1185,4071294784:02:55:16.750644] VALIDATION SKIPPED.
[1185,4071065344:02:55:16.925423] NaClHostDescOpen: file type 0x21b6, not regular

** Signal 11 from untrusted code: pc=40cc01edbf84

I can repro this locally; it reproes 100% of the runs. It only happens in release mode and only for NaCl. I debugged this by adding debug prints like here:

https://codereview.chromium.org/159653005/


What happens:
- Parser::ReportInvalidPreparseData is called
- It constructs Vector<const char*> for the arguments. Its length is sane (1).
- And passes it to ParserBase::ReportMessage.
- But now, the length of the vector is insane (some arbitrary number, varies between runs).


More information:
- Doing something that requires the address of the vector, e.g., printing out the address of the vector in Parser::ReportInvalidPreparseData or in ParserBase::ReportMessage, makes the bug go away. (Now 100% of the runs pass.) - Theory: The vector is not really created, only stored in registers, unless we really need its address for something. And then passing it as param fails.
- I'm using pepper version 32.
- I'm running the test like this: tools/run-tests.py -j28 --arch=nacl_x64 --mode=release --report --no-presubmit --command-prefix tools/nacl-run.py cctest/test-api/PreCompileInvalidPreparseDataError - nacl_run.py runs this command line: /myhome/nacl_sdk/pepper_32/tools/sel_ldr_x86_64 -c -c -a -B /myhome/nacl_sdk/pepper_32/tools/irt_core_x86_64.nexe -- /myhome/nacl_sdk/pepper_32/toolchain/linux_x86_glibc/x86_64-nacl/lib64/runnable-ld.so --library-path /myhome/nacl_sdk/pepper_32/toolchain/linux_x86_glibc/x86_64-nacl/lib64 "/media/ssdvol/v8-bleeding-edge/out/nacl_x64.release/cctest" --nocrankshaft "test-api/PreCompileInvalidPreparseDataError" --nobreak-on-abort --nodead-code-elimination --nofold-constants "--testing_serialization_file=/media/ssdvol/v8-bleeding-edge/out/.serdes/serdes_PreCompileInvalidPreparseDataError__nocrankshaft"

Example printout with the debug prints:

ReportInvalidPreparseData
constructed args array, length is 1
ParserBase::ReportMessage invalid_preparser_data, args len 30643
ParserTraits::ReportMessageAt
message invalid_preparser_data, args len 30643
looping 0 bar
looping 1 (null)

--
You received this message because this project is configured to send all issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings

--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to