This is the mail archive of the cygwin mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: 5 seconds to update link info? (cause found)

Greetings, L A Walsh!

> Andrey Repin wrote:
>> When executed this oneliner over Samba 4.3 network share, it takes 5 seconds
>> to match the newly created hardlink.
>> I'm wondering if this is Cygwin, Samba or Windows networking issue?

> ====
> BTW -- found the cause of this:
>    Under:
> HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanWorkstation\Parameters

> There are 3 values to control cache lifetime.

> FileInfoCacheLifetime (default 10 seconds)
> FileNotFoundCacheLifetime (default 5 seconds)
> DirectoryCacheLifetime (default 10 seconds)

> The FileNotFoundCacheLifetime looks to be the culprit -- since
> when I traced the ethernet traffic with wireshark, I would see
> multiple responses of 'notfound' before it finally showed up.

> I reset my 5-second value to 3, and your script passed over
> its value in 3 seconds after that...

> You might have to reboot your machine to ensure the value gets
> propegated to the LANmanworkstation client.

> There are other ways, but none that reliable.

Thank you for this discovery. In the end, I've settled on a little wrapper.

waitlink() {
  set -e
  ln "$1" "$2"
  for i in . . . . . . . . . .; do
    [ "$1" -ef "$2" ] && break
    sleep 1

since the execution time of the script is not mission-critical, I decided to
not alter the system settings.

With best regards,
Andrey Repin
Monday, May 29, 2017 22:23:30

Sorry for my terrible english...

Problem reports:
Unsubscribe info:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]