mpm/prefork/prefork.c implements ap_graceful_stop_signalled() as the following (BTW, same goes true for mpm/netware/mpm_netware.c but I don't use that at all): int ap_graceful_stop_signalled(void) { /* not ever called anymore... */ return 0; } Not only the comment is wrong (the function IS actually called from modules/core/http_core.c), this "implemetation" goes out of sync with implementations of the same call in all other MPMs, so any code that depends on whether the restart is graceful or forced, will fail to detect this, yet the fix is the simplest ever: just a return of "is_graceful" instead of plain "0" will do the job.
This bug is related to bug 41743 - which has a candidate patch available.
*** This bug has been marked as a duplicate of bug 41743 ***