Thanks for reporting this problem.

On 21/07/2014 18:30, Matt D. wrote:
I found as a workaround to add the arguments "-nolisten tcp" when
invoking xinit. However, I was under the impression that it was
incompatible with -multiwindow and -clipboard, both of which seem to be
working fine:

https://cygwin.com/ml/cygwin-xfree/2009-05/msg00016.html

That restriction no longer exists.

https://cygwin.com/ml/cygwin-xfree/2009-10/msg00007.html

On 7/21/2014 12:00 PM, Matt D. wrote:
Ok.. so I let xinit do its thing to see if it got anywhere. Eventually
it will pop and error box. Interestingly, I specified a displayfd value
of "3" and yet both the popup and the log are reporting "5":

This is expected. xinit must know the display number of the X server it starts, so it can pass it on to any clients it starts, so it has a patch which should notice the -displayfd option, transparently use it to determine the display number for any clients they start, and then pass on the display number to the specified file descriptor

My XWin.0.log is about 15MB of repeated attempts to open a socket. Here
is a snippet. I hope this helps:

InitConnectionLimits: MaxClients = 255
Welcome to the XWin X Server
Vendor: The Cygwin/X Project
Release: 1.15.1.0
OS: CYGWIN_NT-5.1 matthew-17ffb52 1.7.30(0.272/5/3) 2014-05-23 10:36 i686
OS: Windows XP Service Pack 3 [Windows NT 5.1 build 2600] (Win32)
Snapshot: 20140709-git-2e9c13ea41c51df7

XWin was started with the following command line:

X -displayfd 5

ddxProcessArgument - Initializing default screens
winInitializeScreenDefaults - primary monitor w 1062 h 703
winInitializeScreenDefaults - native DPI x 96 y 96
ddxProcessArgument - arg: -displayfd
Trying to create socket for display number 0
_XSERVTransSocketOpenCOTSServer: Unable to open socket for inet6
_XSERVTransOpen: transport open failed for inet6/matthew-17ffb52:0
_XSERVTransMakeAllCOTSServerListeners: failed to open listener for inet6

..
Trying to create socket for display number 59534
_XSERVTransSocketOpenCOTSServer: Unable to open socket for inet6
_XSERVTransOpen: transport open failed for inet6/matthew-17ffb52:59534
_XSERVTransMakeAllCOTSServerListeners: failed to open listener for inet6
(EE) Fatal server error:
(EE) Failed to find a socket to listen on(EE)
[ 58128.390] (EE) Server terminated with error (1). Closing log file.

Ah. So, it seems that we have checked all ports from 6000 to 59534 + 6000 = 65534 and decided they are no good because we can't open an ipv6 socket.

(It looks like there is another minor bug here in that we don't try port 65535! :-))

I guess if you just run XWin, it reports that it can't create an inet6 listener, but it continues anyway (unless the -nopn option is used).

But, the implementation of -displayfd requires that creating all the listener socket succeeds. (It's not clear that this should be changed, otherwise we could reach the conclusion that it's ok to start a server on display n with a limited set of protocols, when a server already exists on display n with an non-intersecting set of protocols)

So, you may find that -nolisten inet6, rather than -nolisten tcp (which prevents both ipv4 and ipv6 listening) also works around the problem.

You might want to also investigate why inet6 sockets can't be opened.

--
Jon TURNEY
Volunteer Cygwin/X X Server maintainer

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

Reply via email to