Subject: Re: Inode number and file size problems in version 3.2.1
From: Brian Inglis <[email-masked]>
To: [email-masked]
Date: Thu, 1 Jul 2021 11:14:52 -0600
List-Id: General Cygwin discussions and problem reports <cygwin.cygwin.com>

On 2021-07-01 06:15, Ruurd Beerstra via Cygwin wrote:
> I am a long-time user and fan of Cygwin.
> I use it in a complex build environment of my IVT SSH terminal emulator, 
> some 300.000 lines of C-code with lots of little shell-scripts to build 
> and check.
> I use flex/bison, ctags, make, gawk, grep and a bunch of other Cygwin 
> utilities.
> 
> I bought a new PC and decided to to a clean-install of Cygwin to make 
> sure I had the latest version of everything.

Your new PC probably has a newer version of Windows, possibly new MS 
software, and new AV or other utilities, which could be in BLODA: what 
are your old and new hardware types and Window editions/versions/etc?

You can check for BLODA by running cygcheck or ldd against programs with 
issues, e.g. cygcheck grep make sed cat sort uniq, and look for 
non-standard Windows and Cygwin DLLs whoch could indicate interference.

That also implies that you had not being keeping your environment up to 
date with setup -g?

> I ran into various problems, which after checking I found to be bugs in 
> Cygwin (a first for me). So I'm reporting them here.
> 
> The first problem I ran into was that multiple-pipe commands would hang. 
> A command like this in a CMD file:
> 
> grep -E "^RUNCMD=|^MAKE=" makefile | sed -e "s/RUNCMD=//" -e 
> "s/^MAKE=/set &/" > %TEMP%\extra.bat
> 
> would hang. So would stuff like "cat ... | sort | uniq" style commands 
> that I use a lot.
> I found a patch (cygwin1-20210426.dll) with an updated cygwin1.dll. That 
> fixed the hangs.
> 
> My 'uname -r' now reports 3.2.1s(0.340/5/3)
> 
> But then one of my scripts ran into a weird problem:
> 
> mv: 'allfcn.f.tmp' and 'allfcn.f' are the same file
> gmake: *** [../make.w32:438: allfcn.f] Error 1
> The inode numbers are the same!  Which is why it thinks the files are 
> the same. Using 'cmp' on them tells me they differ, though.
> So I insert an 'rm' command of the TMP file and that problem goes away 
> (though it didn't sit well with me that the file size is exactly 8KB for 
> both files, as reported by ls).

> Hmm: Same 8KB again? That file is supposed to be 0 bytes! Check with DIR:

> It IS zero bytes!  But Cygwin shows it as 8KB, which is why the "-s" 
> operator says the file is not empty.

> Hmm. Again, the EXACT same inode number as with the earlier problem, the 
> same 8KB size.
> I restored my original Cygwin setup from the old laptop (as 
> c:\Cygwin64.old) and use the commands from there on the same file:

> Note the wrong (changing) times when I use the current 'stat' (the first 
> output is not the same as the 2nd one), while the old version 
> consistently reports correct times, size and inode number. A quick test 
> shows that the 'ls' command (I assume caused by the underlying stat(2) 
> call) reports the same inode number for ALL files.
> It also reports either a size of "0" or 8192 for ALL files.
> 
> Am I missing some updated DLL?
> For now, I've gone back to the older version, which works fine.

Have you checked the new install /var/log/setup.log{,.full} to see if 
there were any anomalies, and rerun setup -g to fix any issues?

-- 
Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada

This email may be disturbing to some readers as it contains
too much technical detail. Reader discretion is advised.
[Data in binary units and prefixes, physical quantities in SI.]

-- 
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple