https://bz.apache.org/bugzilla/show_bug.cgi?id=69933

            Bug ID: 69933
           Summary: status of worker thread in scoreboard not correct due
                    to exit of extra process
           Product: Apache httpd-2
           Version: 2.4.58
          Hardware: All
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: mpm_worker
          Assignee: [email protected]
          Reporter: [email protected]
  Target Milestone: ---

Hi all,
We found a unusual situation that the status of worker thread is wrong in
scoreboard when using mpm_worker: the thread is dealing with requests normally
but the status is SERVER_DEAD.

After some days of reproduction, the conditions are clear:
1) Process slot N occupied by worker A, then A entered quiescing but X threads
of A remain busy so they still occupy Thread slot N.
2) worker B takes place of Process slot N but only starts (threads_per_child -
X) threads. Meanwhile, worker A becomes extra process.
3) worker B exits normally and all of Thread slot N will be set to SERVER_DEAD
in server_main_loop()
4) worker C takes place of Process slot N and complete creating
threads_per_child threads. These threads handle requests and into SERVER_BUSY.
5) X threads in worker A exit normally and they will update the status of
corresponding thread slot to SERVER_DEAD incorrectly.

This bug could make main process calculated wrong idle thread num so as to
influence making new child.

>From my opinion, the 3) maybe the root cause because it updates status of
threads which not belong to the exited process itself.
Or a better solution is welcomed.

Thanks a lot!
Best Regards, Vincent.

-- 
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]

Reply via email to