[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: mkdir -p competition on the same directory?
From: |
Peng Yu |
Subject: |
Re: mkdir -p competition on the same directory? |
Date: |
Thu, 9 Feb 2023 10:28:16 -0600 |
OK.
I see the following output of `sudo dtruss mkdir -p d`. So
essentially, coreutils first calls system function mkdir to make the
directory. On error of the system call, it will check the target is a
directory. If the target is indeed a directory, then no error message
will be printed. Do I understand it correctly?
...
mkdir("d\0", 0x1FF, 0x0) = -1 Err#17
stat64("d\0", 0x7FFEE9953D20, 0x0) = 0 0
...
Therefore, when there is competition among many calls to coreutils
`mkdir -p`. The first instance will create the target, and the rest
instances will fail on the system call of mkdir. But since they find
the target is already created and is a directory, they will not
complain about the error system call mkdir. That is why I never see an
error similar to that of bash loadable `mkdir -p`. Is it so?
On 2/9/23, Pádraig Brady <P@draigbrady.com> wrote:
> On 09/02/2023 14:57, Peng Yu wrote:
>> https://lists.gnu.org/archive/html/help-bash/2023-02/msg00053.html
>>
>> Bash loadable `mkdir -p` has a problem when multiple loadable `mkdir
>> -p` is called on the same directory simultaneously.
>>
>> But I never see coreutils' `mkdir -p` has the same problem. Does
>> coreutils' `mkdir -p` do something extra to guard against the
>> competition on the same directory?
>
> `mkdir d; strace mkdir -p d` would be instructive,
> but yes coreutils mkdir essentially does:
>
> if mkdir(d) == EEXIST
> return stat(d) == S_ISDIR
>
> cheers,
> Pádraig
>
>
--
Regards,
Peng
- mkdir -p competition on the same directory?, Peng Yu, 2023/02/09
- Re: mkdir -p competition on the same directory?, Pádraig Brady, 2023/02/09
- Re: mkdir -p competition on the same directory?,
Peng Yu <=
- Re: mkdir -p competition on the same directory?, Pádraig Brady, 2023/02/09
- Re: mkdir -p competition on the same directory?, Rob Landley, 2023/02/09
- Re: mkdir -p competition on the same directory?, Chet Ramey, 2023/02/09
- Re: mkdir -p competition on the same directory?, Pádraig Brady, 2023/02/09
- Re: mkdir -p competition on the same directory?, Chet Ramey, 2023/02/13