otel-cli
otel-cli copied to clipboard
otel-cli --tp-carrier should flock() the file around writes
A frequent scripting trick is to forkbomb a bunch of things in parallel e.g. with xargs -P or plain old shell job control. When this happens, the child might want to do e.g. otel-cli exec --tp-carrier "$otel_carrier" curl -H "traceparent: $TRACEPARENT" https://my/api/v1/thing in the subprocesses. When this happens there is technically a race condition accessing the carrier file for read and write.
This probably isn't a big deal in practice because the file is so tiny, but we should do the right thing anyways.
https://github.com/gofrs/flock looks like a portable solution that probably won't blow up the dependency tree.