Re: Fwd: mkdir error message -- what does this mean?

From: Paul Procacci <pprocacci_at_gmail.com>
Date: Sat, 01 Oct 2022 06:38:09 UTC
On Fri, Sep 30, 2022 at 2:44 PM Andreas Kusalananda Kähäri <
andreas.kahari@abc.se> wrote:

> On Fri, Sep 30, 2022 at 02:35:14PM -0400, Aryeh Friedman wrote:
> > ---------- Forwarded message ---------
> > From: Dee Nixon <dnixon-fnwe@nyclocal.net>
> > Date: Fri, Sep 30, 2022 at 11:31 AM
> > Subject: mkdir error message -- what does this mean?
> > To: Aryeh Friedman <aryeh.friedman@gmail.com>
> >
> >
> >
> > What does the following mean?
> >
> >
> > dnixon@sft:/tmp % sudo mkdir
> > /fsvc/clients/specMed/LIVE/master/h11a9fpp-mkknhbci-2hjvbpc
> > mkdir: /fsvc/clients/specMed/LIVE/master/h11a9fpp-mkknhbci-2hjvbpc: Too
> > many links
> > dnixon@sft:/tmp %
> >
> > --
> >
> >
> > --
> > Aryeh M. Friedman, Lead Developer, http://www.PetiteCloud.org
>
>
> The error message usually says "Too many levels of symbolic links", so
> I'm assuming that you have translated it.
>
> It means that when creating the directory, a symbolic link was traversed
> that pointed back to itself, or in some other fasion created a loop.
>
> This can easily be recreated like this:
>
>         $ ln -s link .
>         $ ls -l
>         total 1
>         lrwxr-xr-x  1 myself  wheel  4 Sep 30 20:38 link -> link
>
> Then:
>
>         $ mkdir link/hello
>         mkdir: link/hello: Too many levels of symbolic links
>
> So, in your case, I would investigate whether any part of the target
> pathname "/fsvc/clients/specMed/LIVE/master/h11a9fpp-mkknhbci-2hjvbpc"
> is a symbolic link that points to somewhere where it shouldn't point.
>
> --
> Andreas (Kusalananda) Kähäri
> SciLifeLab, NBIS, ICM
> Uppsala University, Sweden
>
> .
>
>
This was obviously incorrect as it wasn't a translation.  The error
messages that the standard FreeBSD utilities produce USUALLY provide you
with a short message that errno points to.  It does this by way of "char
*strerror(int errnum)" (man 3 strerror).
All this says is, given an errno, provide me with an error string.

By taking that error string (or most of it) you can look up which errno was
triggered.  If this was indeed a symbolic link error the actual error
message would have been: "Too many levels of symbolic links" or errno
62/ELOOP.  (like you show'd)
Taking the exact error message and looking that up instead, you'll find
it's errno 31/EMLINK.

Early I provided this data and was asked by David how I found this
information. I feel obligated to share it again here so in future finding
maybe not the exact cause of the problem, but a more logical explanation
for a given error can be made quicker:

man errno

The above command not only provides the "short" version of which error
strings that utilities can produce, but also provides a slightly more
detailed explanation (in most cases) about what a given errno means.
It doesn't always nor can it provide you a definitive answer every single
time, but in some cases it absolutely can.

Anyways, just tying up loose ends.

Thanks,
Paul Procacci
-- 
__________________

:(){ :|:& };: