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]