{"action":"created","issue":{"url":"https://api.github.com/repos/nodejs/node/issues/2630","labels_url":"https://api.github.com/repos/nodejs/node/issues/2630/labels{/name}","comments_url":"https://api.github.com/repos/nodejs/node/issues/2630/comments","events_url":"https://api.github.com/repos/nodejs/node/issues/2630/events","html_url":"https://github.com/nodejs/node/issues/2630","id":104145489,"number":2630,"title":"Crashing during GC in 3.2.0","user":{"login":"justinmchase","id":10974,"avatar_url":"https://avatars.githubusercontent.com/u/10974?v=3","gravatar_id":"","url":"https://api.github.com/users/justinmchase","html_url":"https://github.com/justinmchase","followers_url":"https://api.github.com/users/justinmchase/followers","following_url":"https://api.github.com/users/justinmchase/following{/other_user}","gists_url":"https://api.github.com/users/justinmchase/gists{/gist_id}","starred_url":"https://api.github.com/users/justinmchase/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/justinmchase/subscriptions","organizations_url":"https://api.github.com/users/justinmchase/orgs","repos_url":"https://api.github.com/users/justinmchase/repos","events_url":"https://api.github.com/users/justinmchase/events{/privacy}","received_events_url":"https://api.github.com/users/justinmchase/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/nodejs/node/labels/buffer","name":"buffer","color":"f7c6c7"},{"url":"https://api.github.com/repos/nodejs/node/labels/v8","name":"v8","color":"0052cc"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2015-08-31T22:19:58Z","updated_at":"2015-09-01T07:15:01Z","closed_at":null,"body":"I'm still investigating but I did a build of iojs so I can get a callstack and here is where it's crashing:\r\n```\r\n \tntdll.dll!00007ffadd65a24b()\tUnknown\r\n \tntdll.dll!00007ffadd65eaca()\tUnknown\r\n \tntdll.dll!00007ffadd602fca()\tUnknown\r\n \tntdll.dll!00007ffadd614b95()\tUnknown\r\n \tiojs.exe!free(void * pBlock) Line 51\tC\r\n>\tiojs.exe!v8::internal::Heap::FreeDeadArrayBuffersHelper(v8::internal::Isolate * isolate, std::map<void *,unsigned __int64,std::less<void *>,std::allocator<std::pair<void * const,unsigned __int64> > > & live_buffers, std::map<void *,unsigned __int64,std::less<void *>,std::allocator<std::pair<void * const,unsigned __int64> > > & not_yet_discovered_buffers) Line 1770\tC++\r\n \tiojs.exe!v8::internal::Heap::FreeDeadArrayBuffers(bool from_scavenge) Line 1844\tC++\r\n \tiojs.exe!v8::internal::Heap::Scavenge() Line 1651\tC++\r\n \tiojs.exe!v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector collector, const v8::GCCallbackFlags gc_callback_flags) Line 1196\tC++\r\n \tiojs.exe!v8::internal::Heap::CollectGarbage(v8::internal::GarbageCollector collector, const char * gc_reason, const char * collector_reason, const v8::GCCallbackFlags gc_callback_flags) Line 912\tC++\r\n \tiojs.exe!v8::internal::Factory::NewHeapNumber(double value, v8::internal::MutableMode mode, v8::internal::PretenureFlag pretenure) Line 1075\tC++\r\n \tiojs.exe!v8::internal::Runtime_AllocateHeapNumber(int args_length, v8::internal::Object * * args_object, v8::internal::Isolate * isolate) Line 1157\tC++\r\n \t0000025bcee062b8()\tUnknown\r\n \tiojs.exe!v8::internal::Runtime_AllocateHeapNumber(int args_length, v8::internal::Object * * args_object, v8::internal::Isolate * isolate) Line 1157\tC++\r\n \t000000504bb6e8f8()\tUnknown\r\n \t000000504bb6e8f0()\tUnknown\r\n \t000000316e0b9fd9()\tUnknown\r\n \t000000504be18db0()\tUnknown\r\n \tiojs.exe!v8::internal::JSFunction::ReplaceCode(v8::internal::Code * code) Line 6068\tC++\r\n```\r\n\r\nMy app has native components and is dealing with Buffer's. It was running fine before 3.0 so this may be a new bug. Its 100% reproducible if someone wants details on that. "},"comment":{"url":"https://api.github.com/repos/nodejs/node/issues/comments/136610595","html_url":"https://github.com/nodejs/node/issues/2630#issuecomment-136610595","issue_url":"https://api.github.com/repos/nodejs/node/issues/2630","id":136610595,"user":{"login":"trevnorris","id":289174,"avatar_url":"https://avatars.githubusercontent.com/u/289174?v=3","gravatar_id":"","url":"https://api.github.com/users/trevnorris","html_url":"https://github.com/trevnorris","followers_url":"https://api.github.com/users/trevnorris/followers","following_url":"https://api.github.com/users/trevnorris/following{/other_user}","gists_url":"https://api.github.com/users/trevnorris/gists{/gist_id}","starred_url":"https://api.github.com/users/trevnorris/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/trevnorris/subscriptions","organizations_url":"https://api.github.com/users/trevnorris/orgs","repos_url":"https://api.github.com/users/trevnorris/repos","events_url":"https://api.github.com/users/trevnorris/events{/privacy}","received_events_url":"https://api.github.com/users/trevnorris/received_events","type":"User","site_admin":false},"created_at":"2015-09-01T07:15:01Z","updated_at":"2015-09-01T07:15:01Z","body":"Are you aware of the change to `Buffer::New()` in which it now takes control of the memory pointer? If the memory should be copied then `Buffer::Copy()` is the new API to use.\r\n\r\nThe fact that your app worked in 3.0 leads me to this conclusion. As that release had a memory leak and faulty API. It was a mistake on my part when reimplementing Buffer to use Typed Arrays."}}