tmux failed and got the message: failed to connect to server: No error
Corinna Vinschen
corinna-cygwin@cygwin.com
Mon Jun 16 13:11:00 GMT 2014
On Jun 2 11:27, Robert Pendell wrote:
> On Mon, Jun 2, 2014 at 4:37 AM, Michael Wild <> wrote:
> > Hi Guan-Zhong
> >
> > The problem is known upstream [1, 2] and I'm also trying to figure out
> > which change in the cygwin DLL triggered this issue. I'll post here
> > again once I know more.
> >
> > Michael
> >
> > [1] http://sourceforge.net/p/tmux/mailman/message/32396655/
> > [2] http://sourceforge.net/p/tmux/mailman/message/32400834/
> >
> > On Sat, May 31, 2014 at 5:29 PM, Guan-Zhong Huang wrote:
> >> cygwin-1.7.29-2 is ok.
> >> After updating to cygwin-1.7.30-1, I can't start tmux.
> >>
> >> I find it is because when tmux tries to connect to the unix domain
> >> socket that tmux server listens and tmux server hasn't started yet,
> >> connect() fails but errno is 0, not "Connection Refused (111)". This
> >> causes tmux to exit with error.
> >>
> >> If you want to reproduce this bug.
> >> tmux might work at the first time because the unix domain socket is not created.
> >> But after that, tmux will fail due to incorrect errno.
> >>
> >> Here's the strace I got:
> >> cygwin-1.7.30-1:
> >> 96 1063224 [main] tmux 4072 cygwin_connect: -1 = connect(5,
> >> 0x229780, 24), errno 0
> >> cygwin-1.7.29-2:
> >> 92 1054064 [main] tmux 3548 cygwin_connect: -1 = connect(5,
> >> 0x229780, 24), errno 111
> >>
> >>
> >> Best regads,
> >> Guan-Zhong
>
> I took a look and ran through some snapshots. I remembered a
> discussion last month regarding the propogation of socket errors to
> dup'd sockets. It seems the patch (or something commited at the same
> time) broke this as on the 4/18 snapshot all works well and it breaks
> on the 4/24 snapshot which is the same one that got that last bit
> patched. I do not know if the patch was ever tested as the OP of that
> thread never responded from what I can tell.
Yes, indeed. The patch was supposed to fix the problem with the
SOL_SOCKET/SO_ERROR valus not being set when calling select on a
duplicated socket.
I just gave it a try and it turned out that the Winsock call setsockopt
sets the last WSA error code to 0 in case of success (grrr!), which I
didn't notice when applying the original patch, sorry.
I applied a patch to CVS which should fix the issue by simply calling
WSASetLastError after calling setsockopt. The original SO_ERROR
testcase still works for me, and a faild connect attempt now returns an
ECONNREFUSED as expected.
I'll generate a new snapshot later today.
Thanks,
Corinna
--
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Maintainer cygwin AT cygwin DOT com
Red Hat
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://cygwin.com/pipermail/cygwin/attachments/20140616/9479ad4b/attachment.sig>
More information about the Cygwin
mailing list