View Issue Details

IDProjectCategoryView StatusLast Update
0002523JEDI VCSClient (Gui)public2008-11-15 07:25
ReporterschuettecarstenAssigned Toschuettecarsten 
PrioritynormalSeverityminorReproducibilityrandom
Status closedResolutionfixed 
Product Version 
Target VersionFixed in Version2.40 RC2 (Client) 
Summary0002523: problems with GPF from midware
Descriptionthere are still some problems with message processing in threads caused by the way midware implements it's internal window handles. error messages are "gpf at 0x00000000 read from 0x00000000" or something like this.
Additional Informationi have some callstack information here and will take a look at this.
TagsNo tags attached.
Fix in JVCS version
Releasedocumentation

Relationships

child of 0002377 closed Releaseinfo: 2.40 gui client issues 

Activities

schuettecarsten

2005-01-18 13:41

developer   ~0006216

Exception class: EAccessViolation
Thread: 00000C58 [TJVCSJobThread] ""
----------------------------------------------------------------------------
------------------------
Stack list, generated 18.01.2005 11:11:56
[035B4B5B] System.@HandleAnyException + $33
[03637C1C] Controls.BackgroundClipped + $24
[03636C28] Controls.TControl.RequestAlign + $8
[0363DC39] Controls.TWinControl.SetBounds + $C9
[0363A997] Controls.TWinControl.AlignControl + $F
[035DB37C] Classes.StdWndProc + $14
[036F44B7] WSocket.TCustomWSocket.ProcessMessage (Line 3110, "WSocket.pas" +
8) + $4
[036F44CC] WSocket.TCustomWSocket.ProcessMessages (Line 3124, "WSocket.pas"
+ 1) + $2
[037030F2] CBroker.TClientObject.WaitForAnswer (Line 302, "CBroker.pas" + 4)
+ $3
[0371E0BF] JVCSClientObjBase.TJVCSClientObject.WaitForAnswer (Line 433,
"..\common\client\JVCSClientObjBase.pas" + 2) + $4
[0371E048] JVCSClientObjBase.TJVCSClientObject.Execute (Line 369,
"..\common\client\JVCSClientObjBase.pas" + 7) + $7
[0372293B] JVCSClientObj.TJVCSGetBugsByProject.Initialize (Line 11452,
"..\common\client\JVCSClientObj.pas" + 2) + $2
[03724E15] JVCSConnect.TJVCSConnection.InternalExecuteObject (Line 666,
"..\common\client\JVCSConnect.pas" + 26) + $5
[03724E56] JVCSConnect.TJVCSConnection.SendRequest (Line 679,
"..\common\client\JVCSConnect.pas" + 3) + $4
[03726C02] DBModule.TDataModule1.ClientObjectSendRequest (Line 401,
"DBModule.pas" + 7) + $5
[037F0D68] BugWindow.TVCSBugWindow.ThreadFillListView (Line 193,
"BugWindow.pas" + 20) + $A
[0376301C] JVCSThreads.TJVCSThreadJob.Run (Line 223,
"..\common\JVCSThreads.pas" + 6) + $9
[037632EE] JVCSThreads.TJVCSJobThread.DoRunJobs (Line 351,
"..\common\JVCSThreads.pas" + 18) + $2
[0376337E] JVCSThreads.TJVCSJobThread.Execute (Line 379,
"..\common\JVCSThreads.pas" + 5) + $3
[035D9780] Classes.ThreadProc + $34
[035B54D0] System.ThreadWrapper + $28
----------------------------------------------------------------------------
------------------------
System : Windows XP Professional, Version: 5.1, Build: A28, "Service Pack
2"
Processor: Intel, Pentium 4, 2550 MHz MMX
Display : 1280x1024 pixels, 32 bpp
----------------------------------------------------------------------------
------------------------

schuettecarsten

2005-01-22 12:05

developer   ~0006259

The problem is caused by the following procedure in WSocket.pas from midware. It processes ALL messages, also from the VCL thread. But it's not synchronized.

function TCustomWSocket.ProcessMessage : Boolean;
var
    Msg : TMsg;
begin
    Result := FALSE;
    if PeekMessage(Msg, 0, 0, 0, PM_REMOVE) then begin
        Result := TRUE;
        if Msg.Message = WM_QUIT then
            FTerminated := TRUE
        else begin
            TranslateMessage(Msg);
            DispatchMessage(Msg);
        end;
    end;
end;

diwic

2005-03-21 04:46

developer   ~0006748

f hWnd is NULL, PeekMessage retrieves messages for any window that belongs to the current thread making the call. (PeekMessage does not retrieve messages for windows that belong to other threads.)
- Win32 help

I e, it only retrieves message belonging to the current thread. However, in a call or notification from the IDE, we should never process messages for that thread IMHO, only from the threads we have created ourselves.

schuettecarsten

2005-04-10 13:31

developer   ~0006882

errors are no longer reproduceable

Issue History

Date Modified Username Field Change
2005-01-17 14:21 schuettecarsten New Issue
2005-01-17 14:21 schuettecarsten Status new => assigned
2005-01-17 14:21 schuettecarsten Assigned To => schuettecarsten
2005-01-18 13:41 schuettecarsten Note Added: 0006216
2005-01-22 12:05 schuettecarsten Note Added: 0006259
2005-01-24 06:42 schuettecarsten Relationship added child of 0002377
2005-03-21 04:46 diwic Note Added: 0006748
2005-04-10 13:31 schuettecarsten Status assigned => resolved
2005-04-10 13:31 schuettecarsten Resolution open => fixed
2005-04-10 13:31 schuettecarsten Note Added: 0006882
2005-04-16 05:51 USchuster Fixed in Version => 2.40 RC2 (Client)
2008-11-15 07:25 THuber Status resolved => closed