Rendering crash

We’re getting the following when loading some imagery after cesium is intialized. We have a couple of different sets of imagery, so we load the imagery once the user selects which map to view. If you zoom in and out just after loading the map then the following will occur on occasion. We’re also getting alot of the following errors, but we’ve been getting these for the length of the project.

GET http://:8081/default/smerc/2/2/3.jop 404 (Not Found)

Cesium.js:428 An error occurred in “_”: Failed to obtain image tile X: 3 Y: 2 Level: 2.

Cesium.js:477 An error occurred while rendering. Rendering has stopped.
undefined
TypeError: Cannot read property ‘_target’ of undefined
TypeError: Cannot read property ‘_target’ of undefined
at f.set (http://localhost:8080/dbst/js/cesium/Cesium.js:439:17853 )
at c._setUniforms (http://localhost:8080/dbst/js/cesium/Cesium.js:439:25512 )
at k (http://localhost:8080/dbst/js/cesium/Cesium.js:460:25142 )
at L.draw (http://localhost:8080/dbst/js/cesium/Cesium.js:460:28452 )
at n.execute (http://localhost:8080/dbst/js/cesium/Cesium.js:438:27270 )
at xe (http://localhost:8080/dbst/js/cesium/Cesium.js:471:27129 )
at Ie (http://localhost:8080/dbst/js/cesium/Cesium.js:471:30195 )
at Ve (http://localhost:8080/dbst/js/cesium/Cesium.js:472:3011 )
at Be (http://localhost:8080/dbst/js/cesium/Cesium.js:472:930 )
at qe (http://localhost:8080/dbst/js/cesium/Cesium.js:472:7008)

Is there place to debug to see why this is occurring?

Scott

First of all, this issue is a real show stopper. I don’t think we’re doing anything outside of the norm, and it’s pretty easy to get Cesium to stop rendering. Unfortunately, I can’t really share our imagery, but I’m trying to find a way to build a sandcastle app to show the problem.

Cesium v28 on windows with multiple configurations.

Here is what I have done so far:

I changed:

UniformSampler.prototype.set = function() {

var v = this.value;

if ( v !== undefined ) {

var gl = this._gl;

gl.activeTexture(gl.TEXTURE0 + this.textureUnitIndex);

gl.bindTexture(v._target, v._texture);

} else {

console.info( “ERROR: UniformSampler value is undefined” )

}

};

And I got this(so I’m thinking that I’m on to something):

Cesium.js:176314 An error occurred while rendering. Rendering has stopped.
undefined
DeveloperError: readyImagery is not actually ready!
Error
at new DeveloperError (http://localhost:8080/dbst/js/cesium/Cesium.js:1327:19 )
at addDrawCommandsForTile (http://localhost:8080/dbst/js/cesium/Cesium.js:152610:27 )
at GlobeSurfaceTileProvider.endUpdate (http://localhost:8080/dbst/js/cesium/Cesium.js:151910:17 )
at QuadtreePrimitive.update (http://localhost:8080/dbst/js/cesium/Cesium.js:154180:32 )
at Globe.update (http://localhost:8080/dbst/js/cesium/Cesium.js:155229:21 )
at updatePrimitives (http://localhost:8080/dbst/js/cesium/Cesium.js:167300:26 )
at executeCommandsInViewport (http://localhost:8080/dbst/js/cesium/Cesium.js:167205:9 )
at updateAndExecuteCommands (http://localhost:8080/dbst/js/cesium/Cesium.js:167073:17 )
at render (http://localhost:8080/dbst/js/cesium/Cesium.js:167503:9 )
at Scene.render (http://localhost:8080/dbst/js/cesium/Cesium.js:167541:13)

Any help would be greatly appreciated.

Thanks,

Scott

Another edit:
UniformSampler.prototype.set = function() {

var gl = this._gl;

gl.activeTexture(gl.TEXTURE0 + this.textureUnitIndex);

var v = this.value;

v && gl.bindTexture(v._target, v._texture);

};

Results:

Cesium.js:25661 Uncaught DeveloperError {name: “DeveloperError”, message: “This object was destroyed, i.e., destroy() was called.”, stack: “Error↵ at new DeveloperError (http://localhost:…localhost:8080/dbst/js/cesium/Cesium.js:167680:9)”}

throwOnDestroyed @ Cesium.js:25661

continueDraw @ Cesium.js:135862

Context.draw @ Cesium.js:135899

DrawCommand.execute @ Cesium.js:70463

executeCommand @ Cesium.js:166601

executeCommands @ Cesium.js:166842

executeCommandsInViewport @ Cesium.js:167210

updateAndExecuteCommands @ Cesium.js:167069

Scene.pick @ Cesium.js:167680

Scene.drillPick @ Cesium.js:167793

pick @ cesiumearth.js:4565

(anonymous) @ cesiumearth.js:4915

handleMouseMove @ Cesium.js:59017

handlePointerMove @ Cesium.js:59413

listener @ Cesium.js:58832

Cesium.js:25661 Uncaught DeveloperError {name: “DeveloperError”, message: “This object was destroyed, i.e., destroy() was called.”, stack: “Error↵ at new DeveloperError (http://localhost:…localhost:8080/dbst/js/cesium/Cesium.js:167680:9)”}

throwOnDestroyed @ Cesium.js:25661

continueDraw @ Cesium.js:135862

Context.draw @ Cesium.js:135899

DrawCommand.execute @ Cesium.js:70463

executeCommand @ Cesium.js:166601

executeCommands @ Cesium.js:166842

executeCommandsInViewport @ Cesium.js:167210

updateAndExecuteCommands @ Cesium.js:167069

Scene.pick @ Cesium.js:167680

Scene.drillPick @ Cesium.js:167793

pick @ cesiumearth.js:4565

(anonymous) @ cesiumearth.js:4915

handleMouseMove @ Cesium.js:59017

handlePointerMove @ Cesium.js:59413

listener @ Cesium.js:58832

Cesium.js:25661 Uncaught DeveloperError {name: “DeveloperError”, message: “This object was destroyed, i.e., destroy() was called.”, stack: “Error↵ at new DeveloperError (http://localhost:…localhost:8080/dbst/js/cesium/Cesium.js:167680:9)”}

throwOnDestroyed @ Cesium.js:25661

continueDraw @ Cesium.js:135862

Context.draw @ Cesium.js:135899

DrawCommand.execute @ Cesium.js:70463

executeCommand @ Cesium.js:166601

executeCommands @ Cesium.js:166842

executeCommandsInViewport @ Cesium.js:167210

updateAndExecuteCommands @ Cesium.js:167069

Scene.pick @ Cesium.js:167680

Scene.drillPick @ Cesium.js:167793

pick @ cesiumearth.js:4565

(anonymous) @ cesiumearth.js:4915

handleMouseMove @ Cesium.js:59017

handlePointerMove @ Cesium.js:59413

listener @ Cesium.js:58832

Cesium.js:25661 Uncaught DeveloperError {name: “DeveloperError”, message: “This object was destroyed, i.e., destroy() was called.”, stack: “Error↵ at new DeveloperError (http://localhost:…localhost:8080/dbst/js/cesium/Cesium.js:167680:9)”}

Another edit:
UniformSampler.prototype.set = function() {

var gl = this._gl;

gl.activeTexture(gl.TEXTURE0 + this.textureUnitIndex);

var v = this.value;

v && gl.bindTexture(v._target, v._texture);

};

Opps! Left out this part, same error as above though.

Cesium.js:176310 An error occurred while rendering. Rendering has stopped.
undefined
DeveloperError: readyImagery is not actually ready!
Error
at new DeveloperError (http://localhost:8080/dbst/js/cesium/Cesium.js:1327:19 )
at addDrawCommandsForTile (http://localhost:8080/dbst/js/cesium/Cesium.js:152606:27 )
at GlobeSurfaceTileProvider.endUpdate (http://localhost:8080/dbst/js/cesium/Cesium.js:151906:17 )
at QuadtreePrimitive.update (http://localhost:8080/dbst/js/cesium/Cesium.js:154176:32 )
at Globe.update (http://localhost:8080/dbst/js/cesium/Cesium.js:155225:21 )
at updatePrimitives (http://localhost:8080/dbst/js/cesium/Cesium.js:167296:26 )
at executeCommandsInViewport (http://localhost:8080/dbst/js/cesium/Cesium.js:167201:9 )
at updateAndExecuteCommands (http://localhost:8080/dbst/js/cesium/Cesium.js:167069:17 )
at render (http://localhost:8080/dbst/js/cesium/Cesium.js:167499:9 )
at Scene.render (http://localhost:8080/dbst/js/cesium/Cesium.js:167537:13)

By “v28” Do you mean b28 or 1.28.0? (I assume the latter). We fixed an issue that could be the source of this just a couple of months ago: https://github.com/AnalyticalGraphicsInc/cesium/issues/4777 (and the PR https://github.com/AnalyticalGraphicsInc/cesium/pull/4811 ) .

I would recommend upgrading out 1.34 (which we just released today) to see if the issue still presents itself.

Sorry I don’t have a better answer for you, but it’s hard to provide more guidance here without being able to reproduce it on our end. I’m actually kind of optimistic that upgrading Cesium will fix the issue though.

1.34 does in fact appear to fix the problem! Thanks, Scott