GNU bug report logs - #27739
Link counter of ls stops working at 65'000 hard links

Previous Next

Package: coreutils;

Reported by: Christoph Michelbach <michelbach94 <at> gmail.com>

Date: Mon, 17 Jul 2017 19:09:02 UTC

Severity: normal

Tags: notabug

Done: Eric Blake <eblake <at> redhat.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Christoph Michelbach <michelbach94 <at> gmail.com>
To: 27739 <at> debbugs.gnu.org
Subject: bug#27739: Link counter of ls stops working at 65'000 hard links
Date: Mon, 17 Jul 2017 20:58:42 +0200
The link counter of ls stops working if a directory exceeds being linked to
64'999 times.

You can replicate this by first creating a folder on an ext4 file system

    $ mkdir deleteMe

and then filling it with 64'997 additional directories.

    $ mkdir deleteMe/{1..64997}

At this point, ls still reports the correct number of hard links:

    $ ls -l
    total 1376
    drwxrwxr-x 64999 christoph christoph 1404928 Jul 17 20:46 deleteMe

But after creating another folder

    $ mkdir deleteMe/64998

, ll reports only 1 hard link to `deleteMe`:

    $ ls -l
    total 1376
    drwxrwxr-x 1 christoph christoph 1404928 Jul 17 20:46 deleteMe

Even after the latest hard link is removed, ls still reports only 1 hard link:

    $ rm -R deleteMe/64998
    $ ls -l
    total 1376
    drwxrwxr-x 1 christoph christoph 1404928 Jul 17 20:49 deleteMe

I neither understand why this happens, nor why it happens at such a weird
number. It would be obvious that there is a 16 bit counter running out of values
if it stopped working at at or after 65'535, but it stopping to work at 65'000
hard links seems weird.

I tested this on a 64 bit system running Linux 4.4.0-83 and on a 32 bit system
running Linux 4.1.18 with the exact same result.

-- 
Christoph Michelbach <michelbach94 <at> gmail.com>





This bug report was last modified 8 years and 23 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.