My question is if one thread is calling PersistentBase::Reset() on a weak 
handle while another thread is running garbage collection, is it possible 
to cause memory corruption?

On Sunday, July 16, 2017 at 6:15:16 PM UTC-7, Jane Chen wrote:
>
> Ben,
>
> Can PersistentBase::Reset() be called from a different thread from which 
> the isolate is attached to?  Is PersistentBase::Reset() thread-safe?
>
> Jane
>
> On Thursday, July 13, 2017 at 12:59:13 PM UTC-7, Ben Noordhuis wrote:
>>
>> On Thu, Jul 13, 2017 at 12:40 AM, Jane Chen <jxch...@gmail.com> wrote: 
>> > Embedding v8 5.3. 
>> > 
>> > Seeing a crash if I have weak handles in many isolates: 
>> > 
>> > Thread [51] 27257 [core: 6] (Suspended : Signal : SIGILL:Illegal 
>> > instruction) 
>> >  v8::base::OS::Abort() at platform-posix.cc:240 0x7ffff5f078a1 
>> >  V8_Fatal() at logging.cc:116 0x7ffff5f02d88 
>> >  v8::internal::GlobalHandles::Node::next_free() at 
>> global-handles.cc:254 
>> > 0x7ffff58af84b 
>> >  v8::internal::GlobalHandles::Create() at global-handles.cc:601 
>> > 0x7ffff58af666 
>> >  v8::V8::GlobalizeReference() at api.cc:717 0x7ffff527ae6c 
>> >  New() at v8.h:7,717 0x2bcba4e 
>> >  Reset<v8::Array>() at v8.h:7,776 0x2bcba4e 
>> > 
>> > Accumulating weak handles on one thread doesn't seem to be a problem, 
>> as v8 
>> > GC kicks off on demand. 
>> > 
>> > I can work around it by invoking isolate->LowMemoryNotification() every 
>> time 
>> > a context is disposed, but it seems an over-kill. I was hoping for 
>> something 
>> > more reactive.  Any tips? 
>> > 
>> > Thanks, 
>> > Jane 
>>
>> The stack trace looks like a V8 bug (assuming no bugs in your code) 
>> but it's hard to say for sure.  Are you using object groups? 
>>
>> global-handles.cc changed quite a bit since 5.3, can you still 
>> reproduce with tip-of-tree? 
>>
>

-- 
-- 
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