From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from m0.truegem.net (m0.truegem.net [69.55.228.47]) by sourceware.org (Postfix) with ESMTPS id 85798385840E for ; Tue, 8 Nov 2022 06:51:18 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 85798385840E Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=maxrnd.com Authentication-Results: sourceware.org; spf=none smtp.mailfrom=maxrnd.com Received: (from daemon@localhost) by m0.truegem.net (8.12.11/8.12.11) id 2A86pBD8050927 for ; Mon, 7 Nov 2022 22:51:11 -0800 (PST) (envelope-from mark@maxrnd.com) Received: from 162-235-43-67.lightspeed.irvnca.sbcglobal.net(162.235.43.67), claiming to be "[192.168.1.100]" via SMTP by m0.truegem.net, id smtpdT2RcUp; Mon Nov 7 22:51:01 2022 Subject: Re: Python regression related to unix sockets From: Mark Geisert To: Cygwin Mailing List References: Message-ID: Date: Mon, 7 Nov 2022 22:51:01 -0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0 SeaMonkey/2.49.4 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,KAM_DMARC_STATUS,KAM_LAZY_DOMAIN_SECURITY,NICE_REPLY_A,SPF_HELO_NONE,SPF_NONE,TXREP autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: Following up to myself... Mark Geisert wrote: > Hi Fabian, > > Fabian Henze wrote: >> Hi all, >> >> This is a follow-up on a mail thread from February 2021. >> >> Mark Geisert via Cygwin wrote: >>> Fabian Henze via Cygwin wrote: >>>> Hi Cygwin users, >>>> I noticed a regression in the recent Python packages: Between version >>>> 3.6.10-1 and 3.6.12-2, accessing the SSH agent via the paramiko python >>>> package broke. When a ssh agent is used, paramiko tries to connect to >>>> it via the unix socket and just freezes. Python 3.8 is also affected, >>>> but I don't know which was the last working one. >>>> I was able to pinpoint that error to 3.6.12-socketmodule.patch [1]. >>>> Reverting/removing the patch fixes the ssh agent access. [...] >>>> Can you please check if you are able to reproduce that? I uploaded a >>>> script [3] for that. >>>> >>>> Best regards, >>>> Fabian Henze >>> >>> Thanks for the report and sorry you've run into this.  The patch is a >>> workaround that's evidently too draconian.  I will debug the situation using >>> your testcase. >>> Thank you very much for the testcase. >> >> Did you (or anyone else) make any progress on this that you can share? >> Unfortunately the issue still persists in all current python versions. >> If no one has time to debug and fix this, would it be an option to remove the >> 3.6.12-socketmodule.patch that is causing the regression since it only fixes a >> theoretical problem in unit tests, but causes real-world issues? Maybe the >> upcoming (?) Python 3.10 or 3.11 bump would be a good candidate to do so? [...] > Let me find my notes for this issue and see if I can improve on the patch or find > some other solution for now-current versions of Python and/or Cygwin DLL. Right. I determined there was nothing further I could do. The conclusion I stated in the thread you quoted from was this (and it still applies): --------8<-------- It's a limitation of the patch. It was meant to allow Python programs on the same computer to communicate via AF_UNIX sockets, by working around less than perfect support in the Cygwin DLL. But you've got a Python program trying to communicate with a non-Python program, and that fails because the patch is only applied on the Python end of the connection. If you can continue to run without the problematic patch, that's your best option. -------->8-------- BTW, what you called "a theoretical problem in unit tests" was of great concern to the Cygwin Python maintainer at the time. We test our Python builds before releasing them. The best "solution" I can think of ATM, and it's not great, is to have the behavior you want be the default and an environment variable such as PYTHON_NET_DISABLE_CREDENTIALS to choose the other behavior. I will consult the Cygwin Python maintainer to see if this is acceptable. ..mark