Icon View Incident Report

Serious Serious
Reported By: Ralf Bieber
Reported On: 6/28/2007
For: Version 4.25 Build 5
# 2392 Pinging Not Working Properly and Can Cause Remote Sessions To Hang

Applications hang sporadically if is RemotePing = true

An application can hang sporadically, if RemotePing = true then RemotePing is not triggered reliably.

Cause:

Windows.PulseEvent does not trigger the event 'WaitForSingleObject' 
reliably

Unit'dbisamlb.pas:
procedure OSSetEvent (event: Pointer);      
begin
    {Windows.PulseEvent (THandle (event)); }
    Windows.SetEvent (THandle (event)); {Version 3.21 }
end;

Addition:

If the time for "WaitForSingleObject" to for a long time lasts, then can the 'StopPinging' be called again and triggers an Exception.

Unit'dbisamen.
pas ':
procedure TDataSession.StopPinging;
begin
   FPingTimer.Enabled:=False;
   if (FPingThread < > nil) then
begin
with FPingThread Do
begin
Terminate;          
Ping;          
Free;          
FPingThread:=nil;    { !!!!!!!!!!!!!!! }          
end;       
end;
end; 



Comments Comments
The event setting has been changed back to using SetEvent instead of PulseEvent. The PulseEvent change was made for use in another context and inadvertently caused this issue.


Resolution Resolution
Fixed Problem on 8/5/2007 in version 4.25 build 6


Products Affected Products Affected
DBISAM Additional Software and Utilities
DBISAM ODBC Client-Server
DBISAM ODBC Client-Server with Source
DBISAM ODBC Standard
DBISAM ODBC Standard with Source
DBISAM ODBC Trial
DBISAM VCL Client-Server
DBISAM VCL Client-Server with Source
DBISAM VCL Standard
DBISAM VCL Standard with Source
DBISAM VCL Trial

Image