[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: [PATCH] fix non interruptable hang in svn client when connecting

From: Malcolm Rowe <malcolm-svn-dev_at_farside.org.uk>
Date: 2005-08-25 21:59:26 CEST

On Thu, Aug 25, 2005 at 01:36:37PM -0400, Michael Sweet wrote:
> >It sounds as though you're saying that the Mac OS X (blocking) version of
> >connect() will hang the process and make it unkillable if you send it a
> >SIGINT while it's waiting for a connection to complete.
> >
> >That seems pretty weird to me - is that really what's happening? (although
> >I must admit that I don't understand how the process could block SIGKILL
> >anyway).
> A process can't block SIGKILL, however if the process is waiting on
> a system call, the SIGKILL will not be delivered until the process
> goes back to user space...

Yes, and it seems like that's exactly what happening.

Karl: it's far _far_ more serious than it first appears. Sending the svn
process a SIGINT actually hangs the _entire_ network stack, at least for
new connections. _Any_ process that subsequently attempts to connect()
hangs and enters an unkillable state.

The same behaviour is also exhibited with Yun's original testcase, though
I'm not convinced that that is necessarily representative, given that it's
connecting to the broadcast address.

I think the most sensible thing would be to apply Yun's patch, though we
should note that we haven't quite worked this one out yet.

Regards,
Malcolm

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Thu Aug 25 22:01:38 2005

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.