On Thu, Feb 21, 2013 at 2:03 PM, Sven Panne <[email protected]> wrote:

> OK, my apps are d8 and Chrome, and both work. :-) Seriously, we need more
> detailed steps and not just some fuzzy prose. It could


i understand that, but you cannot expect us to go decompose our apps every
time new v8 behaviour breaks something as basic as application startup
(this isn't the first time in the past 6 months my apps start mysteriously
breaking due to mysterious v8 changes). Here's what i know, without going
so far as to write a new app which demonstrates this problem (i have
several which demonstrate it already)...

-r{20130218T000000Z} "works for me"
-r{20130220T000000Z} "does not work for me"


> very well be the case that some applications embedding v8 worked only by
> accident, so a stand-alone reproduction is really needed, e.g. a single
> small C/C++ file embedding v8 which crashes for you when compiled and run.


The apps i have which break with the newer versions have worked for 18+
months without any modifications on my side. If they only worked by
accident then something is horribly wrong with v8 (because my apps are all
modeled after the shell example app and the sparse documentation from the
v8 team). None of my apps are extremely trivial, so i have no trivial
example. All of them use the same startup process, however, and that is
where v8 is failing for several of us. Here's an example which crashes:

https://code.google.com/p/v8-juice/source/browse/convert/addons/shell-skel/shell.cpp#65

during initialization, which happens here:

https://code.google.com/p/v8-juice/source/browse/convert/include/cvv8/V8Shell.hpp#175

the part which craps out is the v8::Locker constructor, which is literally
the first value initialized in my app after main() is entered, before any
of my app-specific code gets run. The crash dump and backtrace look like:

[stephan@host:~/cvs/v8-juice/convert/addons/shell-skel]$ gdb --args ./shell
test.js
GNU gdb (Ubuntu/Linaro 7.4-2012.04-0ubuntu2.1) 7.4-2012.04
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html
>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://bugs.launchpad.net/gdb-linaro/>...
Reading symbols from
/home/stephan/cvs/v8-juice/convert/addons/shell-skel/shell...done.
(gdb) r
Starting program:
/home/stephan/cvs/v8-juice/convert/addons/shell-skel/shell test.js
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".


#
# Fatal error in ../src/v8threads.cc, line 53
# CHECK(isolate != __null) failed
#

==== C stack trace ===============================

 1: V8_Fatal
 2: v8::Locker::Initialize(v8::Isolate*)
 3: v8::Locker::Locker(v8::Isolate*)
 4: ??
 5: ??
 6: ??
 7: ??
 8: __libc_start_main
 9: ??

==== JS stack trace is not available =======================


==== Isolate for the thread is not initialized =============


Program received signal SIGTRAP, Trace/breakpoint trap.
v8::internal::OS::DebugBreak () at ../src/platform-linux.cc:427
warning: Source file is more recent than executable.
427 #elif defined(__mips__)
(gdb) bt
#0  v8::internal::OS::DebugBreak () at ../src/platform-linux.cc:427
#1  0x00007ffff76fcfff in v8::internal::OS::Abort () at
../src/platform-linux.cc:409
#2  0x00007ffff732281e in V8_Fatal (file=0x7ffff779e749
"../src/v8threads.cc", line=53, format=0x7ffff779e45e "CHECK(%s) failed")
at ../src/checks.cc:59
#3  0x00007ffff761f569 in v8::Locker::Initialize (this=0x7fffffffe160,
isolate=0x0) at ../src/v8threads.cc:53
#4  0x00007ffff734e5ff in v8::Locker::Locker (this=0x7fffffffe160,
isolate=0x0) at ../src/../include/v8.h:4003
#5  0x0000000000404c99 in cvv8::Detail::V8MaybeLocker<true>::V8MaybeLocker
(this=0x7fffffffe160) at ../../include/cvv8/V8Shell.hpp:33
#6  0x0000000000404555 in cvv8::V8Shell<true>::V8Shell
(this=0x7fffffffe160, globalObjectName=0x0, argc=2, argv=0x7fffffffe338,
argOffset=1) at ../../include/cvv8/V8Shell.hpp:181
#7  0x0000000000403c7c in v8_main (argc=2, argv=0x7fffffffe338) at
shell.cpp:65
#8  0x0000000000403f7b in main (argc=2, argv=0x7fffffffe338) at
shell.cpp:136



The problem is obviously the NULL Isolate. My v8 client code has _never_
(in the 4-some-odd years i've been using v8) explicitly used an Isolate, so
i find the "it worked by accident" hypothesis hard to swallow.

-- 
----- stephan beal
http://wanderinghorse.net/home/stephan/
http://gplus.to/sgbeal

-- 
-- 
v8-users mailing list
[email protected]
http://groups.google.com/group/v8-users
--- 
You received this message because you are subscribed to the Google Groups 
"v8-users" 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