Odd hang of cc1.exe *now isolated to /tmp weirdness* cpp/gcc

Shaddy Baddah lithium-cygwin@shaddybaddah.name
Thu May 7 03:44:12 GMT 2020


Hi Doug,

On 7/5/20 11:19 am, Doug Henderson via Cygwin wrote:
> <snip> 
> I think this is the essence of your problem. It looks like you are mapping
> you temporary directory outside the cygwin directory tree, Not sure how you
> are doing it. For me, I have TMP=/tmp and TEMP=/tmp in my cygwin
> environment. In my windows environment, i.e, when running cmd.exe, TEMP and
> TMP point to C:\Users\Doug\AppData\Local\Temp.
> 
> I expect you will find that the windows permissions for your temp directory
> is different from the default /tmp.
> 
> Check this using lsacl (A bash script found somewhere in this mailing
> list.) Or the file properties from windows explorer.
> 
> In my case:
> 
> $ ls -ld /tmp
> drwxrwxrwt+ 1 Admin None 0 May  6 18:51 /tmp/
> 
> $ ls -ld $(cygpath -u 'C:\Users\Doug\AppData\Local\Temp' )
> drwxrwx---+ 1 Doug SYSTEM 0 May  6 18:50
> /cygdrive/c/Users/Doug/AppData/Local/Temp/
> 
> $ lsacl /tmp
> [u::rwx,g::rwx,o::rwx/u::rwx,g::r-x,o::r-x] /tmp
> 
> $ lsacl $(cygpath -u 'C:\Users\Doug\AppData\Local\Temp' )
> [u::rwx,g::rwx,g:Administrators:rwx,m::rwx,o::---/u::rwx,g::rwx,g:SYSTEM:rwx,g:Administrators:rwx,m::rwx,o::---]
> /cygdrive/c/Users/Doug/AppData/Local/Temp
> 
> I suggest you change your temporary directory to ./tmp, or align the
> permissions.

Thanks. Yes, I am mapping my directory outside the cygwin directory
tree, via /etc/fstab.

I will certainly check the perms and see if they make a
difference. However, you must admit, it is weird that running as.exe
with path /usr/bin/as.exe does not break like running the same exe
with path /usr/x86_64-pc-cygwin/bin/as.exe, out of the same /tmp
directory, is inexplicable.

And even if perms are involved, it's quite unexpected that spawning a
Cygwin executable would behave in a very undesirable way. Whilst I am
able to recover the situation with ctrl-d or ctrl-c in a console
window (command prompt or ConEmu), under mintty, I get a total lock
up if I try ctrl-d or ctrl-c. I can only recover my mintty session by
avoiding ctrl-d/c and selectively killing processes via taskmgr (I
think child of bash first, then the hung /usr/x86_64-pc-cygwin/bin/
process).

I'll accept that my experience must be accounted for as an extreme
corner case. But I feel satsified that I have documented it here, in
case some silent observers have been experiencing like issues, and not
reporting them. On the face of it, those users might have thought it
was a problem with mintty, which I don't believe it is.

And I want to clarify, I don't think Cygwin's DLL code is at fault at
all. If my understanding is correct, there are all sorts of code
segments in the DLL where an adjustment has to be made because a
Windows API function does not behave consistently, or as per its
documentation. I suspect this is an unidentified equivalent.

-- 
Regards,
Shaddy


More information about the Cygwin mailing list