Sunjay Bhatia
Sunjay Bhatia
another smaller example here with added logs in `SetSnapshot` ``` 2022/03/30 17:16:47 update snapshot v4 respond open watch 22 type.googleapis.com/envoy.config.route.v3.ScopedRouteConfiguration[] with new version "v4" respond open watch 27 type.googleapis.com/envoy.config.route.v3.RouteConfiguration[route-v3-9003 route-v3-9002...
yeah using some structured logging tagging/contexts etc. might be nice to have when debugging
was a bit lazy and just put some printfs before the where the request/response callbacks are, adding properly w/ the callback logging (and adding a real logger to the test...
heres a branch I am using for debugging, running the tests w/ docker `make docker_tests` locally: https://github.com/sunjayBhatia/go-control-plane/tree/debugging-ordered-ads
heres an example where it looks like `SRDS` responds before `LDS` ``` 2022/03/30 18:44:45 upstream listening HTTP/1.1 on 18080 2022/03/30 18:44:45 enabling ordered ADS mode... 2022/03/30 18:44:45 waiting for the...
hm, i've increased the number of snapshots generated but I've never seen the tests actually fully fail or that crash, guess I'll have to run it a few more times
run it a good few times and can't repro the previous out of order errors
could we maybe trade off the sorting complexity by saving watches indexed by type url first, then watch id, or if we can in the simple cache just save 1...
> Is there any other way we can approach a fix for the deadlock in linear cache without adding goroutines? currently every resource update causes a response to be sent...
also would be nice to have a test that demonstrates this issue, with the new refactor as well, having a harder time piecing together the sequence of events, honestly havent...