https://issues.apache.org/bugzilla/show_bug.cgi?id=45605
Ruediger Pluem <[EMAIL PROTECTED]> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |NEEDINFO
--- Comment #10 from Ruediger Pluem <[EMAIL PROTECTED]> 2008-10-08 09:29:17
PST ---
(In reply to comment #8)
> This latest report is a legitimate bug, as can be seen by following events
> through the given scenario. However it is not the exactly the same bug as
> originally reported. As can be seen by reviewing the assert condition that the
> original bug reporter was having, the original condition was an overflow not
> an
> underflow. Here is the scenario where the overflow can happen.
>
> 1. Listener thread is waiting for workers.
> 1. Worker threads are all busy but one that just finished.
> 2. That worker thread atomically increments idlers from 0 to 1 and awakens the
> listener.
> 3. That worker thread context switches (before getting into ap_queue_pop())
> 4. Listener awakens and finds that there is an idle worker and begins to fill
> the queue (ap_queue_push()), repeatedly until queue is overfilled.
I cannot follow this last point. Once the listerner awakes again from
apr_thread_cond_wait in ap_queue_info_wait_for_idler it knows for sure that
there is at least one idle thread (after the patch from Denis is applied). But
if there is only one idle thread queue_info->idlers is decreased to zero again
by apr_atomic_dec32(&(queue_info->idlers)); in ap_queue_info_wait_for_idler.
After returning from ap_queue_info_wait_for_idler the listener thread tries to
accept *one* connection and pushes it to the queue. Afterwards it has to wait
again for an idle thread in ap_queue_info_wait_for_idler (exactly in the call
apr_thread_cond_wait). So the queue is not filled repeatedly by the listener
thread until overfilled.
Have you applied the patch and checked whether you still experience the same
kind of SegFaults as without?
Do you still see the assertion error message found by the original reporter?
--
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]