any eta on fixing nexus portals disappearing?

we still have portals disappearing and it completely kills running longer chains where you have lots of backtracking to hit side rooms.

how to reproduce:

in a undecayed 3way memory node with N/W/E exits and entered from the W side. move to the E side click stab, return to nexus, portal works fine.

take the E bridge to adjacent decaying synth chests node, race through pick up loot, click loot stab to portal to nexus works fine.

go back to decayed node, take memory portal to entrance, back to 3way memory, leave bridge, synth chest node decays as expected. at this point there is still a portal on this E exit. I click stab to select return to nexus expecting it to update my portal location to here but my last portal opened was in a room no longer on the map so I suspect my portal linkage gets destroyed here. I enter this portal and appear in the nexus and there is no portal back because of ibid.

what I suspect is the portal update logic does not have a linked list of last portal opened locations and instead just has a single instance (maybe two, but double portals from a treasure room eats them) so when you have multiple open (previous rooms, treasure room portal @ the chests, treasure room portal @ the entrance) and the last is destroyed it is not correctly moved back to the previous portal location in the chain.

probably because the person writing the room decay code wasn't the same person writing the portal update code and they didn't contend correctly with rooms decaying underneath them.
Last bumped on Apr 15, 2019, 2:33:19 PM
Thanks for the report and repro steps, we'll look into this.
fwiw, in that same scenario if i do not return to nexus and instead head to the N stab and click there, open to nexus and take the portal I -believe- the bug doesnt happen. haven't been willing to risk testing it for obvious reasons though.

so something about attempting to use a stabilizer to spawn a nexus portal when one was there before is probably the bug. I imagine the code checks for the presence of a portal at a stab, realizes one is there and doesn't update the stab because it assumes the stab agrees the portal is there and current when in fact it is not due to the side room visits.

the nexus equivalent to the ABA concurrency problem in a nutshell.
yea visiting the N stab updates the stab and a portal to nexus from it works fine. only visiting the stale portal on E causes the deletion it appears.

TLDR: do not use portals in previous rooms if you've visited a decaying room since. move the portal to another stab before use to avoid the bug.

Report Forum Post

Report Account:

Report Type

Additional Info