Hi Marco,
Below is the patch I developed to work around the problem report in
https://cygwin.com/pipermail/cygwin/2020-November/246830.html
I called the patch file 3.8.3-peercred-cygwin.patch.

I am unable to test the patch myself because of continuing problems building a new Python. I don't know if my issues are due to being on latest Cygwin code vs 3.1.7, or gcc 10.2 vs 9.3, or what. Could you tell me what your build environment is like? I'll try to duplicate it.

Test the patch by running a Python built with it on the example from the OP. Without the patch, the run would hang in the middle of the test script. With the patch, it should quickly complete with 4 unrelated errors mentioning MSG_OOB.
Thanks & Regards,

..mark

--- origsrc/Python-3.8.3/Modules/socketmodule.c 2020-05-13 
10:31:54.000000000-0700
+++ src/Python-3.8.3/Modules/socketmodule.c     2020-12-15 
21:00:15.373059900-0800
@@ -1030,6 +1030,14 @@ init_sockobject(PySocketSockObject *s,
             }
         }
     }
+#ifdef __CYGWIN__
+    /* Temporarily work around AF_UNIX credential passing issues */
+    if (s->sock_family == AF_UNIX && s->sock_fd != -1) {
+        if (setsockopt(s->sock_fd, SOL_SOCKET, SO_PEERCRED, 0, 0) == -1) {
+            return -1;
+        }
+    }
+#endif
     return 0;
 }

Reply via email to