Describe the bug
Used latest commit on the 7.x-1.15 branch: d6cbfe2e319e206fc0c42f42e4f98724acec02b7
After setting up a Quantum Network Bridge to connect two ME networks, the connection breaks if the chunk is
unloaded/loaded caused by travelling far away from the ME system.
To Reproduce
./gradlew runClient/tp 10000 128 -10000 (i think because the spawnpoint is never unloaded)
Expected behavior
Even when unloading/loading the chunk, the connection should be kept or be restored, but not break.
Additional context
Originally discovered in 1.12 with some more setup (a security terminal was necessary in 1.12 and different players, so that the quantum link chamber had a different PlayerID than the Security terminal. Upon leaving the chunk, the security system noticed, that a secure Node should be connected to an insecureNode, but since the insecureNode had another PlayerId, the security check failed causing the disconnect). The relevant lines for the security related bug in 1.12 were:
https://github.com/AppliedEnergistics/Applied-Energistics-2/blob/12ca8d109a2965a11a39328d4cac39f9e538dc68/src/main/java/appeng/util/Platform.java#L952-L958
As 1.12 isn't supported anymore, I've tried to reproduce this bug in 1.15 and noticed, that unloading/loading the chunk was sufficient to break the connection in 1.15. Maybe the security issue still exists in 1.15, if the basic reconnection without a Security Terminal is fixed.
Environment
So, this is now fixed in the HEAD for 1.16.1 with PR for 1.15 pending. This particular issue was actually related to a porting bug. isChunkLoaded will return false while isBlockLoaded will return true. isChunkLoaded seems to additionally check if entities already started ticking for the chunk (if I understand it right), while our QNB initialization runs before that.
Most helpful comment
So, this is now fixed in the HEAD for 1.16.1 with PR for 1.15 pending. This particular issue was actually related to a porting bug. isChunkLoaded will return false while isBlockLoaded will return true. isChunkLoaded seems to additionally check if entities already started ticking for the chunk (if I understand it right), while our QNB initialization runs before that.