Hi Chris, Although this is a known issue, still thanks for your report. Regardless of 1.7.7 or mainline, the issue really exists. Can you please check and verify the attached patch? PS: the patch is based on 1.7.7 rather than mainline. Thanks, Ying Chris Friesen wrote: > Hi, > > I'm seeing some behaviour that looks unintentional in the TIPC connect() call. > I'm running TIPC 1.7.7. My userspace code (stripped of error handling) looks > like this: > > int sd = socket (AF_TIPC, SOCK_SEQPACKET,0); > connect(sd,(struct sockaddr*)&topsrv,sizeof(topsrv)); > > where topsrv is the address of the TIPC topology server. The thing that's weird > is that intermittently we get a EISCONN error on the connect call. > > Looking at the TIPC connect() code, I think what is happening is that > wait_event_interruptible_timeout() is being interrupted by a signal and returns > -ERESTARTSYS. This sets sock->state to SS_DISCONNECTING and exits. Userspace > sees the ERESTARTSYS and retries the syscall, then we hit the > "sock->state != SS_UNCONNECTED" check and exit with -EISCONN. > > I think current mainline is susceptible to this as well. > > I'm not sure what the proper fix would be--can we detect coming back in that we were > waiting for a message and just skip down to the wait_event_interruptible_timeout() > call? > > Chris > > >