Subject: Re: bug#6053: cp, ls, and mv bug: unknown error (252)

From: Pádraig Brady <[email-masked]>
Date: Tue, 08 Jun 2010 23:24:38 +0100

On 08/06/10 21:51, Jim Meyering wrote:
> Callahan, Patrick M. wrote:
>> Pádraig Brady wrote:
>>> Callahan, Patrick M. wrote:
>>>> When using coreutils binaries either built from sources or installed
>>>> from the Porting And Archive Centre for HP-UX we see errors of the type
>>>> below when copying (cp), listing (ls), or moving (mv) files or
>>>> directories on Quantum's StorNext file system (cvfs).  When we build
>>>> "--without-acl" we do not see these errors.
>>>>
>>>>> mv SEG_5_1* ~/release-input/dev-to-integration
>>>> mv: preserving permissions for
>>>> `/usr/people/archive/release-input/dev-to-integation/SEG_5_1.txt':
>>>> Unknown error (252)
> 
> Thanks for the details.
> Do you care about ACLs?
> If not, then building --without-acl should be fine.
> 
> If you do require that ACLs be preserved in general,
> then more work will be required.  The code in question is
> probably part of gnulib, in copy-acl.c.  There, we already
> ignore failure due to conditions that imply lack of support:
> 
>     if ((errno == ENOSYS || errno == EOPNOTSUPP)
>     ...
>     if ((errno == ENOSYS || errno == EINVAL || errno == ENOTSUP)
> 
> But that the errno value in question, 252, does not map
> to a strerror string is ominous.  Could it be that your version
> of HP-UX's C library is lacking patches that might provide that?
> 
> You could get in a debugger and determine where
> to add "|| errno == 252" to solve what appears to be
> an HP-UX-and/or-cvfs-specific problem.
> 
> However, such a change is not appropriate for others,
> and I doubt it will be worthwhile to attempt an
> upstream workaround.

Well a quick search says ENOTSUP is 252 on HPUX which is
different to EOPNOTSUPP. So perhaps we need to check
for both these errors in the if statements above.
I've mentioned before about amalgamating various errnos
when testing for "not supported", but it seems dubious
to not treat ENOTSUP and EOPNOTSUPP as synonymous at least.

strerror(252) = "unknown" on HPUX is strange

cheers,
Pádraig.