> I'm still searching for the cause of my problem. It keeps happening at
> intervals of a few hours, but very hard to reproduce at our office.

I already seen some security product which intercepted winsock calls
producing some strange results. Check on the installation where to have the
issue and disable any such product - for testing only.

You may also have a look at installed "LSP". Windows Defender show those
LSP.
If not written correctly, they could produce strange results like the one
you have.
--
[EMAIL PROTECTED]
Author of ICS (Internet Component Suite, freeware)
Author of MidWare (Multi-tier framework, freeware)
http://www.overbyte.be

----- Original Message ----- 
From: "Merijn Bosma" <[EMAIL PROTECTED]>
To: "ICS support mailing" <twsocket@elists.org>
Sent: Wednesday, April 23, 2008 5:01 PM
Subject: Re: [twsocket] 100% cpu; continues calls to OnDataAvailable while
no data was received - it gets more vague


> I'm still searching for the cause of my problem. It keeps happening at
> intervals of a few hours, but very hard to reproduce at our office.
>
> Looking at the call stack when in 'error state', it seems that winsock
> just keeps pushing FD_READ messages while there is actually no data to
> receive.
> I've found someone who had with approx the same problem:
> http://www.gamedev.net/community/forums/topic.asp?topic_id=402571
> Unfortunately there is no solution in that thread.
>
> What is also really strange, is that at the moment I get the first
> OnDataAvailable event of the loop, fLastError is always set to 10053;
> this is strange,
> since in TCustomWSocket.ASyncReceive, where the event is triggered,
> fLastError is set to 0 before the first event is triggered.
>
> This always seems to happen when a client got disconnected (or timed
> out), sometimes it seems to be triggered by trying to send data, but
> sometimes I just get infinite FD_READ messages.
>
> Can someone please shed some light? It's driving me crazy. Is there any
> way to detect why the event is being called at runtime, maybe I can get
> more information that way.
>
> I also found a compiler define called TOMASEK in
> TCustomWSocket.TriggerDataAvailable. The comments with it describe
> approx what is happening to me:
>     { Do not allow FD_READ messages, this will prevent reentering the }
>     { OnDataAvailable event handler.                                  }
>
> But I don't know what will happen if I use this piece of code; it seems
> to be very old.
>
> Hoping to hear something soon!
>
> regards,
>
> Merijn
>
>
> Merijn Bosma wrote:
> > I've removed the parsing and processing of data from the
OnDataAvailable.
> > The event handler now basically contains ReceiveStr() and PostMessage().
> >
> > I'm still having the same problem though :(
> > It seems that this problem is not triggered by doing something wrong
> > in the OnDataAvailable event handler, but somewhere else.
> > I'm starting to think it's something in the sending of data since that
> > keeps coming back in the callstack (see attached callstack).
> >
> > Hoping someone can give me a hint.
> >
> > Merijn
> > ------------------------------------------------------------------------
> >
> >
|---------------------------------------------------------------------------
-----------------------------------------------|
> > |7C810E31|kernel32.dll|                             |
|WriteFile                       |         |
> > |7C90D590|ntdll.dll   |                             |
|NtClose                         |         |
> > |7C809BA5|kernel32.dll|                             |
|CloseHandle                     |         |
> > |7C809B67|kernel32.dll|                             |
|CloseHandle                     |         |
> > |006BF6B2|AviaVox.exe |ServerTimedSocket.pas        |TServerTimedSocket
|_Log                            |301[17]  |
> > |71AA150A|WS2HELP.dll |                             |
|WahReferenceContextByHandle     |         |
> > |71AB4376|WS2_32.dll  |                             |
|WSARecv                         |         |
> > |71AB437D|WS2_32.dll  |                             |
|WSARecv                         |         |
> > |71AB4318|WS2_32.dll  |                             |
|WSARecv                         |         |
> > |71AD2E9E|wsock32.dll |                             |
|recv                            |         |
> > |005C569F|AviaVox.exe |WSocket.pas                  |
|WSocket_Synchronized_recv       |2277[3]  |
> > |005C6B00|AviaVox.exe |WSocket.pas                  |TCustomWSocket
|DoRecv                          |3825[0]  |
> > |005CC772|AviaVox.exe |WSocket.pas                  |TCustomSocksWSocket
|DoRecv                          |6759[2]  |
> > |0055F9C4|AviaVox.exe |PostPone.pas                 |TPostPone
|PostPone                        |80[1]    |
> > |006BF84E|AviaVox.exe |ServerTimedSocket.pas        |TServerTimedSocket
|OnDataAvailable                 |333[20]  |
> > |71AB44E5|WS2_32.dll  |                             |
|WSAIoctl                        |         |
> > |71AB4489|WS2_32.dll  |                             |
|WSAIoctl                        |         |
> > |71AB4536|WS2_32.dll  |                             |
|ioctlsocket                     |         |
> > |005C5398|AviaVox.exe |WSocket.pas                  |
|WSocket_Synchronized_ioctlsocket|2136[3]  |
> > |005C5374|AviaVox.exe |WSocket.pas                  |
|WSocket_Synchronized_ioctlsocket|2133[0]  |
> > |005C7229|AviaVox.exe |WSocket.pas                  |TCustomWSocket
|ASyncReceive                    |4226[28] |
> > |7C80A424|kernel32.dll|                             |
|CompareStringW                  |         |
> > |7C80A37E|kernel32.dll|                             |
|CompareStringW                  |         |
> > |7C90D8ED|ntdll.dll   |                             |
|NtDeviceIoControlFile           |         |
> > |71AB42F5|WS2_32.dll  |                             |
|send                            |         |
> > |71AB42FC|WS2_32.dll  |                             |
|send                            |         |
> > |005C52E7|AviaVox.exe |WSocket.pas                  |
|WSocket_Synchronized_send       |2098[3]  |
> > |005C2808|AviaVox.exe |WSockBuf.pas                 |TBuffer
|Peek                            |212[0]   |
> > |005C6D8A|AviaVox.exe |WSocket.pas                  |TCustomWSocket
|TryToSend                       |4006[16] |
> > |005C6F07|AviaVox.exe |WSocket.pas                  |TCustomWSocket
|TryToSend                       |4070[80] |
> > |7E41CBB3|USER32.dll  |                             |
|PostMessageA                    |         |
> > |7E41CB69|USER32.dll  |                             |
|PostMessageA                    |         |
> > |005C710A|AviaVox.exe |WSocket.pas                  |TCustomWSocket
|Send                            |4164[31] |
> > |005C715A|AviaVox.exe |WSocket.pas                  |TCustomWSocket
|SendStr                         |4177[2]  |
> > |006BFA70|AviaVox.exe |ServerTimedSocket.pas        |TServerTimedSocket
|OnOutgoingEncryptedData         |372[3]   |
> > |006BFA9A|AviaVox.exe |ServerTimedSocket.pas        |TServerTimedSocket
|OnOutgoingEncryptedData         |375[6]   |
> > |005CEB0D|AviaVox.exe |ConnectionAuthorize.pas      |TAuthorize
|OutGoingData                    |363[12]  |
> > |005C2808|AviaVox.exe |WSockBuf.pas                 |TBuffer
|Peek                            |212[0]   |
> > |005C6D8A|AviaVox.exe |WSocket.pas                  |TCustomWSocket
|TryToSend                       |4006[16] |
> > |7C9010ED|ntdll.dll   |                             |
|RtlLeaveCriticalSection         |         |
> > |005C6F07|AviaVox.exe |WSocket.pas                  |TCustomWSocket
|TryToSend                       |4070[80] |
> > |005C6F2C|AviaVox.exe |WSocket.pas                  |TCustomWSocket
|TryToSend                       |4073[83] |
> > |005CA50F|AviaVox.exe |WSocket.pas                  |TCustomWSocket
|TriggerDataSent                 |5985[8]  |
> > |005C7168|AviaVox.exe |WSocket.pas                  |TCustomWSocket
|ASyncReceive                    |4198[0]  |
> > |005C72E7|AviaVox.exe |WSocket.pas                  |TCustomWSocket
|Do_FD_READ                      |4259[5]  |
> > |005C75C3|AviaVox.exe |WSocket.pas                  |TCustomWSocket
|WMASyncSelect                   |4394[62] |
> > |005C746C|AviaVox.exe |WSocket.pas                  |TCustomWSocket
|WMASyncSelect                   |4332[0]  |
> > |005C6129|AviaVox.exe |WSocket.pas                  |TCustomWSocket
|WndProc                         |3290[4]  |
> > |005C6100|AviaVox.exe |WSocket.pas                  |TCustomWSocket
|WndProc                         |3286[0]  |
> > |005CC8C7|AviaVox.exe |WSocket.pas                  |TCustomLineWSocket
|WndProc                         |6824[12] |
> > |005C6261|AviaVox.exe |WSocket.pas                  |
|XSocketWindowProc               |3341[14] |
> > |7E4196B2|USER32.dll  |                             |
|DispatchMessageA                |         |
> > |7E4196A8|USER32.dll  |                             |
|DispatchMessageA                |         |
> > |00618A8C|AviaVox.exe |networkComm.pas              |TNetworkCommThread
|Execute                         |445[12]  |
> >
|---------------------------------------------------------------------------
-----------------------------------------------|
> >
>
> -- 
> To unsubscribe or change your settings for TWSocket mailing list
> please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
> Visit our website at http://www.overbyte.be

-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be

Reply via email to