Messages in this thread | | | From | Gabriel Krisman Bertazi <> | Subject | Re: [Lsf-pc] [LSF/MM/BPF TOPIC] tracing the source of errors | Date | Thu, 08 Feb 2024 15:39:09 -0500 |
| |
Jan Kara <jack@suse.cz> writes:
> On Wed 07-02-24 10:54:34, Miklos Szeredi via Lsf-pc wrote: >> [I'm not planning to attend LSF this year, but I thought this topic >> might be of interest to those who will.] >> >> The errno thing is really ancient and yet quite usable. But when >> trying to find out where a particular EINVAL is coming from, that's >> often mission impossible. >> >> Would it make sense to add infrastructure to allow tracing the source >> of errors? E.g. >> >> strace --errno-trace ls -l foo >> ... >> statx(AT_FDCWD, "foo", ...) = -1 ENOENT [fs/namei.c:1852] >> ... >> >> Don't know about others, but this issue comes up quite often for me. > > Yes, having this available would be really useful at times. Sometimes I > had to resort to kprobes or good old printks. > >> I would implement this with macros that record the place where a >> particular error has originated, and some way to query the last one >> (which wouldn't be 100% accurate, but good enough I guess). > > The problem always has been how to implement this functionality in a > transparent way so the code does not become a mess. So if you have some > idea, I'd say go for it :)
I had a proposal to provide the LoC of filesystem errors as part of an extended record of the FAN_FS_ERROR messages (fanotify interface). It might be a sensible interface to expose this information if not prohibitively expensive.
One might record the position with a macro and do the fsnotify_sb_error from a safer context.
-- Gabriel Krisman Bertazi
| |