phetsims/neuron

Neuron disappears in IE11 with Win 8

Closed this issue · 25 comments

This event occurred twice while i was testing on IE11 on Win8. When trying to figure out exactly what I did to cause this event, I also had IE crash 3 times. I think the problem occurred when I used the zoom slider after rewinding the potential chart and then clearing the chart.
neuron_bug-12_28

I haven't been able to nail down an exact sequence of steps to reproduce the problem. Using the refresh button did not fix the issue.

neuron_bug_after_refresh

The issue seems to occur when I'm zooming in on the neuron as the action potential reaches the end of the neuron.

I tried to reproduce this on IE11+Win7 and was unable to get it to happen. Assigning to @amyh-phet to do the following:

  • capture the "Report a Problem" data so that we have exact information about the version of the browser and OS
  • record the computer model
  • see if this can be reproduced on any other devices, including other Win8 machines, so we can rule out a hardware-specific issue

Once this is done, please assign to @jonathanolson for a look, since it seems like it might be a scenery issue or even a browser bug.

Test device: Dell XPS 9343 laptop computer (product ID: 00258-61989-74402-AAOEM

Operating System: Windows 8.1

Browser: IE 11.0.9600.18125

Problem description:

Steps to reproduce: Check on All Ions, Charges, Concentration and Potential Chart. Stimulate neuron and allow action potential to occur. Pause sim and rewind by dragging bar on Potential Chart to left. Press play button and use slider to zoom in on neuron while action potential is generated.

Severity: Neuron does not always disappear. More often, IE crashes and I have to restart the browser and sim.

Screenshots:
screenshot 3
screenshot 4

Troubleshooting information (do not edit):

Name: ‪Neuron‬

URL: http://www.colorado.edu/physics/phet/dev/html/neuron/1.0.0-rc.1/neuron_en.html

Version: 1.0.0-rc.1 2015-12-22 23:06:19 UTC

Features missing: touch, fullscreen

Flags: pointerEnabled, msPointerEnabled, pixelRatioScaling

User Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; Touch; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0.30729; Tablet PC 2.0; McAfee; InfoPath.3; GWX:DOWNLOADED; rv:11.0) like Gecko

Language: en-US

Window: 1280x637

Pixel Ratio: 2.5/1

WebGL: WebGL 0.94

GLSL: WebGL GLSL ES 0.94

Vendor: Microsoft (Internet Explorer)

Vertex: attribs: 16 varying: 15 uniform: 512

Texture: size: 16384 imageUnits: 16 (vertex: 16, combined: 32)

Max viewport: 16384x16384

OES_texture_float: true

Dependencies JSON: {"assert":{"sha":"d4909677","branch":"HEAD"},"axon":{"sha":"6f3c2e01","branch":"HEAD"},"babel":{"sha":"9618fad2","branch":"master"},"brand":{"sha":"c9282935","branch":"HEAD"},"chipper":{"sha":"1d1d5d32","branch":"HEAD"},"dot":{"sha":"7a28b1a9","branch":"HEAD"},"griddle":{"sha":"3adb78bd","branch":"HEAD"},"joist":{"sha":"191b15a4","branch":"HEAD"},"kite":{"sha":"4a947119","branch":"HEAD"},"neuron":{"sha":"3b7eee9d","branch":"HEAD"},"phet-core":{"sha":"73a034c6","branch":"HEAD"},"phetcommon":{"sha":"d712ace0","branch":"HEAD"},"scenery":{"sha":"47143cdd","branch":"HEAD"},"scenery-phet":{"sha":"a7f975d1","branch":"HEAD"},"sherpa":{"sha":"be8c4fc9","branch":"HEAD"},"sun":{"sha":"64555735","branch":"HEAD"},"tandem":{"sha":"07fbe58c","branch":"HEAD"}}

I have been unable to reproduce the issue on a second computer running Win 8.1 and IE 11. I tested this morning with Schrodinger (Dell Latitude laptop with Win8.1 64 bit and IE version 11.0.9600.18090). @ariel-phet, have you encountered this issue on your laptop?

I'm also not able to reproduce the problem on a Chromebook.

Not sure, but this seems to indicate perhaps it's more to do with my particular computer. I do have a screen capture that shows the problem occurring if that would be helpful at all.

Assigning to @jonathanolson to see if he thinks this is a scenery issue, browser bug, or a problem with my particular machine.

I cannot reproduce

@jbphet, are you able to collaborate and run on the affected device with the dev tools open, to see if there are any errors? (Seems like it would be helpful to debug in-person).

There's an interesting pixel ratio of 2.5, which is somewhat atypical. Does the crash happen with any other browsers on that device, and do they have the same pixel ratio reported in the "troubleshooting" info?

@jbphet and @jonathanolson

I can't reproduce the crash with an other browsers on this device. @ariel-phet has the same model of computer and cannot reproduce the crash either.

Sorry, I was not able to reproduce on IE11 Win 7

On my laptop, (IE 11 Win 8.1) a couple of times now I have gotten the browser to crash,but no errors were thrown in the console. I have not seen the disappearance of the neuron however. it also seems to take some pretty vigorous zooming in and out to cause an issue, so seems like a rare use case.

I agree with @ariel-phet that this is a rare use case. When trying to reproduce this again today, it took me about 15 attempts before any issue occurred. I think the browser is more likely to crash than the neuron disappear. I can only get the event to occur if I zoom in quickly while the action potential is generated.

Assigning to @amyh-phet to test on on v1.0.0-rc.2 (http://www.colorado.edu/physics/phet/dev/html/neuron/1.0.0-rc.2/neuron_en.html). Some of the changes made to fix other bugs may have had a positive impact on this.

Console from this happening in 1.0.0-rc.2:

WEBGL11026: INVALID_OPERATION: drawElements: Bound element array too small for given count and offset.
File: neuron_en.html, Line: 488, Column: 2175
WEBGL11256: GPU reset detected. Temporarily switching to software rendering.
WEBGL11006: CONTEXT_LOST_WEBGL: drawElements
File: neuron_en.html, Line: 488, Column: 2175
...
WEBGL11006: Too many errors encountered - no more errors will be logged
File: neuron_en.html, Line: 488, Column: 2175

Threw this error 101 times.

Ah, that explains it. This is a WebGL context loss, which can happen if some other app messes up the GPU. I'll follow up.

Molecule Shapes detects this happening, and opens a dialog. If this is also happening in testing, I'd like to try to get a general solution working.

Context loss issues in Neuron were also logged here: phetsims/scenery#317.

I've added a dialog for this case, which isn't a perfect solution but is better than nothing. I tested using fuzzMouse=100 and three browsers running simultaneously, but wasn't able to make the context loss happen. Assigning to @phet-steele so that he can try to reproduce. He'll need to work with the master version and, if that doesn't work, let me know so that I can put out some kind of dev release.

@jbphet I used a very heavy test to try to cause a context loss. I used GPU benchmark software (UNIGINE if you were interested) to really stress the GPU, while simultaneously plugging/unplugging a VGA monitor. The computer sure didn't like this but there was never a context loss. This was on JB's old computer (Win 7 IE11 & Chrome). For the sake of at least checking the elusive dialogue works, I'd like to go back to @amyh-phet's computer and cause a context loss. After that we can probably deem this is a rare issue.

@phet-steele and @jbphet If this needs to be tested today, let me know and I'll come up to campus. Otherwise, @phet-steele let's plan on you using my computer at some point tomorrow to check this.

@jonathanolson suggested using a MacBook Air + Chrome and simply plugging in the monitor on his desk, after the sim was opened (see phetsims/molecule-shapes/issues/120). This easily caused a context loss, although instead of the neuron and ions disappearing, it was only the ions that disappeared. There was no dialogue pop-up.

@jbphet using phettest showed no dialogue after context loss on @amyh-phet's computer.

We've found a pretty quick way to force a WebGL context loss: Run the sim on a MacBook using Chrome, then plug in a VGA monitor using the display port. Works pretty consistently (thanks @phet-steele for letting me know about this). When I did this on the current master version of Neuron, the dialog showed up just fine. Screenshots with and without dev tools open:

neuron-webgl-dialog-1
neuron-webgl-dialog-2

@jbphet the dialogue correctly appears in rc.3. Is that where we are going to leave this issue?

Yes, since it happens rarely and since implementing fully restoration of the WebGL context state would require considerable work, this is where we are leaving it for now. This was also the approach taken in the Molecule Shapes simulation.

Closing based on @phet-steele's comment above about the dialog showing up correctly.

@jbphet, Scenery is now properly handling context loss itself (see phetsims/scenery#347), so I've tested and removed the context-loss code in Neuron above.

It now should re-load after the context is restored.

@jonathanolson - Excellent! Thanks for the update.