Lars Gehre wrote:
> Thanks, I can confirm, it works now without problems.

Thanks as well!

> 
> Lars
> 
>> -----Original Message-----
>> From: twsocket-boun...@elists.org
>> [mailto:twsocket-boun...@elists.org] On Behalf Of Arno Garrels
>> Sent: Friday, July 01, 2011 8:35 AM
>> To: ICS support mailing
>> Subject: Re: [twsocket] HTTP Server creates extremly high CPU load
>> 
>> Lars Gehre wrote:
>>> I think, I found something.
>> 
>> Thanks for reporting, I just checked in a fix.
>> Available via SVN now or included in next daily snapshot
>> here: http://wiki.overbyte.be/wiki/index.php/ICS_Download
>> 
>> --
>> Arno Garrels
>> 
>> 
>>> The problem seems to be the head request. Normaly you do a HEAD and
>>> close the connection, but in my case it stays open and the
>> http server
>>> gets stuck in an endless loop.
>>> 
>>> The culprits are:
>>> 
>>> procedure THttpConnection.SendDocument(SendType :
>>> THttpSendType;const CustomHeaders : String); and procedure
>>> THttpConnection.ConnectionDataSent(Sender : TObject; Error :
>>> WORD);
>>> 
>>> In SendDocument the fdocsize gets set to the size of the
>> stream and a
>>> 
>>> if SendType = httpSendHead then
>>>        FDocStream.Seek(0, soFromEnd)
>>> 
>>> And
>>>        if SendType = httpSendDoc then
>>>            SendStream
>>>        else
>>>            Send(nil, 0); { Added 15/04/02 } // this one
>> triggers the
>>> ConnectionDataSent.
>>> 
>>> 
>>> In ConnectionDataSent FDataSent >= FDocSize is the end trigger but
>>> 
>>> ToSend := FDocSize - FDataSent;  //fdatasent = 0
>>>    if ToSend > FSndBlkSize then
>>>        ToSend := FSndBlkSize;
>>>    Count     := FDocStream.Read(FDocBuf^, ToSend); // =0 because of
>>> FDocStream.Seek(0, soFromEnd) in SendDocument
>>>    FDataSent := FDataSent + Count;      { Count data which is sent
>>> }  // 0 + 0 = 0
>>>    if State = wsConnected then          { Be sure to be still
>>> connected... }
>>>        Send(FDocBuf, Count);            { before actually send any
>>> data. }  // starts it all over again...
>>> 
>>> Maybe a
>>>    if (FDataSent >= FDocSize) or
>>> (FDocStream.Position=FDocStream.Size) then begin
>>> 
>>> might be a solution, but I don't know enough of the inner
>> workings of
>>> the http component to foresee possible side effects...
>>> 
>>> Lars
>>> 
>>> 
>>> 
>>>> -----Original Message-----
>>>> From: twsocket-boun...@elists.org
>>>> [mailto:twsocket-boun...@elists.org] On Behalf Of Lars Gehre
>>>> Sent: Thursday, June 30, 2011 9:49 PM
>>>> To: 'ICS support mailing'
>>>> Subject: Re: [twsocket] HTTP Server creates extremly high CPU load
>>>> 
>>>> Well I was a little to fast with my conclusion. It only happens to
>>>> files in the demo because they have a proper header, the virtual
>>>> documents only give a 404 for a HEAD request.
>>>> 
>>>> The download is not of matter, the demo files are 500 bytes or so.
>>>> And the server load stays as long as the client is connected.
>>>> 
>>>> As I said, I was able to replicate this on two different
>> machines and
>>>> it is not limited to local access. cross tests between the machines
>>>> also show this behaviour.
>>>> 
>>>> Lars
>>>> 
>>>> 
>>>>> -----Original Message-----
>>>>> From: twsocket-boun...@elists.org
>>>>> [mailto:twsocket-boun...@elists.org] On Behalf Of Arno Garrels
>>>>> Sent: Thursday, June 30, 2011 3:49 PM
>>>>> To: ICS support mailing
>>>>> Subject: Re: [twsocket] HTTP Server creates extremly high CPU load
>>>>> 
>>>>> Lars Gehre wrote:
>>>>>> I noticed one thing: This only happens if files are
>> involved, for
>>>>>> virtual documents it does not happen.
>>>>> 
>>>>> I cannot reproduce it, 0.0% CPU here.
>>>>> I used the OverbyteIcsWebServ demo running on a Win7 quadcore.
>>>>> However if I download a file with Firefox (100 Mbit/s LAN)
>>>> at around 6
>>>>> MB/s CPU 0 uses ~25-30% and CPU 2 8-15%, overall usage of
>>>> the server
>>>>> process ~8-10% reported by Process Explorer.
>>>>> 
>>>>> --
>>>>> Arno Garrels
>>>>> 
>>>>> 
>>>>> 
>>>>>> 
>>>>>> For the http server demo it means you need to open Index.html or
>>>>>> Form.html.
>>>>>> 
>>>>>> Lars
>>>>>> 
>>>>>>> -----Original Message-----
>>>>>>> From: twsocket-boun...@elists.org
>>>>>>> [mailto:twsocket-boun...@elists.org] On Behalf Of Lars Gehre
>>>>>>> Sent: Thursday, June 30, 2011 11:21 AM
>>>>>>> To: 'ICS support mailing'
>>>>>>> Subject: [twsocket] HTTP Server creates extremly high CPU load
>>>>>>> 
>>>>>>> Hello all,
>>>>>>> 
>>>>>>> I have a serious problem with the http server component from
>>>>>>> ICS7 (downloaded from the repository last week).
>>>>>>> 
>>>>>>> I'm using the wininet api on the client side to open a (GET)
>>>>>>> connection to a ICS http Server.
>>>>>>> For certain reasons I need to query the HEAD in
>> intervals (while
>>>>>>> the other get is still in progress).
>>>>>>> As soon as I send the second request the CPU load of the http
>>>>>>> server maxes out one CPU core.
>>>>>>> 
>>>>>>> Steps to reproduce:
>>>>>>> 
>>>>>>> - Run the http server demo from ics.
>>>>>>> 
>>>>>>> - Download the demo
>>>>>>> www.dvbviewer.tv/icsproblem/icsproblem.zip source (delphi 7)
>>>>>>> 
>>>>>>> - Run the demo, enter the url of the demo server and press the
>>>>>>> button.
>>>>>>> 
>>>>>>> - As soon as the call to GetFileSize is finished you
>> see the CPU
>>>>>>> load of the webserver going up.
>>>>>>> 
>>>>>>> 
>>>>>>> I checked it on two windows 7 (multicore) machines with
>> the same
>>>>>>> result.
>>>>>>> 
>>>>>>> I also checked it against several other http servers
>> and none of
>>>>>>> them had a problem with this kind of usage.
>>>>>>> 
>>>>>>> 
>>>>>>> Thanks
>>>>>>> Lars
>>>>>>> 
>>>>>>> --
>>>>>>> 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
>>>>> 
>>>> 
>>>> --
>>>> 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
--
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