Dungeon Crawl Stone Soup Tracker - DCSS
Viewing Issue Advanced Details
11387 Bug Report major random 2018-02-13 16:59 2018-04-28 22:44
NormalPerson7 Remote  
normal WebTiles  
new 0.22 old branch  
0011387: Menus sometimes randomly remain on-screen when closed.
Menus such as the i, I, M, r, q, V, a, ?/, ctrl-f screens sometimes stay up when closed, in that a fake menu is placed over the playing screen, which can only be interacted with through the up and down arrows, which will move the menu up and down. All other commands will apply to the game, as if the fake menu didn't exist, with the exception sometimes of the menu command which created the fake menu (specifically I have experienced ctrl-f not working in this case).

Should the player try to move with arrow keys, the player will not move - however actions taken with other menus will go through. For example if the i screen is up, pressing q will bring up the quaff screen on top of the i screen and the player can quaff potions from there.

This can also sometimes be seen when spectating other players online, where the specific spectator experiences this but not the player or other spectators.

When this bug occurs, essentially the game must be saved and reloaded to continue playing, which is an inconvenience (especially since it kicks all your spectators).

This bug is likely to be limited to online (at least I have never seen it offline and never tried to reproduce it at all), perhaps even specific server(s), and may have something to do with latency. I play on CXC under username NormalPerson7 if that is relevant.
related to 0010318resolved advil Webtiles input hangs when a spectator joins, if the player is currently inputting a !note at the time of spectator join. 
Issue History
2018-02-13 16:59 NormalPerson7 New Issue
2018-02-13 17:22 aidanholm Note Added: 0032086
2018-02-13 19:35 NormalPerson7 Note Added: 0032087
2018-02-14 22:28 NormalPerson7 Note Added: 0032092
2018-02-20 22:11 NormalPerson7 Note Added: 0032105
2018-02-24 13:33 NormalPerson7 Note Added: 0032107
2018-04-23 03:51 advil Note Added: 0032183
2018-04-23 03:56 advil Note Added: 0032184
2018-04-23 03:59 advil Relationship added related to 0010318
2018-04-28 22:39 NormalPerson7 Note Added: 0032203
2018-04-28 22:40 NormalPerson7 Note Edited: 0032203
2018-04-28 22:40 NormalPerson7 Note Deleted: 0032203
2018-04-28 22:44 NormalPerson7 Note Added: 0032204

2018-02-13 17:22   
If (when) this happens again, please check the developer tools console for any error messages, and add them here if there are any.

This would be online only; offline rendering uses completely different code paths. Might be caused by the JS changes in 55045edfef.
2018-02-13 19:35   
Developer tools console? How do I access that?
2018-02-14 22:28   
Ok I got the following error message in the console, and this appeared only when playing and the bug occurred, not when spectating and the bug occurred:

Uncaught TypeError: Cannot set property 'first_visible' of null
    at update_visible_indices (:8080/gamedata/dfae16fd9854422736001ffed8505423f24b228c/menu.js:354)
    at HTMLDivElement.menu_scroll_handler (:8080/gamedata/dfae16fd9854422736001ffed8505423f24b228c/menu.js:583)
    at HTMLDivElement.dispatch (jquery.js:2)
    at HTMLDivElement.h (jquery.js:2)
2018-02-20 22:11   
On a different computer, I got the following series of errors, again when playing:

Error in message: Objectmsg: "update_menu"
                  total_items: 24
                  __proto__: Object
handle_message_backlog @ client.js:106

Cannot read property 'items' of null
handle_message_backlog @ client.js:107

TypeError: Cannot read property 'items' of null
    at update_menu (menu.js:509)
    at Object.handle_message (comm.js:33)
    at handle_message (client.js:47)
    at handle_message_backlog (client.js:102)
    at enqueue_messages (client.js:85)
    at client.js:1261
    at FileReader.f.onload (client.js:1093)

These had been printed several times in the browser's console, and occured associated with Ashenzari's "curse which item?" menu.
2018-02-24 13:33   
I got basically the same error, just with "'no_exp' of undefined" replacing "'items' of null", for the I screen.
2018-04-23 03:51   
gammafunk managed to catch this on video here: https://youtu.be/xJgKkrL8W4Q?t=969 [^]

There's also a bunch more discussion here: https://crawl.develz.org/tavern/viewtopic.php?f=8&t=25255&p=328167#p328167 [^]
2018-04-23 03:56   
I've pushed a fix that *may* address this, in https://github.com/crawl/crawl/commit/870eee8612f8 [^] . The theory behind the fix doesn't really explain NormalPerson7's javascript errors (which suggest that `menu` is null when it shouldn't be) but it does explain all the descriptions of this bug as well as the behavior in the video linked above. I still haven't ever reproduced it myself.
2018-04-28 22:44   
I can confirm that that fix has not worked, and that I am still getting this bug on WebTiles pretty often when spectators join.