[PATCH 6/7] trace: disable key after write error
- From
Jeff King <peff@peff.net>
- Date
- Aug 3, 2016, 23:01 UTC
- Message-ID
- <20160803230103.daexq233ufrttnmn@sigill.intra.peff.net>
- In-Reply-To
- <20160803225600.fgm23bdacunmrw44@sigill.intra.peff.net>
If we get a write error writing to a trace descriptor, the error isn't likely to go away if we keep writing. Instead, you'll just get the same error over and over. E.g., try:
GIT_TRACE_PACKET=42 git ls-remote >/dev/null
You don't really need to see:
warning: unable to write trace for GIT_TRACE_PACKET: Bad file descriptor
hundreds of times. We could fallback to tracing to stderr, as we do in the error code-path for open(), but there's not much point. If the user fed us a bogus descriptor, they're probably better off fixing their invocation. And if they didn't, and we saw a transient error (e.g., ENOSPC writing to a file), it probably doesn't help anybody to have half of the trace in a file, and half on stderr.
Signed-off-by: Jeff King <peff@peff.net> --- trace.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/trace.c b/trace.c index 4efb256..083eb98 100644 --- a/trace.c +++ b/trace.c @@ -134,6 +134,7 @@ static void trace_write(struct trace_key *key, const void *buf, unsigned len) normalize_trace_key(&key); warning("unable to write trace for %s: %s", key->key, strerror(errno)); + trace_disable(key); } }
-- 2.9.2.670.g42e63de