[fpc-devel] Lazarus Apache module crashes during concurrent requests

ABorka fpc-devel at aborka.com
Thu Sep 25 00:58:20 CEST 2008


Well, it seems we have some progress now.

The
WaitForThreadTerminate(BeginThread(@__dummythread), 300);
seems to fix it on Windows. At least for 2 concurrent requests. For some 
reason Apache cannot seem to want to run more than 2 requests at a time. 
If more comes in at a time, the first 2 starts running and the rest have 
to wait till at least 1 current request is handled. Even when 
MaxConnectionsPerServer is set to higher than 2 in the registry.

uses cmem;  did not fix the crash on Windows.

I will try to make apache modules load in Linux next so some tests can 
be done there too.

AB

Jonas Maebe wrote:
> 
> On 24 Sep 2008, at 13:02, Michael Van Canneyt wrote:
> 
>> On Wed, 24 Sep 2008, Jonas Maebe wrote:
>>
>>>
>>> On 24 Sep 2008, at 12:35, Michael Van Canneyt wrote:
>>>
>>>> This is a known problem; the heap manager does not function 
>>>> correctly in a
>>>> DLL when an external program (apache, in this case) creates new 
>>>> threads.
>>>
>>> The heap manager is simply not thread safe until the FPC threading 
>>> system has
>>> been initialised (by starting a thread).
>>
>> It is not that simple. The heap manager cannot handle situations where
>> threads have been started by code that is not aware of the FPC threading
>> mechanisms - such as apache.
> 
> Ah yes, that's indeed a problem with the new 2.3.x heap manager. I don't 
> think the 2.2.x heap manager cares though, since it uses a regular 
> critical section/mutex.
> 
> 
> Jonas
> _______________________________________________
> fpc-devel maillist  -  fpc-devel at lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-devel
> 




More information about the fpc-devel mailing list