Re: [v8-users] Runtime crash on trying to create a half-meg string
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 Dorfmanwrote: > Hello there, > > I am running with V8 3.31, the debug version, and I get this crash upon > allocating a large string: > > #0 0x7f0a6b0efb4b in v8::base::OS::Abort () at > ../src/base/platform/platform-posix.cc:210 > 210 if (g_hard_abort) { > (gdb) bt > #0 0x7f0a6b0efb4b in v8::base::OS::Abort () at > ../src/base/platform/platform-posix.cc:210 > #1 0x7f0a6b0ec208 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 0x7f0a6aaa1b12 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 0x7f0a6b0ed084 in v8::base::Mutex::AssertHeldAndUnmark > (this=0x7f0ad84971a0) at .././src/base/platform/mutex.h:77 > #4 0x7f0a6b0ed934 in v8::base::Mutex::Unlock (this=0x7f0ad84971a0) at > ../src/base/platform/mutex.cc:134 > #5 0x7f0a6ad57df2 in > v8::internal::MarkCompactCollector::StartSweeperThreads > (this=0x7f0ad872ac68) at ../src/heap/mark-compact.cc:461 > #6 0x7f0a6ad625a2 in v8::internal::MarkCompactCollector::SweepSpaces > (this=0x7f0ad872ac68) at ../src/heap/mark-compact.cc:4134 > #7 0x7f0a6ad573de in > v8::internal::MarkCompactCollector::CollectGarbage (this=0x7f0ad872ac68) at > ../src/heap/mark-compact.cc:313 > #8 0x7f0a6ad297ad in v8::internal::Heap::MarkCompact > (this=0x7f0ad8725d80) at ../src/heap/heap.cc:1205 > #9 0x7f0a6ad29182 in v8::internal::Heap::PerformGarbageCollection > (this=0x7f0ad8725d80, collector=v8::internal::MARK_COMPACTOR, > gc_callback_flags=v8::kNoGCCallbackFlags) at ../src/heap/heap.cc:1095 > #10 0x7f0a6ad2851c 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 0x7f0a6ad2819c in v8::internal::Heap::CollectAllAvailableGarbage > (this=0x7f0ad8725d80, gc_reason=0x7f0a6b166db4 "last resort gc") at > ../src/heap/heap.cc:762 > #12 0x7f0a6acc31ed in v8::internal::Factory::NewRawTwoByteString > (this=0x7f0ad8725d60, length=431158, pretenure=v8::internal::NOT_TENURED) > at ../src/factory.cc:385 > #13 0x7f0a6acc0ff0 in v8::internal::Factory::NewStringFromUtf8 > (this=0x7f0ad8725d60, string=..., pretenure=v8::internal::NOT_TENURED) at > ../src/factory.cc:247 > #14 0x7f0a6aada0fa in v8::(anonymous namespace)::NewString > (factory=0x7f0ad8725d60, type=v8::String::kNormalString, string=...) at > ../src/api.cc:5452 > #15 0x7f0a6aaeaad6 in v8::(anonymous namespace)::NewString > (v8_isolate=0x7f0ad8725d60, location=0x7f0a6b0f8ed4 > "v8::String::NewFromUtf8()", env=0x7f0a6b0f8ec0 "String::NewFromUtf8", > data=0x7f0ad853f660 '/' , "\n// x \n// ", '-' > , "\n\n//"..., type=v8::String::kNormalString, > length=431185) at ../src/api.cc:5496 > #16 0x7f0a6aada20b in v8::String::NewFromUtf8 (isolate=0x7f0ad8725d60, > data=0x7f0ad853f660 '/' , "\n// x \n// ", '-' > , "\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 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,
Re: [v8-users] Runtime crash on trying to create a half-meg string
Hello Jakob, Thank you for the quick response. Can you please help me fetch the latest *stable* release? (I can't seem to find the instructions in the V8 docs) D. On Wednesday, February 10, 2016 at 11:36:41 AM UTC+2, Jakob Kummerow wrote: > > 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> wrote: > >> Hello there, >> >> I am running with V8 3.31, the debug version, and I get this crash upon >> allocating a large string: >> >> #0 0x7f0a6b0efb4b in v8::base::OS::Abort () at >> ../src/base/platform/platform-posix.cc:210 >> 210 if (g_hard_abort) { >> (gdb) bt >> #0 0x7f0a6b0efb4b in v8::base::OS::Abort () at >> ../src/base/platform/platform-posix.cc:210 >> #1 0x7f0a6b0ec208 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 0x7f0a6aaa1b12 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 0x7f0a6b0ed084 in v8::base::Mutex::AssertHeldAndUnmark >> (this=0x7f0ad84971a0) at .././src/base/platform/mutex.h:77 >> #4 0x7f0a6b0ed934 in v8::base::Mutex::Unlock (this=0x7f0ad84971a0) >> at ../src/base/platform/mutex.cc:134 >> #5 0x7f0a6ad57df2 in >> v8::internal::MarkCompactCollector::StartSweeperThreads >> (this=0x7f0ad872ac68) at ../src/heap/mark-compact.cc:461 >> #6 0x7f0a6ad625a2 in v8::internal::MarkCompactCollector::SweepSpaces >> (this=0x7f0ad872ac68) at ../src/heap/mark-compact.cc:4134 >> #7 0x7f0a6ad573de in >> v8::internal::MarkCompactCollector::CollectGarbage (this=0x7f0ad872ac68) at >> ../src/heap/mark-compact.cc:313 >> #8 0x7f0a6ad297ad in v8::internal::Heap::MarkCompact >> (this=0x7f0ad8725d80) at ../src/heap/heap.cc:1205 >> #9 0x7f0a6ad29182 in v8::internal::Heap::PerformGarbageCollection >> (this=0x7f0ad8725d80, collector=v8::internal::MARK_COMPACTOR, >> gc_callback_flags=v8::kNoGCCallbackFlags) at ../src/heap/heap.cc:1095 >> #10 0x7f0a6ad2851c 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 0x7f0a6ad2819c in v8::internal::Heap::CollectAllAvailableGarbage >> (this=0x7f0ad8725d80, gc_reason=0x7f0a6b166db4 "last resort gc") at >> ../src/heap/heap.cc:762 >> #12 0x7f0a6acc31ed in v8::internal::Factory::NewRawTwoByteString >> (this=0x7f0ad8725d60, length=431158, pretenure=v8::internal::NOT_TENURED) >> at ../src/factory.cc:385 >> #13 0x7f0a6acc0ff0 in v8::internal::Factory::NewStringFromUtf8 >> (this=0x7f0ad8725d60, string=..., pretenure=v8::internal::NOT_TENURED) at >> ../src/factory.cc:247 >> #14 0x7f0a6aada0fa in v8::(anonymous namespace)::NewString >> (factory=0x7f0ad8725d60, type=v8::String::kNormalString, string=...) at >> ../src/api.cc:5452 >> #15 0x7f0a6aaeaad6 in v8::(anonymous namespace)::NewString >> (v8_isolate=0x7f0ad8725d60, location=0x7f0a6b0f8ed4 >> "v8::String::NewFromUtf8()", env=0x7f0a6b0f8ec0 "String::NewFromUtf8", >> data=0x7f0ad853f660 '/' , "\n// x \n// ", '-' >> , "\n\n//"..., type=v8::String::kNormalString, >> length=431185) at ../src/api.cc:5496 >> #16 0x7f0a6aada20b in v8::String::NewFromUtf8 >> (isolate=0x7f0ad8725d60, data=0x7f0ad853f660 '/' , >> "\n// x \n// ", '-' , "\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 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-u...@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+u...@googlegroups.com .
Re: [v8-users] Runtime crash on trying to create a half-meg string
"git checkout -b 4.8 -t branch-heads/4.8" See https://github.com/v8/v8/wiki/Getting-Started-with-Embedding for more information. On Wednesday, February 10, 2016 at 12:02:55 PM UTC+1, Danny Dorfman wrote: > > Hello Jakob, > > Thank you for the quick response. Can you please help me fetch the latest > *stable* release? (I can't seem to find the instructions in the V8 docs) > > D. > > On Wednesday, February 10, 2016 at 11:36:41 AM UTC+2, Jakob Kummerow wrote: >> >> 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>> wrote: >> >>> Hello there, >>> >>> I am running with V8 3.31, the debug version, and I get this crash upon >>> allocating a large string: >>> >>> #0 0x7f0a6b0efb4b in v8::base::OS::Abort () at >>> ../src/base/platform/platform-posix.cc:210 >>> 210 if (g_hard_abort) { >>> (gdb) bt >>> #0 0x7f0a6b0efb4b in v8::base::OS::Abort () at >>> ../src/base/platform/platform-posix.cc:210 >>> #1 0x7f0a6b0ec208 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 0x7f0a6aaa1b12 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 0x7f0a6b0ed084 in v8::base::Mutex::AssertHeldAndUnmark >>> (this=0x7f0ad84971a0) at .././src/base/platform/mutex.h:77 >>> #4 0x7f0a6b0ed934 in v8::base::Mutex::Unlock (this=0x7f0ad84971a0) >>> at ../src/base/platform/mutex.cc:134 >>> #5 0x7f0a6ad57df2 in >>> v8::internal::MarkCompactCollector::StartSweeperThreads >>> (this=0x7f0ad872ac68) at ../src/heap/mark-compact.cc:461 >>> #6 0x7f0a6ad625a2 in >>> v8::internal::MarkCompactCollector::SweepSpaces (this=0x7f0ad872ac68) at >>> ../src/heap/mark-compact.cc:4134 >>> #7 0x7f0a6ad573de in >>> v8::internal::MarkCompactCollector::CollectGarbage (this=0x7f0ad872ac68) at >>> ../src/heap/mark-compact.cc:313 >>> #8 0x7f0a6ad297ad in v8::internal::Heap::MarkCompact >>> (this=0x7f0ad8725d80) at ../src/heap/heap.cc:1205 >>> #9 0x7f0a6ad29182 in v8::internal::Heap::PerformGarbageCollection >>> (this=0x7f0ad8725d80, collector=v8::internal::MARK_COMPACTOR, >>> gc_callback_flags=v8::kNoGCCallbackFlags) at ../src/heap/heap.cc:1095 >>> #10 0x7f0a6ad2851c 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 0x7f0a6ad2819c in v8::internal::Heap::CollectAllAvailableGarbage >>> (this=0x7f0ad8725d80, gc_reason=0x7f0a6b166db4 "last resort gc") at >>> ../src/heap/heap.cc:762 >>> #12 0x7f0a6acc31ed in v8::internal::Factory::NewRawTwoByteString >>> (this=0x7f0ad8725d60, length=431158, pretenure=v8::internal::NOT_TENURED) >>> at ../src/factory.cc:385 >>> #13 0x7f0a6acc0ff0 in v8::internal::Factory::NewStringFromUtf8 >>> (this=0x7f0ad8725d60, string=..., pretenure=v8::internal::NOT_TENURED) at >>> ../src/factory.cc:247 >>> #14 0x7f0a6aada0fa in v8::(anonymous namespace)::NewString >>> (factory=0x7f0ad8725d60, type=v8::String::kNormalString, string=...) at >>> ../src/api.cc:5452 >>> #15 0x7f0a6aaeaad6 in v8::(anonymous namespace)::NewString >>> (v8_isolate=0x7f0ad8725d60, location=0x7f0a6b0f8ed4 >>> "v8::String::NewFromUtf8()", env=0x7f0a6b0f8ec0 "String::NewFromUtf8", >>> data=0x7f0ad853f660 '/' , "\n// x \n// ", '-' >>> , "\n\n//"..., type=v8::String::kNormalString, >>> length=431185) at ../src/api.cc:5496 >>> #16 0x7f0a6aada20b in v8::String::NewFromUtf8 >>> (isolate=0x7f0ad8725d60, data=0x7f0ad853f660 '/' , >>> "\n// x \n// ", '-' , "\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 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 >>> >>> >>> -- >>> -- >>>
Re: [v8-users] Runtime crash on trying to create a half-meg string
Also, https://github.com/v8/v8/wiki/Release-Process#which-version-should-i-embed-in-my-application . On Wed, Feb 10, 2016 at 12:52 PM, Michael Hablichwrote: > "git checkout -b 4.8 -t branch-heads/4.8" > > See https://github.com/v8/v8/wiki/Getting-Started-with-Embedding for more > information. > > On Wednesday, February 10, 2016 at 12:02:55 PM UTC+1, Danny Dorfman wrote: >> >> Hello Jakob, >> >> Thank you for the quick response. Can you please help me fetch the latest >> *stable* release? (I can't seem to find the instructions in the V8 docs) >> >> D. >> >> On Wednesday, February 10, 2016 at 11:36:41 AM UTC+2, Jakob Kummerow >> wrote: >>> >>> 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 >>> wrote: >>> Hello there, I am running with V8 3.31, the debug version, and I get this crash upon allocating a large string: #0 0x7f0a6b0efb4b in v8::base::OS::Abort () at ../src/base/platform/platform-posix.cc:210 210 if (g_hard_abort) { (gdb) bt #0 0x7f0a6b0efb4b in v8::base::OS::Abort () at ../src/base/platform/platform-posix.cc:210 #1 0x7f0a6b0ec208 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 0x7f0a6aaa1b12 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 0x7f0a6b0ed084 in v8::base::Mutex::AssertHeldAndUnmark (this=0x7f0ad84971a0) at .././src/base/platform/mutex.h:77 #4 0x7f0a6b0ed934 in v8::base::Mutex::Unlock (this=0x7f0ad84971a0) at ../src/base/platform/mutex.cc:134 #5 0x7f0a6ad57df2 in v8::internal::MarkCompactCollector::StartSweeperThreads (this=0x7f0ad872ac68) at ../src/heap/mark-compact.cc:461 #6 0x7f0a6ad625a2 in v8::internal::MarkCompactCollector::SweepSpaces (this=0x7f0ad872ac68) at ../src/heap/mark-compact.cc:4134 #7 0x7f0a6ad573de in v8::internal::MarkCompactCollector::CollectGarbage (this=0x7f0ad872ac68) at ../src/heap/mark-compact.cc:313 #8 0x7f0a6ad297ad in v8::internal::Heap::MarkCompact (this=0x7f0ad8725d80) at ../src/heap/heap.cc:1205 #9 0x7f0a6ad29182 in v8::internal::Heap::PerformGarbageCollection (this=0x7f0ad8725d80, collector=v8::internal::MARK_COMPACTOR, gc_callback_flags=v8::kNoGCCallbackFlags) at ../src/heap/heap.cc:1095 #10 0x7f0a6ad2851c 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 0x7f0a6ad2819c in v8::internal::Heap::CollectAllAvailableGarbage (this=0x7f0ad8725d80, gc_reason=0x7f0a6b166db4 "last resort gc") at ../src/heap/heap.cc:762 #12 0x7f0a6acc31ed in v8::internal::Factory::NewRawTwoByteString (this=0x7f0ad8725d60, length=431158, pretenure=v8::internal::NOT_TENURED) at ../src/factory.cc:385 #13 0x7f0a6acc0ff0 in v8::internal::Factory::NewStringFromUtf8 (this=0x7f0ad8725d60, string=..., pretenure=v8::internal::NOT_TENURED) at ../src/factory.cc:247 #14 0x7f0a6aada0fa in v8::(anonymous namespace)::NewString (factory=0x7f0ad8725d60, type=v8::String::kNormalString, string=...) at ../src/api.cc:5452 #15 0x7f0a6aaeaad6 in v8::(anonymous namespace)::NewString (v8_isolate=0x7f0ad8725d60, location=0x7f0a6b0f8ed4 "v8::String::NewFromUtf8()", env=0x7f0a6b0f8ec0 "String::NewFromUtf8", data=0x7f0ad853f660 '/' , "\n// x \n// ", '-' , "\n\n//"..., type=v8::String::kNormalString, length=431185) at ../src/api.cc:5496 #16 0x7f0a6aada20b in v8::String::NewFromUtf8 (isolate=0x7f0ad8725d60, data=0x7f0ad853f660 '/' , "\n// x \n// ", '-' , "\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 vSource = v8::String::NewFromUtf8(isolate,