Note: I'm not 100% sure if this is xhyve or not, but this about where my debugging abilities ended.
Problem: Nanoseconds given by linux stat command change continuously in what appears to be a pattern. The seconds never change, but the nanoseconds higher order bytes cycle from 0-9999. This results in daemons that watch for modify times to keep triggering.
Reproducing:
We're running minikube (part of Kubernetes) which uses the xhyve driver, it also mounts /Users into the VM. I can only get to tools by running a container on the minikube docker instance, but that should just use the system calls from the underlying host afaik.
So in an ubuntu image I wrote the following C script:
Note: I'm not 100% sure if this is xhyve or not, but this about where my debugging abilities ended.
Problem: Nanoseconds given by linux stat command change continuously in what appears to be a pattern. The seconds never change, but the nanoseconds higher order bytes cycle from 0-9999. This results in daemons that watch for modify times to keep triggering.
Reproducing: We're running minikube (part of Kubernetes) which uses the xhyve driver, it also mounts /Users into the VM. I can only get to tools by running a container on the minikube docker instance, but that should just use the system calls from the underlying host afaik.
So in an ubuntu image I wrote the following C script:
It looks at the init.py file and prints out the second and nanosecond part of the modification time.
The output is as follow:
Note how the lower order digits stay at 15037, and the higher order wraps around somewhere around 9999.
I don't know these systems particularly well, but perhaps something to do with one of the functions such as https://github.com/mist64/xhyve/blob/master/src/vmm/vmm_callout.c#L88?
Extra info:
repeated with stat command
Happy to add any more debugging to the issue