Henrik,

I still guess that it's caused by any crap process running on
this box. Why else does it not happen on other computers as well? 
I don't know the Norman software, but have you tried to uninstall it? 
I would also check the auto-started processes as well and turn
them off one after the other. Then I would search for strange
processes in the process list that do not exist on the other,
working boxes. That's at least worth a try. 

---
Arno Garrels [TeamICS]
http://www.overbyte.be/eng/overbyte/teamics.html
 

Henrik wrote:
> Hello Wilfred!
> 
> Yes, I get the same behavior when running the application from within
> the 
> IDE. So I traced the code up until the application stops to respond.
> (And 
> yes, we mean the same thing: the application freezes or hangs so that
> You 
> can't quit and You can not move or close the window.)
> 
> The trace disappears in the function
> WSocket_Synchronized_WSAAsyncSelect in 
> WSocket.pas. You can see the actual line where something happens in
> the code 
> snippet below:
> 
> function WSocket_Synchronized_WSAAsyncSelect(
>            s: TSocket; HWindow: HWND;
>            wMsg: u_int; lEvent: Longint): Integer;
> begin
>   SaveTrace('Start WSocket.pas: function
> WSocket_Synchronized_WSAAsyncSelect');
> 
>   if @FWSAAsyncSelect = nil then
>       @FWSAAsyncSelect := WSocketGetProc('WSAAsyncSelect');
> 
>   SaveTrace('Hang on the line below this row: Result :=
> FWSAAsyncSelect...');
> 
>   Result := FWSAAsyncSelect(s, HWindow, wMsg, lEvent);   // <------
> Something happens here
> 
>   SaveTrace('Hang on the line obove this row: Result :=
> FWSAAsyncSelect...');
>   SaveTrace('End   WSocket.pas: function
> WSocket_Synchronized_WSAAsyncSelect');
> end;
> 
> Does this make any sense?
> Best Regards
> Henrik
> 
> 
> 
> Ps. If there by any chance is someone who want a bit more "in depth
> facts", 
> I also attached the following trace logs :-)
> 
> I added the SaveTrace procedure seen in the snippet above at the
> first line 
> and the last line of the following functions and procedures:
>   WSocket.pas:  function XSocketWindowProc
>   WSocket.pas:  procedure TCustomWSocket.WndProc
>   WSocket.pas:  procedure TCustomWSocket.WMAsyncGetHostByName
>   WSocket.pas:  procedure TCustomWSocket.TriggerDNSLookupDone
>   SmtpProt.pas: procedure TCustomSmtpClient.WSocketDnsLookupDone
>   WSocket.pas:  procedure TCustomSocksWSocket.Connect;
>   WSocket.pas:  procedure TCustomWSocket.Connect
>   WSocket.pas:  function WSocket_Synchronized_WSAAsyncSelect
> 
> So after the ConnectButton in the example is pressed I get the
> following 
> results on computers where everything works:
> 
> First time the SmtpTestForm is created and ConnectButton is pressed:
> --------------------------------------------------------------------
> Start WSocket.pas: function XSocketWindowProc
> End   WSocket.pas: function XSocketWindowProc
> Start WSocket.pas: function XSocketWindowProc
> End   WSocket.pas: function XSocketWindowProc
> Start WSocket.pas: function XSocketWindowProc
> End   WSocket.pas: function XSocketWindowProc
> Start WSocket.pas: function XSocketWindowProc
> End   WSocket.pas: function XSocketWindowProc
> Start WSocket.pas: function XSocketWindowProc
> End   WSocket.pas: function XSocketWindowProc
> Start WSocket.pas: function XSocketWindowProc
>   Start WSocket.pas: procedure TCustomWSocket.WndProc
>   End   WSocket.pas: procedure TCustomWSocket.WndProc
> End   WSocket.pas: function XSocketWindowProc
> Start WSocket.pas: function XSocketWindowProc
>   Start WSocket.pas: procedure TCustomWSocket.WndProc
>   End   WSocket.pas: procedure TCustomWSocket.WndProc
> End   WSocket.pas: function XSocketWindowProc
> Start WSocket.pas: function XSocketWindowProc
>   Start WSocket.pas: procedure TCustomWSocket.WndProc
>     Start WSocket.pas: procedure TCustomWSocket.WMAsyncGetHostByName
>       Start WSocket.pas: procedure TCustomWSocket.TriggerDNSLookupDone
>         Start SmtpProt.pas: procedure
> TCustomSmtpClient.WSocketDnsLookupDone 
>           Start WSocket.pas: procedure TCustomSocksWSocket.Connect
>             Start WSocket.pas: procedure TCustomWSocket.Connect
>               Start WSocket.pas: function
> WSocket_Synchronized_WSAAsyncSelect
>                 Hang on the line below this row: Result :=
> FWSAAsyncSelect...
>                 Hang on the line obove this row: Result :=
> FWSAAsyncSelect...
>               End   WSocket.pas: function
> WSocket_Synchronized_WSAAsyncSelect
>             End   WSocket.pas: procedure TCustomWSocket.Connect
>         End   SmtpProt.pas: procedure
> TCustomSmtpClient.WSocketDnsLookupDone 
>       End   WSocket.pas: procedure TCustomWSocket.TriggerDNSLookupDone
>     End   WSocket.pas: procedure TCustomWSocket.WMAsyncGetHostByName
>   End   WSocket.pas: procedure TCustomWSocket.WndProc
> End   WSocket.pas: function XSocketWindowProc
> Start WSocket.pas: function XSocketWindowProc
>   Start WSocket.pas: procedure TCustomWSocket.WndProc
>   End   WSocket.pas: procedure TCustomWSocket.WndProc
> End   WSocket.pas: function XSocketWindowProc
> Start WSocket.pas: function XSocketWindowProc
>   Start WSocket.pas: procedure TCustomWSocket.WndProc
>   End   WSocket.pas: procedure TCustomWSocket.WndProc
> End   WSocket.pas: function XSocketWindowProc
> Start WSocket.pas: function XSocketWindowProc
>   Start WSocket.pas: procedure TCustomWSocket.WndProc
>   End   WSocket.pas: procedure TCustomWSocket.WndProc
> End   WSocket.pas: function XSocketWindowProc
> Start WSocket.pas: function XSocketWindowProc
> End   WSocket.pas: function XSocketWindowProc
> Start WSocket.pas: function XSocketWindowProc
> End   WSocket.pas: function XSocketWindowProc
> 
> 
> I close the SmtpTestForm, release it and create it again.
> When ConnectButton is pressed this time I get the following trace:
> ------------------------------------------------------------------
> Start WSocket.pas: function XSocketWindowProc
> End   WSocket.pas: function XSocketWindowProc
> Start WSocket.pas: function XSocketWindowProc
> End   WSocket.pas: function XSocketWindowProc
> Start WSocket.pas: function XSocketWindowProc
> End   WSocket.pas: function XSocketWindowProc
> Start WSocket.pas: function XSocketWindowProc
> End   WSocket.pas: function XSocketWindowProc
> Start WSocket.pas: function XSocketWindowProc
> End   WSocket.pas: function XSocketWindowProc
> Start WSocket.pas: function XSocketWindowProc
>   Start WSocket.pas: procedure TCustomWSocket.WndProc
>     Start WSocket.pas: procedure TCustomWSocket.WMAsyncGetHostByName
>       Start WSocket.pas: procedure TCustomWSocket.TriggerDNSLookupDone
>         Start SmtpProt.pas: procedure
> TCustomSmtpClient.WSocketDnsLookupDone 
>           Start WSocket.pas: procedure TCustomSocksWSocket.Connect
>             Start WSocket.pas: procedure TCustomWSocket.Connect
>               Start WSocket.pas: function
> WSocket_Synchronized_WSAAsyncSelect
>                 Hang on the line below this row: Result :=
> FWSAAsyncSelect...
>                 Hang on the line obove this row: Result :=
> FWSAAsyncSelect...
>               End   WSocket.pas: function
> WSocket_Synchronized_WSAAsyncSelect
>             End   WSocket.pas: procedure TCustomWSocket.Connect
>         End   SmtpProt.pas: procedure
> TCustomSmtpClient.WSocketDnsLookupDone 
>       End   WSocket.pas: procedure TCustomWSocket.TriggerDNSLookupDone
>     End   WSocket.pas: procedure TCustomWSocket.WMAsyncGetHostByName
>   End   WSocket.pas: procedure TCustomWSocket.WndProc
> End   WSocket.pas: function XSocketWindowProc
> Start WSocket.pas: function XSocketWindowProc
>   Start WSocket.pas: procedure TCustomWSocket.WndProc
>   End   WSocket.pas: procedure TCustomWSocket.WndProc
> End   WSocket.pas: function XSocketWindowProc
> Start WSocket.pas: function XSocketWindowProc
>   Start WSocket.pas: procedure TCustomWSocket.WndProc
>   End   WSocket.pas: procedure TCustomWSocket.WndProc
> End   WSocket.pas: function XSocketWindowProc
> Start WSocket.pas: function XSocketWindowProc
>   Start WSocket.pas: procedure TCustomWSocket.WndProc
>   End   WSocket.pas: procedure TCustomWSocket.WndProc
> End   WSocket.pas: function XSocketWindowProc
> Start WSocket.pas: function XSocketWindowProc
> End   WSocket.pas: function XSocketWindowProc
> Start WSocket.pas: function XSocketWindowProc
> End   WSocket.pas: function XSocketWindowProc
> 
> 
> 
> So now to the interesting part. On computers where the application
> freezes I 
> get the following trace.
> First time the SmtpTestForm is created and ConnectButton is pressed:
> --------------------------------------------------------------------
> Start WSocket.pas: function XSocketWindowProc
> End   WSocket.pas: function XSocketWindowProc
> Start WSocket.pas: function XSocketWindowProc
> End   WSocket.pas: function XSocketWindowProc
> Start WSocket.pas: function XSocketWindowProc
> End   WSocket.pas: function XSocketWindowProc
> Start WSocket.pas: function XSocketWindowProc
> End   WSocket.pas: function XSocketWindowProc
> Start WSocket.pas: function XSocketWindowProc
> End   WSocket.pas: function XSocketWindowProc
> Start WSocket.pas: function XSocketWindowProc
>   Start WSocket.pas: procedure TCustomWSocket.WndProc
>     Start WSocket.pas: procedure TCustomWSocket.WMAsyncGetHostByName
>       Start WSocket.pas: procedure TCustomWSocket.TriggerDNSLookupDone
>         Start SmtpProt.pas: procedure
> TCustomSmtpClient.WSocketDnsLookupDone 
>           Start WSocket.pas: procedure TCustomSocksWSocket.Connect
>             Start WSocket.pas: procedure TCustomWSocket.Connect
>               Start WSocket.pas: function
> WSocket_Synchronized_WSAAsyncSelect
>                 Hang on the line below this row: Result :=
> FWSAAsyncSelect...
>                 Hang on the line obove this row: Result :=
> FWSAAsyncSelect...
>               End   WSocket.pas: function
> WSocket_Synchronized_WSAAsyncSelect
>             End   WSocket.pas: procedure TCustomWSocket.Connect
>         End   SmtpProt.pas: procedure
> TCustomSmtpClient.WSocketDnsLookupDone 
>       End   WSocket.pas: procedure TCustomWSocket.TriggerDNSLookupDone
>     End   WSocket.pas: procedure TCustomWSocket.WMAsyncGetHostByName
>   End   WSocket.pas: procedure TCustomWSocket.WndProc
> End   WSocket.pas: function XSocketWindowProc
> Start WSocket.pas: function XSocketWindowProc
>   Start WSocket.pas: procedure TCustomWSocket.WndProc
>   End   WSocket.pas: procedure TCustomWSocket.WndProc
> End   WSocket.pas: function XSocketWindowProc
> Start WSocket.pas: function XSocketWindowProc
>   Start WSocket.pas: procedure TCustomWSocket.WndProc
>   End   WSocket.pas: procedure TCustomWSocket.WndProc
> End   WSocket.pas: function XSocketWindowProc
> Start WSocket.pas: function XSocketWindowProc
>   Start WSocket.pas: procedure TCustomWSocket.WndProc
>   End   WSocket.pas: procedure TCustomWSocket.WndProc
> End   WSocket.pas: function XSocketWindowProc
> Start WSocket.pas: function XSocketWindowProc
> End   WSocket.pas: function XSocketWindowProc
> Start WSocket.pas: function XSocketWindowProc
> End   WSocket.pas: function XSocketWindowProc
> 
> 
> I close the SmtpTestForm, release it and create it again.
> When ConnectButton is pressed this time I get the following trace:
> ------------------------------------------------------------------
> Start WSocket.pas: function XSocketWindowProc
> End   WSocket.pas: function XSocketWindowProc
> Start WSocket.pas: function XSocketWindowProc
> End   WSocket.pas: function XSocketWindowProc
> Start WSocket.pas: function XSocketWindowProc
> End   WSocket.pas: function XSocketWindowProc
> Start WSocket.pas: function XSocketWindowProc
> End   WSocket.pas: function XSocketWindowProc
> Start WSocket.pas: function XSocketWindowProc
> End   WSocket.pas: function XSocketWindowProc
> Start WSocket.pas: function XSocketWindowProc
>   Start WSocket.pas: procedure TCustomWSocket.WndProc
>     Start WSocket.pas: procedure TCustomWSocket.WMAsyncGetHostByName
>       Start WSocket.pas: procedure TCustomWSocket.TriggerDNSLookupDone
>         Start SmtpProt.pas: procedure
> TCustomSmtpClient.WSocketDnsLookupDone 
>           Start WSocket.pas: procedure TCustomSocksWSocket.Connect
>             Start WSocket.pas: procedure TCustomWSocket.Connect
>               Start WSocket.pas: function
> WSocket_Synchronized_WSAAsyncSelect
>                 Hang on the line below this row: Result :=
> FWSAAsyncSelect...
> 
> 
> 
> 
> 
> 
> 
> -----Ursprungligt meddelande-----
> Från: [EMAIL PROTECTED] [mailto:twsocket-
> [EMAIL PROTECTED] För 
> Wilfried Mestdagh
> Skickat: den 12 december 2006 13:17
> Till: ICS support mailing
> Ämne: Re: [twsocket] Freeze when using smtp after recreating its
> parentform 
> 
> Hello Henrik,
> 
> Do you have the same problem in the IDE ?  Because this way you can
> check 
> witch code line never comes back (freeze). If not eventually open a
> console 
> window and write some debug information into it to see where it
> happens. 
> 
> Your approach is normal. I do this all the time, however I almost
> never use 
> forms for it. Normally I have an object containing the component, eg
> TSmtpClient, another object that creates / handles / destroy the
> TSmtpClient 
> objects. But in principle it is the same. It can as whell be a
> DataModule, a 
> Form or whatever other object.
> 
> Question: We do understeand the word 'Freeze' the right way ?  Form
> cannot 
> moved, closed, application cannot quit, etc... Right ?
> 
> ---
> Rgds, Wilfried [TeamICS]
> http://www.overbyte.be/eng/overbyte/teamics.html
> http://www.mestdagh.biz
-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://www.elists.org/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be

Reply via email to