There's an assertion that's happening in garcon now sometimes where it's getting a negative port number for the gRPC VSOCK server. This is a new problem, and this kernel change is what triggered it:
https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/1404102/
The reason it's affecting gRPC is that in gRPC ports use a signed integer, but in the sockaddr_vm struct ports are an unsigned integer. The kernel patch above randomizes the auto assigned port numbers, and they will go into unsigned range sometimes...causing garcon to assert.
After some discussion, the solution I am going to pursue is having garcon do the port selection itself by attempting to bind until it finds one that is open. Modifying the kernel patch to keep the ports in the signed integer range is just dirty. Patching gRPC to use unsigned ports will be a large patch and require more maintenance there. Doing a workaround in garcon seems like the easiest solution that creates the least maintenance.
Comment 1 by bugdroid1@chromium.org
, Jan 19 (4 days ago)