I am running a flight simulation which crashes the machine hard under Safari on OS X 10.8.5 and under Chrome on CentOS 7.1. When I say it crashes the machine hard I mean it takes down the entire machine requiring a hard reboot. Under Safari/OS X it happens within a few seconds. Under Chrome/CentOS it takes about 10 minutes.
This does not happen on OS X using Firefox or Chrome or on CentOS 7.1 using Firefox.
I am using Cesium 1.15.0. The initialization:
viewer = new Cesium.Viewer(‘cesiumContainer’, {
animation : false,
baseLayerPicker : false,
fullscreenButton : true,
geocoder : false,
homeButton : false,
infoBox : false,
sceneModePicker : false,
selectionIndicator : true,
timeline : false,
navigationHelpButton : false,
navigationInstructionsInitiallyVisible : false,
scene3DOnly : true,
imageryProvider : bingImagery,
terrainProvider : agiTerrain,
useDefaultRenderLoop : false
});
The main loop:
function updateFrame() {
updateStateTime();
if (!liveUrl) updateFromStorage();
updateSkyAtmosphere();
updateCamera();
updateHUD();
updateDivText();
viewer.render();
Cesium.requestAnimationFrame(updateFrame);
}
Any ideas on where to look?
Since it’s bringing down your entire machine, this is almost certainly a video card driver bug or a browser bug. If it weren’t, it is technically impossible for Cesium to crash the browser, let alone the entire operating system.
Given that it happens on multiple OSes, I would file a bug with the Chromium: https://code.google.com/p/chromium/issues/list Since it’s a hard lock, they should be pretty interested in triaging/fixing it as it may also be a gateway to a security error. Be sure to include a link to a live demo that causes the problem. You probably also want to look into chrome://crashes/ and see if your crashes are listed there as well (and reference them in the bug if they are).
As for where to start on your end, you probably want to dig into system logs to see if you can find any information on the source of the crash. I’m not sure where these files are on Mac or Linux machines but they should point to which driver is causing the fault (most likely the video driver). Just because the driver is at fault doesn’t mean that Chrome isn’t sending it bad commands for some reason.
On the Linux side, you definitely want to make sure you are on the latest driver available for your card. Also, can you share the results of going to http://webglreport.com/ on the offending machine? Just the contents of the WebGL 1 tab. That might shed some light on possible other issues.
Hi Matt,
we've experienced driver-/WebGL related system crashes on Safari/OS X
(nvidia/MacBook 2009, El Capitan, Safari 9.0.1) which were triggered by
cesiums' order independent translucency implementation. You could try
constructing the cesium widget with option
orderIndependentTranslucency : false
to see if that helps. While the crashes happen at the driver level, I
suspect it is at least partialy a user-space issue (e.g. due to
improper bounds checking/buffer management), as OIT works reliably
under chrome and firefox on the same system.
Manuel