-
Notifications
You must be signed in to change notification settings - Fork 3.6k
Cesium3DTileset
loads tileset recursively on empty content URL
#7263
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Thanks for reporting this @vaclavblazek . I do agree it sounds like it would be a good idea to have a check on load to prevent this from happening. I think it would be great to see a community contribution for this! I marked it good first issue since it could be a nice entry to how 3D Tiles are loaded in CesiumJS. |
@ebogo1 or @lilleyse - I'm working on this issue right now and just wanted to clarify some things before I started implementing a solution.
|
Technically the tileset.json is invalid because it creates a circular dependency which is disallowed by the spec:
https://github.com/CesiumGS/3d-tiles/tree/main/specification#external-tilesets Generally we try not to add workarounds for invalid data but in this case I think it's fine to print a warning to the console and treat it like a regular empty tile. |
While writing 3D Tiles generator I've found out that an empty URL in the Tile's content (i.e.
"content": { "url": "" }
) causes cycle in the tile tree structure in the Cesuim API.The core cause is because content's full URL is then the original tileset's URL and fetched JSON is treated as an external tileset. If there is more than one tile with an empty URL it is an equivalent of a fork bomb: the browser slows down terribly, endlessly loading external tilesets and actual tile data over and over again.
Propper handling should be to report invalid tile and maybe skip it.
The text was updated successfully, but these errors were encountered: