bug-coreutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#41001: mkdir: cannot create directory ‘test’: File exists


From: Jonny Grant
Subject: bug#41001: mkdir: cannot create directory ‘test’: File exists
Date: Sun, 3 May 2020 14:02:29 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0

Hi!

On 03/05/2020 00:13, Paul Eggert wrote:
On 5/2/20 3:41 PM, Jonny Grant wrote:
Is a more accurate strerror considered unreliable?

Current:
mkdir: cannot create directory ‘test’: File exists

Proposed:
mkdir: cannot create directory ‘test’: Is a directory

I don't understand this comment. As I understand it you're proposing a change to
the mkdir command not a change to the strerror library function, and the change
you're proposing would introduce a race condition to the mkdir command.

As the mkdir error returned to the shell is the same, I don't feel the difference between the words "File exists" and "Is a directory" on the terminal can be considered a race condition.


You're right, there will be a race condition where two processes are both creating and deleting the same files. Any software which is creating and deleting the same directories in parallel will encounter a multitude of errors - all bets are off.


A better fix would be to change the mkdir system call so that it sets errno to
EISDIR in this situation. This would fix not only the mkdir utility, but also
lots of other programs; and it wouldn't introduce a race condition. So if you're
interested in getting the problem fixed, I suggest that you propose such a
change to the Linux kernel developers.

Yes, if Linux kernel developers would deviate from POSIX. I emailed address@hidden the lines of code to change.

I'm not confident it will get in, even harder to get into POSIX I expect.

ext4_match() is what would need to be updated to check if an entry is a directory

https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/fs/ext4/namei.c


Cheers, Jonny





reply via email to

[Prev in Thread] Current Thread [Next in Thread]