Hi, v8 developers!

I was hoping to be able to get some guidance from you about a problem that 
we've been seeing. The problem is that we've seen a failing assert on two 
of our platforms, one is ARM based and one is MIPS based, so it seems that 
it is not specific to one architecture. This is the call stack that we're 
given:

#0 0xb33554dc in base::debug::(anonymous 
namespace)::StackDumpSignalHandler(int, 
siginfo_t*, void*) ()
#1 <signal handler called> 
#2 0xb33554dc in base::debug::(anonymous 
namespace)::StackDumpSignalHandler(int, siginfo_t*, void*) () 
#3 <signal handler called> #4 0xb2753518 in raise () 
#5 0xb27548e4 in abort () #6 0xb421204e in v8::base::OS::Abort() () 
#7 0xb420e656 in V8_Fatal () 
#8 0xb40577b0 in v8::internal::ObjectVisitor::VisitCodeEntry(unsigned 
char*) () 
#9 0xb3f89df4 in 
v8::internal::SlotsBuffer::UpdateSlots(v8::internal::Heap*) () 
#10 0xb3f8e186 in 
v8::internal::MarkCompactCollector::EvacuateNewSpaceAndCandidates() () 
#11 0xb3f8f89e in v8::internal::MarkCompactCollector::SweepSpaces() () 
#12 0xb3f9219c in v8::internal::MarkCompactCollector::CollectGarbage() () 
#13 0xb3f72a4a in v8::internal::Heap::MarkCompact() () 
#14 0xb3f765b6 in 
v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, 
v8::GCCallbackFlags) () 
#15 0xb3f76780 in 
v8::internal::Heap::CollectGarbage(v8::internal::GarbageCollector, char 
const*, char const*, v8::GCCallbackFlags) () 
#16 0xb3f76ab2 in v8::internal::Heap::CollectAllAvailableGarbage(char 
const*) () 
#17 0xb3dd4bbe in v8::Isolate::LowMemoryNotification() ()

And the failing assert:

# 
# Fatal error in ../../v8/src/objects-inl.h, line 1468
# Check failed: (reinterpret_cast<intptr_t>(address) & 
::v8::internal::kHeapObjectTagMask) == 0. 
#

The assert seems to be failing because it has detected unaligned memory (at 
least - the DCHECK is called DCHECK_TAG_ALIGNED), and based on that I've 
been trying to find potential patches causing the problem. Among other 
candidates, I found this one which seemed relevant, especially because of 
the last comment:

https://codereview.chromium.org/1141523002
"In follow-up CLs the scavenger and the MC collector should also respect 
the unalignment of heap numbers."

Since the assert seems to be happening during GC, this sounds suspicious. I 
should also mention that we're currently using v4.5.103 of v8.

It takes a very long time to reproduce the issue so it is difficult to 
bisect. I haven't worked much with v8 previously so it's difficult to say 
if it could be related, so I'd like to check - do you see any possibility 
that the mentioned patch could be the cause for the failing assert and if 
so how could we fix it? If not, do you have any ideas on what else might 
have caused it?

Best regards,
Robert

-- 
-- 
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/d/optout.

Reply via email to