Well, I do not know what exactly is stalling this release. As far as I can tell the required votes are there. I think however I will take the oportunity to build these again with a couple fixes of my own.
mod_watchdog:
There is a piece of Win specific debug code that causes a crash. It first started when the code got moved. I really did not see a reason to keep it in there. The code was moved back where it belonged and that seemed to do the trick. But going through my laundry list I started messing with this module again because it is required by mod_heartmonitor, which is on my laundry list. It's crashing Apache again. Not sure if it only happens on this laptop or not, will check that tomorrow but it's not needed and I am removing it for our release.
mod_heartmonitor:
This is and interesting one, if you do not load the slotmem_shm module, the module will fall back to file based storing of it's monitoring data. This is fine except they try and set unix permissions on these files. Well, apr_file_perms_set returns APR_ENOTIMPL and this stops Apache from starting. It doesn't crash, but still a no no. Bypassing the permissions setting In Win32 it works, and pollutes the logs folder with files (which unfortunately it does not clean up when you shutdown the server). I'm going to bypass the 2 calls to apr_file_perms_set. Just be warned, best way to use this module is loading the slotmem_shm modules or you'll be cleaning out your logs file often.
For anyone that may know, is there a hook that fires on shutdown? I do not think we'd want these destroyed on a gracefull, but at shutdown I would think so, though I may be wrong.
--- modules/core/mod_watchdog.c 2011-05-17 22:19:15.532600000 -0700
+++ modules/core/mod_watchdog.c 2011-05-17 22:19:34.594600000 -0700
@@ -444,19 +444,6 @@
/* First time config phase -- skip. */
return OK;
-#if defined(WIN32)
- {
- const char *ppid = getenv("AP_PARENT_PID");
- if (ppid && *ppid) {
- ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, s,
- "[%" APR_PID_T_FMT " - %s] "
- "child second stage post config hook",
- getpid(), ppid);
- return OK;
- }
- }
-#endif
-
apr_pool_userdata_get((void *)&wd_server_conf, pk, pproc);
if (!wd_server_conf) {
if (!(wd_server_conf = apr_pcalloc(pproc, sizeof(wd_server_conf_t))))
--- modules/cluster/mod_heartmonitor.c 2011-05-17 12:12:46.980800000 -0700
+++ modules/cluster/mod_heartmonitor.c 2011-05-17 12:23:23.433600000 -0700
@@ -362,6 +362,7 @@
return rv;
}
+#ifndef WIN32
rv = apr_file_perms_set(path,
APR_FPROT_UREAD | APR_FPROT_GREAD |
APR_FPROT_WREAD);
@@ -371,6 +372,7 @@
path);
return rv;
}
+#endif
rv = apr_file_rename(path, ctx->storage_path, pool);
@@ -441,6 +443,7 @@
return rv;
}
+#ifndef WIN32
rv = apr_file_perms_set(path,
APR_FPROT_UREAD | APR_FPROT_GREAD |
APR_FPROT_WREAD);
@@ -450,6 +453,7 @@
path);
return rv;
}
+#endif
rv = apr_file_rename(path, ctx->storage_path, p);