delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2020/09/24/08:04:32

X-Recipient: archive-cygwin AT delorie DOT com
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 82B3F386F83F
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com;
s=default; t=1600949020;
bh=AeeQoyjXYHwY/s3Tn/xXmR/UxGHaZvzEwRSKJhp1a1s=;
h=Subject:To:References:Date:In-Reply-To:List-Id:List-Unsubscribe:
List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:
From;
b=ESps4trOPqgDbf9GC/6ZxXxTV4uluDWcPyP/RatHg/igaTrDrunF1seraJeyAXm5K
3YQtGbAV5YqUW2vwF4fzcg28x8FhyiKEBEbgBYwcaJ8gO+Cln+M3IXUPniR8PPWzpP
kFsPKNgkQl9nf/7daLlXZ0Fbui4iaHBCK+wj69e0=
X-Original-To: cygwin AT cygwin DOT com
Delivered-To: cygwin AT cygwin DOT com
DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 0EBA83857C65
Subject: Re: Problems with native Unix domain sockets on Win 10/2019
To: Ken Brown <kbrown AT cornell DOT edu>, cygwin AT cygwin DOT com
References: <2b0aeab4-983d-e1d7-301f-edfeeb38cc85 AT oracle DOT com>
<db0f2634-328c-baaa-1cdb-5bd3c145c9e0 AT cornell DOT edu>
Message-ID: <bb34a767-0cb5-1d48-7f9b-ad914762f9f7@oracle.com>
Date: Thu, 24 Sep 2020 13:01:25 +0100
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:68.0)
Gecko/20100101 Thunderbird/68.12.0
MIME-Version: 1.0
In-Reply-To: <db0f2634-328c-baaa-1cdb-5bd3c145c9e0@cornell.edu>
X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9753
signatures=668680
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0
mlxscore=0 adultscore=0
bulkscore=0 mlxlogscore=999 phishscore=0 suspectscore=0 spamscore=0
classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2006250000
definitions=main-2009240094
X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9753
signatures=668680
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0
mlxlogscore=999
adultscore=0 bulkscore=0 mlxscore=0 lowpriorityscore=0 priorityscore=1501
phishscore=0 spamscore=0 malwarescore=0 clxscore=1011 impostorscore=0
classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2006250000
definitions=main-2009240095
X-Spam-Status: No, score=-3.0 required=5.0 tests=BAYES_00, BODY_8BITS,
DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF,
NICE_REPLY_A, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL,
SPF_HELO_PASS, SPF_PASS, TXREP,
UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.2
X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on
server2.sourceware.org
X-BeenThere: cygwin AT cygwin DOT com
X-Mailman-Version: 2.1.29
List-Id: General Cygwin discussions and problem reports <cygwin.cygwin.com>
List-Unsubscribe: <https://cygwin.com/mailman/options/cygwin>,
<mailto:cygwin-request AT cygwin DOT com?subject=unsubscribe>
List-Archive: <https://cygwin.com/pipermail/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-request AT cygwin DOT com?subject=help>
List-Subscribe: <https://cygwin.com/mailman/listinfo/cygwin>,
<mailto:cygwin-request AT cygwin DOT com?subject=subscribe>
From: Michael McMahon via Cygwin <cygwin AT cygwin DOT com>
Reply-To: Michael McMahon <michael DOT x DOT mcmahon AT oracle DOT com>
Errors-To: cygwin-bounces AT cygwin DOT com
Sender: "Cygwin" <cygwin-bounces AT cygwin DOT com>
X-MIME-Autoconverted: from quoted-printable to 8bit by delorie.com id 08OC477L008948


On 24/09/2020 12:26, Ken Brown wrote:
> On 9/23/2020 7:25 AM, Michael McMahon via Cygwin wrote:
>> Hi,
>>
>> I searched for related issues but haven't found anything.
>>
>> I am having some trouble with Windows native Unix domain sockets
>> (a recent feature in Windows 10 and 2019 server) and Cygwin.
>> I think I possibly know the cause since I had to investigate a similar
>> looking issue on another platform built on Windows.
>>
>> The problem is that cygwin commands don't seem to recognise native Unix
>> domain sockets correctly. For example, the socket "foo.sock" should
>> have the same ownership and similar permissions to other files
>> in the example below:
>>
>> $ ls -lrt
>> total 2181303
>>
>> -rw-r--r--  1 mimcmah      None             1259   Sep 23 10:22 test.c
>> -rwxr-xr-x  1 mimcmah      None             3680   Sep 23 10:22 test.obj
>> -rwxr-xr-x  1 mimcmah      None             121344 Sep 23 10:22 test.exe
>> -rw-r-----  1 Unknown+User Unknown+Group         0 Sep 23 10:23 foo.sock
>> -rw-r--r--  1 mimcmah      None             144356 Sep 23 10:27 check.ot
>>
>> A bigger problem is that foo.sock can't be deleted with the cygwin "rm"
>> command.
>>
>> $ rm -f foo.sock
>> rm: cannot remove 'foo.sock': Permission denied
>>
>> $ chmod 777 foo.sock
>> chmod: changing permissions of 'foo.sock': Permission denied
>>
>> $ cmd /c del foo.sock
>>
>> But, native Windows commands are okay, as the third example shows.
>>
>> I think the problem may relate to the way native Unix domain sockets are
>> implemented in Windows and the resulting special handling required.
>> They are implemented as NTFS reparse points and when opening them
>> with CreateFile, you need to specify the FILE_FLAG_OPEN_REPARSE_POINT
>> flag. Otherwise, you get an ERROR_CANT_ACCESS_FILE. There are other
>> complications unfortunately, which I'd be happy to discuss further.
>>
>> But, to reproduce it, you can compile the attached code snippet
>> which creates foo.sock in the current directory. Obviously, this
>> only works on recent versions of Windows 10 and 2019 server.
> 
> Cygwin doesn't currently support native Windows AF_UNIX sockets, as 
> you've discovered.  See
> 
>    
> https://urldefense.com/v3/__https://cygwin.com/pipermail/cygwin/2020-June/245088.html__;!!GqivPVa7Brio!P7lIFI4rYAtWh8_DtCbRCxT-M_E4vwQ0qwzQ0p656T73BpJ0jbUkLI_bXdA6mmSL9lJcSQ$ 
> 
> for the current state of AF_UNIX sockets on Cygwin, including the 
> possibility of using native Windows AF_UNIX sockets on systems that 
> support them.
> 
> If all you want is for Cygwin to recognize such sockets and allow you to 
> apply rm, chmod, etc., I don't think it would be hard to add that 
> capability.  But I doubt if that's all you want.
> 
> Further discussion of this will have to wait until Corinna is available.
> 

Thanks for the info. It's mainly about recognition of sockets for
regular commands. Since these objects can exist on Windows filesystems
now, potentially created by any kind of Windows application,
it would be great if Cygwin could handle them, irrespective of whether
the Cygwin development environment does. Though that sounds like a
good idea too.

- Michael
--
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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019