Subject: ls exit status on removed directory

From: "Philip Rowlands" <[email-masked]>
Date: Sat, 19 Sep 2020 00:15:33 +0100

Steps to reproduce:

$ mkdir /tmp/abc
$ cd /tmp/abc
$ rmdir /tmp/abc
$ ls

What happened:
no output, successful exit status

What was expected:
no output, unsuccessful exit status

ls tried to list the contents of . but failed to do so, at least on Linux:
open(".", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
getdents(3, 0x55e10c419cf0, 32768)      = -1 ENOENT (No such file or directory)

Although "stat ." and "ls -ld ." still work on the removed directory, should "ls ." report success even though the getdents syscall fails?