Status: New
Owner: ----

New issue 1763 by [email protected]: Failed CHECK()'s in x64 in objects-inl.h with pthreads
http://code.google.com/p/v8/issues/detail?id=1763

I'm having an issue in my application sporadically, where I'm getting this error and exit:
[couldn't find pc offset for node=0]
[method: Future.wait]
[source:
function () {???Future.wait(this);???return this.get();??}
Bus error: 10

This error seems to come from deoptimizer.cc and reproducing the error is difficult. The only thing strange about my application is that I'm using node-fibers [https://github.com/laverdet/node-fibers], which adds coroutine support to v8. Each coroutine is actually just a pthread and pthread_cond_signal is used to simulate coroutines which play nicely with v8::Locker. So it seems that this issue may be related to threads, potentially 100's of threads using the same v8 isolate (locking and unlocking where appropriate).

If I run this instead with a debug build of v8 I get either one of these errors:
#
# Fatal error in src/objects-inl.h, line 2996
# CHECK(kind() == OPTIMIZED_FUNCTION) failed
#

#
# Fatal error in src/objects-inl.h, line 1652
# CHECK(index >= 0 && index < this->length()) failed
#

I have NOT been able to reproduce this problem on an ia32 build with the same application and machine; it seems to be just x64. This is on OS X Lion 10.7.1, although the issue may be reproducible under Linux.

I've distilled the test case as much as possible and removed the dependency on Node and other externalities. The test case included is derived from a simple recursive directory stat. Please checkout the attached archive. The `build` script will fetch and compile a new copy of v8 and build the application. Then `./bug` can be used to execute the included script. It fails with the above errors frequently, though sometimes will execute successfully.

Attachments:
        deop-bug.zip  34.5 KB

--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to