On Mon, Jul 23, 2018 at 8:04 AM, Kamil Dudka <kdu...@redhat.com> wrote:
>
>
> I am pretty sure this is caused by stat() returning st_ino==0.  There is
> a (private) bug in Red Hat Bugzilla about find(1) crashing on the same
> assertion failure while traversing an Azure CIFS file system.  In that
> case it was confirmed by strace that stat() returning st_ino==0 is the
> actual cause of the crash.  However, I considered it to be rather a bug
> in the file system implementation, not in the find(1) utility.

I'd mostly agree.   The POSIX spec requires that the (st_ino, st_dev)
combination be unique:-

> The st_ino and st_dev fields taken together uniquely identify the file within 
> the system. The blkcnt_t, blksize_t, dev_t, ino_t, mode_t, nlink_t, uid_t, 
> gid_t, off_t, and time_t types shall be defined as described in 
> <sys/types.h>. The timespec structure may be defined as described in 
> <time.h>. Times shall be given in seconds since the Epoch.


Find (for example in the -samefile test) relies on this behaviour.
However, if only one file on the whole system has st_ino==0, this
uniqueness condition still holds.  So by itself, st_ino==0 may still
be standard-conforming.

James.

Reply via email to