Skip to content

Segfault when dropping Context #24

@jeromegn

Description

@jeromegn

I made a simple program (uses ChakraCore 0.11, current master) which segfaults when releasing a Context:

Process 29099 stopped
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x907f32000)
    frame #0: 0x000000010021a07c libChakraCore.dylib`VirtualTableInfoBase::GetVirtualTable(ptr=0x0000000907f32000) at vtinfo.h:89
   86  	class VirtualTableInfoBase
   87  	{
   88  	public:
-> 89  	    static INT_PTR GetVirtualTable(void * ptr) { return (*(INT_PTR*)ptr); }
   90  	protected:
   91  	    static void SetVirtualTable(void * ptr, INT_PTR vt) { *(INT_PTR*)ptr = vt; }
   92  	};
Target 0: (rustproxy) stopped.
(lldb) fr v
(void *) ptr = 0x0000000907f32000
(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x907f32000)
  * frame #0: 0x000000010021a07c libChakraCore.dylib`VirtualTableInfoBase::GetVirtualTable(ptr=0x0000000907f32000) at vtinfo.h:89
    frame #1: 0x00000001003a2545 libChakraCore.dylib`VirtualTableInfo<JsrtContextCore>::HasVirtualTable(ptr=0x0000000907f32000) at vtinfo.h:101
    frame #2: 0x00000001003a2525 libChakraCore.dylib`JsrtContext::Is(ref=0x0000000907f32000) at JsrtContextCore.cpp:17
    frame #3: 0x00000001002ee3ac libChakraCore.dylib`::JsRelease(ref=0x0000000907f32000, count=0x00007ffeefbfe948) at Jsrt.cpp:682
    frame #4: 0x000000010002bb4b rustproxy`chakracore::util::release_reference::hb73d2b9d781d679f(reference=JsRef @ 0x00007ffeefbfe938) at util.rs:34
    frame #5: 0x000000010002613a rustproxy`_$LT$chakracore..context..Context$u20$as$u20$core..ops..drop..Drop$GT$::drop::hd59efd86683630b5(self=0x00007ffeefbfeae8) at macros.rs:75
    frame #6: 0x0000000100001af5 rustproxy`core::ptr::drop_in_place::h161661c845e43bd1((null)=0x00007ffeefbfeae8) at ptr.rs:59
    frame #7: 0x0000000100001a8a rustproxy`core::ptr::drop_in_place::h1072f79302fb8014((null)=0x00007ffeefbfeab0) at ptr.rs:59
    frame #8: 0x0000000100002bb4 rustproxy`rustproxy::main::h0a8ee1b9fd89ba26 at main.rs:210
<snip>

This is likely due to the latest ChakraCore, but I thought I'd still bring it up.

This isn't the first segfault I've seen related to the "Virtual Table"

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions