This is the mail archive of the cygwin-xfree mailing list for the Cygwin XFree86 project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: xinit hangs on XWin infinite loop when using -displayfd


Doh! I was so blind! Windows XP does not have an IPv6 protocol installed by default. I added it and the problem went away.

This sounds like a bug. XWin should verify whether a device which supports the target protocol exists before attempting to open a socket on it.

What is this used for? Sharing a local X session with someone else? Logging onto an existing X session at work from home? I've only ever used X locally or through ssh forwarding.


Matt D.

On 7/28/2014 8:34 AM, Jon TURNEY wrote:

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.


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]