> Cyril VELTER wrote:
> >> Cyril VELTER wrote:
> >>>   No I'm not. It's not even complied in the server nor in the pg_dump 
> > binary.
> >>>   The server is built on windows using MSYS simply with ./configure && 
make 
> > all 
> >>> && make install
> >>>   
> >>>
> >>>   I've been able to reproduce the problem 6 times (at random points in 
> >>> the 

> >>> process, but it never complete successfully). Is there any test I can do 
to 
> > 
> >>> help investigate the problem ?
> >> Sorry I haven't gotten back to you for a while.
> >>
> >> Yeah, if you can attach a debugger to the backend (assuming you have a
> >> predictable backend it happens to - but if you're loading, you are using
> >> a single session, I assume?), add a breakpoint around the area of the
> >> problem, and get a backtrace from exactly where it shows up, that would
> >> help.
> > 
> > 
> >     Thanks for your reply. I'll try to do this. I've installed gdb on the 
> > problematic machine and recompiled postgres with debug symbols (configure 
> > --enable-debug)
> > 
> >     I'm not very familiar with gdb. Could you give some direction on 
> > setting 
the 
> > breakpoint. After running gdb on the postgres.exe file, I'm not able to set 
the 
> > breakpoint (b socket.c:574 give me an error).
> 
> Hmm, I keep forgetting that. There is some serious black magic required
> to get gdb to even approach working state on win32. I'm too used to
> working with the msvc build now. I've never actually got it working
> myself, but I know others have. Hopefully someone can speak up here? :-)
> 

        I don't have msvc available.

> 
> >     Searching the source files, it seems the error message is generated in 
> > port/win32/socket.c line 594.
> 
> Right, but the important thing is which path down to that function is it
> generated in. Which is why a backtrace would help.

        Yes, I understand that.

> 
> Looking at the code, the problem is probably somewhere in
> pgwin32_recv(). Now, it really shouldn't end up doing what you're
> seeing, but obviously it is.


        After looking at the code of pgwin32_recv(), I don't understand why 
pgwin32_waitforsinglesocket() is called with the FD_ACCEPT argument. 

> 
> Perhaps we just need to have it retry if it gets the WSAEWOULDBLOCK?
> Thoughts?

        I've modified pgwin32_recv() to do that (repeat the 
pgwin32_waitforsinglesocket() / WSARecv while the error is WSAEWOULDBLOCK and 
not raising this error. I've an upgrade running right now (I will have the 
result in the next hours).


        cyril


---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
       subscribe-nomail command to [EMAIL PROTECTED] so that your
       message can get through to the mailing list cleanly

Reply via email to