New issue
Advanced search Search tips

Issue 626089 link

Starred by 1 user

Issue metadata

Status: Duplicate
Merged: issue 607115
Owner: ----
Closed: Jul 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 2
Type: Bug



Sign in to add a comment

Crash in a Javascript+WebGL (Pixi.js or Cocos2d-JS) game

Reported by florian....@gmail.com, Jul 6 2016

Issue description

UserAgent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36

Steps to reproduce the problem:
1. http://compilgames.net/games/bub
2. Wait for the game to load, click on New Game
3. Click on skip in the top right of the screen.
4. The game start. Move with the arrow keys and press F to fire lasers.
5. Play for 1 minute (just keep moving and press F to fire lasers a lot). 

After 1/2 minute, the tab crashes: first, the whole game freeze, then unfreeze and the tab crashes (Aw snap).
It's 100% reproducible for me.

What is the expected behavior?
The game should run without freezing. It's working for example good on latest Firefox.

What went wrong?
After 1/2 minute, the tab crashes: first, the whole game freeze, then unfreeze for 2 seconds and then the tab crashes ("Aw snap").

Crashed report ID: d4bc9bd600000000

How much crashed? Just one tab

Is it a problem with a plugin? N/A 

Did this work before? Yes A few weeks ago

Chrome version: 51.0.2704.103  Channel: n/a
OS Version: OS X 10.10.5
Flash Version: Shockwave Flash 22.0 r0

It was working good before - never had this kind of crashes. It's possible that the game is getting more complex, hence triggering the crash. 
The game is based on github.com/4ian/GD - the rendering is done using Pixi.js (webGL). It's also crashing when switching to Cocos2d-JS (webGL).
I'm the author of the GDevelop engine so feel free to contact me
 
Asked the author of Pixi.js if he had any idea, so far we're totally unsure about what the problem could be (https://twitter.com/Doormat23/status/750814833289879552).
I've tried to switch the game engine renderer to use Cocos2d-JS (that is using WebGL too) instead of Pixi.js but same freeze.
Components: Blink>JavaScript
Stack trace. 
"""
Thread 0 CRASHED [EXC_BAD_ACCESS / KERN_INVALID_ADDRESS @ 0x00003edb00000000 ] MAGIC SIGNATURE THREAD
0x00003edb00000000		
0x00003edabd554162		
0x00003edabcdea5c0		
0x00003edabcdfcf79		
0x00003edaba309894		
0x00003edaba33b842		
0x00003edaba32512e		
0x0000000105e9a4af	(Google Chrome Framework -execution.cc:97 )	v8::internal::(anonymous namespace)::Invoke(v8::internal::Isolate*, bool, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, int, v8::internal::Handle<v8::internal::Object>*, v8::internal::Handle<v8::internal::Object>)
0x0000000105e9a2e5	(Google Chrome Framework -execution.cc:153 )	v8::internal::Execution::Call(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, int, v8::internal::Handle<v8::internal::Object>*)
0x0000000105bce084	(Google Chrome Framework -api.cc:4498 )	v8::Function::Call(v8::Local<v8::Context>, v8::Local<v8::Value>, int, v8::Local<v8::Value>*)
0x0000000106fe64e0	(Google Chrome Framework -V8ScriptRunner.cpp:465 )	blink::V8ScriptRunner::callFunction(v8::Local<v8::Function>, blink::ExecutionContext*, v8::Local<v8::Value>, int, v8::Local<v8::Value>*, v8::Isolate*)
0x0000000106ffb0cc	(Google Chrome Framework -V8FrameRequestCallback.cpp:52 )	blink::V8FrameRequestCallback::handleEvent(double)
0x00000001067b492c	(Google Chrome Framework -FrameRequestCallbackCollection.cpp:70 )	blink::FrameRequestCallbackCollection::executeCallbacks(double, double)
0x00000001067f30b2	(Google Chrome Framework -ScriptedAnimationController.cpp:135 )	blink::ScriptedAnimationController::serviceScriptedAnimations(double)
0x0000000106cf49e9	(Google Chrome Framework -PageAnimator.cpp:63 )	blink::PageAnimator::serviceScriptedAnimations(double)
0x00000001062cf379	(Google Chrome Framework -WebViewImpl.cpp:1967 )	blink::WebViewImpl::beginFrame(double)
0x00000001087b48a3	(Google Chrome Framework -render_widget_compositor.cc:911 )	non-virtual thunk to content::RenderWidgetCompositor::BeginMainFrame(cc::BeginFrameArgs const&)
0x000000010528318f	(Google Chrome Framework -proxy_main.cc:192 )	cc::ProxyMain::BeginMainFrame(std::__1::unique_ptr<cc::BeginMainFrameAndCommitState, std::__1::default_delete<cc::BeginMainFrameAndCommitState> >)
0x000000010528c74b	(Google Chrome Framework -bind_internal.h:181 )	base::internal::Invoker<base::IndexSequence<0ul, 1ul>, base::internal::BindState<base::internal::RunnableAdapter<void (cc::ProxyMain::*)(std::__1::unique_ptr<cc::BeginMainFrameAndCommitState, std::__1::default_delete<cc::BeginMainFrameAndCommitState> >)>, void (cc::ProxyMain*, std::__1::unique_ptr<cc::BeginMainFrameAndCommitState, std::__1::default_delete<cc::BeginMainFrameAndCommitState> >), base::WeakPtr<cc::ProxyMain>&, base::internal::PassedWrapper<std::__1::unique_ptr<cc::BeginMainFrameAndCommitState, std::__1::default_delete<cc::BeginMainFrameAndCommitState> > > >, base::internal::InvokeHelper<true, void, base::internal::RunnableAdapter<void (cc::ProxyMain::*)(std::__1::unique_ptr<cc::BeginMainFrameAndCommitState, std::__1::default_delete<cc::BeginMainFrameAndCommitState> >)> >, void ()>::Run(base::internal::BindStateBase*)
0x00000001045fba2a	(Google Chrome Framework -callback.h:397 )	base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask const&)
0x0000000107d32cca	(Google Chrome Framework -task_queue_manager.cc:289 )	scheduler::TaskQueueManager::ProcessTaskFromWorkQueue(scheduler::internal::WorkQueue*, scheduler::internal::TaskQueueImpl::Task*)
0x0000000107d31a38	(Google Chrome Framework -task_queue_manager.cc:201 )	scheduler::TaskQueueManager::DoWork(base::TimeTicks, bool)
0x0000000107d33942	(Google Chrome Framework -bind_internal.h:181 )	base::internal::Invoker<base::IndexSequence<0ul, 1ul, 2ul>, base::internal::BindState<base::internal::RunnableAdapter<void (scheduler::TaskQueueManager::*)(base::TimeTicks, bool)>, void (scheduler::TaskQueueManager*, base::TimeTicks, bool), base::WeakPtr<scheduler::TaskQueueManager>, base::TimeTicks, bool>, base::internal::InvokeHelper<true, void, base::internal::RunnableAdapter<void (scheduler::TaskQueueManager::*)(base::TimeTicks, bool)> >, void ()>::Run(base::internal::BindStateBase*)
0x00000001045fba2a	(Google Chrome Framework -callback.h:397 )	base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask const&)
0x000000010461e662	(Google Chrome Framework -message_loop.cc:479 )	base::MessageLoop::RunTask(base::PendingTask const&)
0x000000010461e97b	(Google Chrome Framework -message_loop.cc:488 )	base::MessageLoop::DeferOrRunPendingTask(base::PendingTask const&)
0x000000010461eb6a	(Google Chrome Framework -message_loop.cc:600 )	base::MessageLoop::DoWork()
"""
Not sure if it's related, but in case it can help, the stacktrace looks similar to https://bugs.chromium.org/p/chromium/issues/detail?id=605925

Also let me know if you have any idea on how to workaround this bug :)
One more detail, I've tested to reproduce the crash with a build of Electron based on a older version of Chrome (Chrome/45.0.2454.85 Electron/0.34.2).
The whole game worked flawlessly. :) So the crash could be a regression.
Cc: jkummerow@chromium.org
Status: Available (was: Unconfirmed)
Also happened on my Mac around 1 minutes play time: 9f16a60900000000


Labels: -OS-Mac OS-All
Mergedinto: 607115
Status: Duplicate (was: Available)
This is fixed in M52.

Sign in to add a comment