Version "3.31" doesn't really exist. Yes we once created a branch of that
name, but it was abandoned right after because it was in such a bad state
that we gave up trying to stabilize it. It was never used in a Chrome
stable channel release, which would have been your hint that it's ready for
production.

I'd guess that your string has nothing to do with the failure, it just so
happens to be the allocation that triggers a GC round. Somehow spinning up
the sweeper threads fails. If this were happening on the 4.8 or 4.9 branch,
I'd investigate further... ;-)

On Wed, Feb 10, 2016 at 9:59 AM, Danny Dorfman <wilderness...@gmail.com>
wrote:

> Hello there,
>
> I am running with V8 3.31, the debug version, and I get this crash upon
> allocating a large string:
>
> #0  0x00007f0a6b0efb4b in v8::base::OS::Abort () at
> ../src/base/platform/platform-posix.cc:210
> 210  if (g_hard_abort) {
> (gdb) bt
> #0  0x00007f0a6b0efb4b in v8::base::OS::Abort () at
> ../src/base/platform/platform-posix.cc:210
> #1  0x00007f0a6b0ec208 in V8_Fatal (file=0x7f0a6b3c0c28
> ".././src/base/platform/mutex.h", line=77, format=0x7f0a6b0f0e38
> "CHECK_EQ(%s, %s) failed\n#   Expected: %i\n#   Found: %i") at
> ../src/base/logging.cc:87
> #2  0x00007f0a6aaa1b12 in CheckEqualsHelper (file=0x7f0a6b3c0c28
> ".././src/base/platform/mutex.h", line=77, expected_source=0x7f0a6b3c0c26
> "1", expected=1, value_source=0x7f0a6b3c0c1f "level_", value=2) at
> .././src/base/logging.h:51
> #3  0x00007f0a6b0ed084 in v8::base::Mutex::AssertHeldAndUnmark
> (this=0x7f0ad84971a0) at .././src/base/platform/mutex.h:77
> #4  0x00007f0a6b0ed934 in v8::base::Mutex::Unlock (this=0x7f0ad84971a0) at
> ../src/base/platform/mutex.cc:134
> #5  0x00007f0a6ad57df2 in
> v8::internal::MarkCompactCollector::StartSweeperThreads
> (this=0x7f0ad872ac68) at ../src/heap/mark-compact.cc:461
> #6  0x00007f0a6ad625a2 in v8::internal::MarkCompactCollector::SweepSpaces
> (this=0x7f0ad872ac68) at ../src/heap/mark-compact.cc:4134
> #7  0x00007f0a6ad573de in
> v8::internal::MarkCompactCollector::CollectGarbage (this=0x7f0ad872ac68) at
> ../src/heap/mark-compact.cc:313
> #8  0x00007f0a6ad297ad in v8::internal::Heap::MarkCompact
> (this=0x7f0ad8725d80) at ../src/heap/heap.cc:1205
> #9  0x00007f0a6ad29182 in v8::internal::Heap::PerformGarbageCollection
> (this=0x7f0ad8725d80, collector=v8::internal::MARK_COMPACTOR,
> gc_callback_flags=v8::kNoGCCallbackFlags) at ../src/heap/heap.cc:1095
> #10 0x00007f0a6ad2851c in v8::internal::Heap::CollectGarbage
> (this=0x7f0ad8725d80, collector=v8::internal::MARK_COMPACTOR,
> gc_reason=0x7f0a6b166db4 "last resort gc", collector_reason=0x0,
> gc_callback_flags=v8::kNoGCCallbackFlags) at ./src/heap/heap.cc:843
> #11 0x00007f0a6ad2819c in v8::internal::Heap::CollectAllAvailableGarbage
> (this=0x7f0ad8725d80, gc_reason=0x7f0a6b166db4 "last resort gc") at
> ../src/heap/heap.cc:762
> #12 0x00007f0a6acc31ed in v8::internal::Factory::NewRawTwoByteString
> (this=0x7f0ad8725d60, length=431158, pretenure=v8::internal::NOT_TENURED)
> at ../src/factory.cc:385
> #13 0x00007f0a6acc0ff0 in v8::internal::Factory::NewStringFromUtf8
> (this=0x7f0ad8725d60, string=..., pretenure=v8::internal::NOT_TENURED) at
> ../src/factory.cc:247
> #14 0x00007f0a6aada0fa in v8::(anonymous namespace)::NewString
> (factory=0x7f0ad8725d60, type=v8::String::kNormalString, string=...) at
> ../src/api.cc:5452
> #15 0x00007f0a6aaeaad6 in v8::(anonymous namespace)::NewString<char>
> (v8_isolate=0x7f0ad8725d60, location=0x7f0a6b0f8ed4
> "v8::String::NewFromUtf8()", env=0x7f0a6b0f8ec0 "String::NewFromUtf8",
>  data=0x7f0ad853f660 '/' <repeats 74 times>, "\n// xxxxxxxxx \n// ", '-'
> <repeats 75 times>, "\n\n//"..., type=v8::String::kNormalString,
> length=431185)  at ../src/api.cc:5496
> #16 0x00007f0a6aada20b in v8::String::NewFromUtf8 (isolate=0x7f0ad8725d60,
> data=0x7f0ad853f660 '/' <repeats 74 times>, "\n// xxxxxxxxx \n// ", '-'
> <repeats 75 times>, "\n\n//"..., type=v8::String::kNormalString,
> length=431185) at ../src/api.cc:5515
> - - - - - -
>
> My code appears in the next frame, and says something like:
> v8::Local<v8::String> vSource = v8::String::NewFromUtf8(isolate, src,
> v8::String::kNormalString, len);
>
> As you can see, the string is quite large (431185 bytes long). Any idea
> why this is happening? What can I do about this?
>
> Regards,
> Danny
>
>
> --
> --
> v8-users mailing list
> v8-users@googlegroups.com
> 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 v8-users+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
-- 
v8-users mailing list
v8-users@googlegroups.com
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 v8-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to