public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
From: Brian Ford <ford@vss.fsi.com>
To: cygwin@cygwin.com
Subject: Re: 1.5.9-1: socket() appears NOT to be thread-safe
Date: Thu, 10 Jun 2004 15:21:00 -0000	[thread overview]
Message-ID: <Pine.CYG.4.58.0406091547450.4904@fordpc.vss.fsi.com> (raw)
In-Reply-To: <20040522005123.GB14563@coe.bosbc.com>

On Fri, 21 May 2004, Christopher Faylor wrote:

> On Fri, May 21, 2004 at 05:21:19PM -0500, Brian Ford wrote:
> >On Thu, 15 Apr 2004, Christopher Faylor wrote:
> >>Corinna showed me that this was a problem in my autoload code rather
> >>than a problem with winsock.  That's comforting.  I guess I've grown
> >>too quick to judge Windows.
> >>
> >>I've checked in a fix and am regenerating a snapshot.  The fix
> >>consisted of deleting a few lines of code so that's always nice...
> >>
> >>Thanks for the test case.  It helped a lot in tracking this problem
> >>down.
> >
> >I still see the same symptom (ie.  socket randomly returns "Operation
> >not permitted" at application startup) with current CVS, but not with
> >the original test case, and only on a dual CPU box :-(.

I'm now seeing it on some Hyperthreaded boxes too.  It is still a problem
in current CVS.

> It's not usually helpful to see a "it doesn't work" a month after the
> announcement of a fix.  Call me absent minded but I don't even remember
> what I did to supposedly fix this.

I know, but I was unable to get time on the particular box that exhibts
the problem with the particular software scenerio that does the same in a
timely fashion.  Sorry.

> >About 30% of the time, socket returns the error above.  I tried
> >replacing the exec line in the shell script with:
> >
> >exec strace -o tracefile -b 1000000 socket_error.exe
> >
> >but then it doesn't fail.  It also doesn't fail if socket_error.exe is
> >launched directly from the bash prompt.
> >
> >I will keep trying to come up with a test case that I can actually study,
> >but I was hoping someone might have an idea about how to catch it better
> >or where to look.
>
> Put a call to the debugger at the offending error message and look around.

Ok, I found out a tiny bit more.

I put a call to try_to_debug in find_winsock_errno when it returned the
default EPERM.  Then, by setting
CYGWIN="error_start=c:\cygwin\bin\gdb.exe" I can get a gdb pop up and do a
back trace.  The error was:

10093
Either the application has not called WSAStartup, or WSAStartup failed.

and came from the socket call in cygwin_socket.

> >Is it possible that the autoload code needs to be made dual CPU safe?
>
> No.

So, given this is some sort of race condition, how do I debug the autoload
code and find out if WSAStartup was actually called or if it failed?

I'm still digging, but very slowly given the nature of the problem and my
time to debug it.

-- 
Brian Ford
Senior Realtime Software Engineer
VITAL - Visual Simulation Systems
FlightSafety International
the best safety device in any aircraft is a well-trained pilot...

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

  reply	other threads:[~2004-06-10 15:16 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-04-14 10:43 Enzo Michelangeli
2004-04-14 13:22 ` Corinna Vinschen
2004-04-14 17:06 ` Brian Ford
2004-04-15  3:17   ` Enzo Michelangeli
2004-04-15  4:14     ` Christopher Faylor
2004-04-15 17:41       ` Christopher Faylor
2004-05-22 16:59         ` Brian Ford
2004-05-22 19:08           ` Christopher Faylor
2004-06-10 15:21             ` Brian Ford [this message]
2004-06-10 17:37               ` Brian Ford
2004-04-15  4:04 Enzo Michelangeli

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Pine.CYG.4.58.0406091547450.4904@fordpc.vss.fsi.com \
    --to=ford@vss.fsi.com \
    --cc=cygwin@cygwin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).