Context Loss loading large(ish) data in latest update of Chrome.

47 views
Skip to first unread message

Philip Taylor

unread,
Nov 23, 2021, 2:51:43 PM11/23/21
Hi, we've suddenly started experiencing repeated context loss in Chrome over the last few days, and I did see an update to chrome recently. Chrome stable is on build 96.0.4664.45, which was released last monday.
It's pretty consistent across machines, and seems to occur after loading some bigger datasets. 

If you are curious, you can see the crash happening here: 
You may need to refresh a few times to see the issue.

The issue doesn't occur on Chrome Beta/Dev/Canary, so it looks like a regression they fixed already and is just in Stable.

I've tried debugging the issue to see if I can isolate what causes it, but I feel like I am chasing a ghost and no specific chunk of our code triggers it (that I can see).

Does anyone else see strange behavior in Chrome? Would any of the Chrome team have a suggestion? I anticipate this problem going away within about a month as soon as Chrome 97 makes it to Stable. 

Thanks for any feedback

--
Zea Homepage
Philip TAYLOR
CTO, Zea Inc.

Montréal, Québec

The contents of this e-mail are confidential with all rights reserved to the author. It is illegal to use or divulge this information without authorization. If you have received this e-mail by mistake, please notify me immediately by replying to the e-mail. 

Alexander Rose

unread,
Nov 23, 2021, 3:14:40 PM11/23/21
to WebGL Dev List
Hi, we saw a context loss issue in Chrome 96 on Win as well in Mol* (molstar.org). For our case I was able to pin point it on updating elements buffers bound to a deleted VAO. I created a Chrome bug (https://bugs.chromium.org/p/chromium/issues/detail?id=1272238). As a workaround I disabled use of VAOs in molstar.

Cheers
Alex

Kai Ninomiya

unread,
Nov 23, 2021, 6:56:16 PM11/23/21
Hi Philip,

It's possible this isn't a regression by revision, but by experimental configuration.

Please file an issue on http://crbug.com (with the Blink>WebGL component) and include:
- Report from chrome://gpu (includes your GPU and driver config)
- Report from chrome://version (includes the Chrome experiment config)
from BOTH a working and non-working browser version (e.g. as 4 txt files).

Thanks!
-Kai (he/they)


--
You received this message because you are subscribed to the Google Groups "WebGL Dev List" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To view this discussion on the web visit https://groups.google.com/d/msgid/webgl-dev-list/CAC7g9xRpMbFJ8QAGOb9LPXd_mzhZvaNV-dn-uz8WVc21eGnNGA%40mail.gmail.com.

Philip Taylor

unread,
Nov 23, 2021, 7:50:56 PM11/23/21
Thanks Kai and Alexander.

Alexander that was it. I updated our cleanup code to unbind the index buffer when destroying the VAO.

destroy(): void {
const gl = this.gl
// Ensure we detach the index buffer before deleting the VAO.
if (this.indexBuffer) {
gl.bindVertexArray(this.vao)
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, null)
}
gl.deleteVertexArray(this.vao)
} 


I think we can blame [email protected] :)
with the following change: VertexArray: on destroy, remove observer on element array buffer.

Thanks for your help.

Ken Russell

unread,
Dec 2, 2021, 8:36:21 PM12/2/21
Thanks for filing the bug. The bisect might have been wrong (done in reverse) and it looks like [email protected] 's change actually fixed this, rather than causing it.

-Ken



Philip Taylor

unread,
Dec 6, 2021, 11:56:58 AM12/6/21
oh, that's great! I should apologize to steven for sullying his reputation :).
We deployed fixes to this issue, but it was stressful and we need to plan for this kind of thing. 

Reply all
Reply to author
Forward
0 new messages