So I have this ultra weird bug with the ZAC on my ziti setup, which I don't know how to attack.
If this should be better in an github issue, let me know!
For background-Information:
(1) The server which hosts my controller is down since 4 days (vps provider at fault and they can't seem to fix it)
(2) I setup a new controller from my backup which gets created while all containers on the controller host are down - so consistent.
(3) Whole setup is working like before, all services running, connections are fine etc.
(4) Whole setup is docker only (controller, router, etc)
So now for the problem I have.
I'm using ZAC to do the configuration of my ziti-network. ZAC works fine except for the configurations. After a few requests (and somethings even the first) the ZAC shows the configurations as "empty". Empty as in host information, interception information etc is just "missing". The weird thing is the api calls made by the browser are filled with the correct data.
Hi @tekook, that sounds strange for sure. The best thing to do is open developer tools and look at the console / network tabs. Look for any errors in the console and any anomalies in the network tab.
You could also clear all your cookies for that site and clear all site data to see if some kind of cookie is getting in your way.
Is there something in there that seems suspicious?
I found one "suspicious" thing.
On the request that are "empty" and additional request for "Loader.json" following the subdata request. The response from "subdata" is always the same (compared it via diff).
I think it has something todo with the way ZAC handles the request.
The empty requests take more than 100ms, which seems to initiate the Loader.json.
The requests which work are always under 100ms and don't trigger the Loader.json.
The first requests does not ever seem to trigger Loader.json, but if the request takes longer than 100ms the input fields are empty.
I cross checked this with the setup we use our company network and forced the requests via chrome throttling to take longer than 100ms -> All input fields in configurations are always empty.
The company ziti network never had this problem, but the productions servers are a lost faster and better connected than my private once.
Tested on 3.6.2 and 3.6.4.
@TheLumberjack could you check this on your end?
(1) Login to ZAC
(2) open dev tools / Network -> Enable thottling (I used "Fast 4G))
(3) click on a configuration
(4) Make sure the request took more than 100ms
(5) Test if the input fields are filled.
Update: don't know if it is exactly 100ms, still trying to narrow it down
Update2: I added a custom throttling with 120ms latency resulting in requests around 120-135ms in my cause -> This causes every request to have empty input fields
Interesting. It sounds like there may be some kind of race condition trying to render the form view of the config data. I'll try to reproduce with the added latency & throttling.
Also just FYI, the requests for Loader.json are for the animated loading indicator, used by the lottie animation plugin, so probably not related here.
I was able to reproduce the issue using the latency & throttling settings in the browser. I have a fix that I'm currently testing out. It should be included in the next patch release (hopefully tomorrow).