Status: New
Owner: ----

New issue 2657 by [email protected]: cctest/test-thread-termination/TerminateMultipleV8ThreadsDefaultIsolate timeout on MIPS-sim and ARM-sim
http://code.google.com/p/v8/issues/detail?id=2657

cctest/test-thread-termination/TerminateMultipleV8ThreadsDefaultIsolate test can timeout on MIPS and ARM simulators if the host is otherwise idle.

To reproduce the issue compile v8 for simulator on a linux machine (I have tested it on Intel based linux machines and a mac and the timout didn't occur on mac):
make -j8 mipsel.release
and
make -j8 arm.release

The following commands must be run for a few times and the test fails with timeout about 50% of the time on an otherwise idle, multicore linux machine (tested on an Intel Xeon E3 based PC with 8G RAM, OS: Ubuntu lucid). For ARM: $ time out/arm.release/cctest --stress-opt --always-opt test-thread-termination/TerminateMultipleV8ThreadsDefaultIsolate --nobreak-on-abort --nodead-code-elimination --nofold-constants

and for MIPS:
$ time out/mipsel.release/cctest --stress-opt --always-opt test-thread-termination/TerminateMultipleV8ThreadsDefaultIsolate --nobreak-on-abort --nodead-code-elimination --nofold-constants

On both MIPS and ARM simulator similar hangup/timeout results will be caught about 50% of the time:
real 7m35.508s
user 7m36.020s
sys 0m0.900s

We got time results from 0m0.03xs to 22mx.xxxs.
The test runs 8 threads (4 sweeper, 1 context swather, 2 test threads and the main starter thread). A backtrace of the 3 important threads at a hangup on ARM simulator:

Thread 1 (Thread 0xf74f7b30 (LWP 23989)):
#0  0xf77cf430 in __kernel_vsyscall ()
#1 0xf7664ed9 in __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/lowlevellock.S:142
#2  0xf7660219 in _L_lock_835 () from /lib32/libpthread.so.0
#3 0xf76600ab in __pthread_mutex_lock (mutex=0x9d72854) at pthread_mutex_lock.c:82
#4  0x084707a2 in v8::Locker::Initialize(v8::Isolate*) ()
#5  0x081c4f01 in TestTerminateMultipleV8ThreadsDefaultIsolate() ()
#6  0x0804b26e in main ()

Thread 2 (Thread 0xf63bfb70 (LWP 23996)):
#0 0x085214f6 in v8::internal::Simulator::GetShiftRm(v8::internal::Instruction*, bool*) () #1 0x08526b36 in v8::internal::Simulator::DecodeType01(v8::internal::Instruction*) () #2 0x08528014 in v8::internal::Simulator::InstructionDecode(v8::internal::Instruction*) ()
#3  0x085284d3 in v8::internal::Simulator::CallInternal(unsigned char*) ()
#4  0x085285cb in v8::internal::Simulator::Call(unsigned char*, int, ...) ()
#5 0x0825e322 in v8::internal::Invoke(bool, v8::internal::Handle<v8::internal::JSFunction>, v8::internal::Handle<v8::internal::Object>, int, v8::internal::Handle<v8::internal::Object>*, bool*) () #6 0x0825f018 in v8::internal::Execution::Call(v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, int, v8::internal::Handle<v8::internal::Object>*, bool*, bool) ()
#7  0x081fd596 in v8::Script::Run() ()
#8  0x081c5b48 in DoLoop(v8::Arguments const&) ()
#9 0x08226446 in v8::internal::Builtin_HandleApiCall(int, v8::internal::Object**, v8::internal::Isolate*) () #10 0x085276f2 in v8::internal::Simulator::SoftwareInterrupt(v8::internal::Instruction*) () #11 0x0852802c in v8::internal::Simulator::InstructionDecode(v8::internal::Instruction*) ()
#12 0x085284d3 in v8::internal::Simulator::CallInternal(unsigned char*) ()
#13 0x085285cb in v8::internal::Simulator::Call(unsigned char*, int, ...) ()
#14 0x0825e322 in v8::internal::Invoke(bool, v8::internal::Handle<v8::internal::JSFunction>, v8::internal::Handle<v8::internal::Object>, int, v8::internal::Handle<v8::internal::Object>*, bool*) () #15 0x0825f018 in v8::internal::Execution::Call(v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, int, v8::internal::Handle<v8::internal::Object>*, bool*, bool) ()
(More stack frames follow...)

Thread 3 (Thread 0xf6bc0b70 (LWP 23995)):
#0  0xf77cf430 in __kernel_vsyscall ()
#1 0xf7664ed9 in __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/lowlevellock.S:142
#2  0xf7660219 in _L_lock_835 () from /lib32/libpthread.so.0
#3 0xf76600ab in __pthread_mutex_lock (mutex=0x9d72854) at pthread_mutex_lock.c:82
#4  0x084706a1 in v8::Unlocker::~Unlocker() ()
#5 0x082608aa in v8::internal::Execution::HandleStackGuardInterrupt(v8::internal::Isolate*) () #6 0x085276f2 in v8::internal::Simulator::SoftwareInterrupt(v8::internal::Instruction*) () #7 0x0852802c in v8::internal::Simulator::InstructionDecode(v8::internal::Instruction*) ()
#8  0x085284d3 in v8::internal::Simulator::CallInternal(unsigned char*) ()
#9  0x085285cb in v8::internal::Simulator::Call(unsigned char*, int, ...) ()
#10 0x0825e322 in v8::internal::Invoke(bool, v8::internal::Handle<v8::internal::JSFunction>, v8::internal::Handle<v8::internal::Object>, int, v8::internal::Handle<v8::internal::Object>*, bool*) () #11 0x0825f018 in v8::internal::Execution::Call(v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, int, v8::internal::Handle<v8::internal::Object>*, bool*, bool) ()
#12 0x081fd596 in v8::Script::Run() ()
#13 0x081c5b48 in DoLoop(v8::Arguments const&) ()
#14 0x08226446 in v8::internal::Builtin_HandleApiCall(int, v8::internal::Object**, v8::internal::Isolate*) () #15 0x085276f2 in v8::internal::Simulator::SoftwareInterrupt(v8::internal::Instruction*) ()

For further details of investigating the issue please look at: https://github.com/paul99/v8m-rb/issues/36

--
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