During normal backend operation, the ADJ file is copied to:
~/.cache/hyperloop-control-station/adj
Hypervisor uses the same path to locate its ADJ file.
However, Hypervisor needs to bind to port 80, which usually requires root privileges. Therefore, it is often started using sudo. In that case, ~ resolves to /root, so Hypervisor looks for the ADJ file at:
/root/.cache/hyperloop-control-station/adj
instead of the current user's cache directory.
As a result, Hypervisor may find and use an ADJ file stored in the root user's cache. This file may be outdated and differ from the latest ADJ generated by the backend.
This issue caused problems during EHW 2026, as Hypervisor was using an outdated ADJ configuration, which caused it to crash. I identified the cause and resolved the issue approximately ten minutes before the final demonstration.
During normal backend operation, the ADJ file is copied to:
Hypervisor uses the same path to locate its ADJ file.
However, Hypervisor needs to bind to port 80, which usually requires root privileges. Therefore, it is often started using
sudo. In that case,~resolves to/root, so Hypervisor looks for the ADJ file at:instead of the current user's cache directory.
As a result, Hypervisor may find and use an ADJ file stored in the root user's cache. This file may be outdated and differ from the latest ADJ generated by the backend.
This issue caused problems during EHW 2026, as Hypervisor was using an outdated ADJ configuration, which caused it to crash. I identified the cause and resolved the issue approximately ten minutes before the final demonstration.