|
@@ -1316,8 +1316,23 @@ policies_free_all(void)
|
|
|
addr_policy_list_free(authdir_badexit_policy);
|
|
|
authdir_badexit_policy = NULL;
|
|
|
|
|
|
- if (!HT_EMPTY(&policy_root))
|
|
|
- log_warn(LD_MM, "Still had some address policies cached at shutdown.");
|
|
|
+ if (!HT_EMPTY(&policy_root)) {
|
|
|
+ policy_map_ent_t **ent;
|
|
|
+ int n = 0;
|
|
|
+ char buf[POLICY_BUF_LEN];
|
|
|
+
|
|
|
+ log_warn(LD_MM, "Still had %d address policies cached at shutdown.",
|
|
|
+ (int)HT_SIZE(&policy_root));
|
|
|
+
|
|
|
+ /* Note the first 10 cached policies to try to figure out where they
|
|
|
+ * might be coming from. */
|
|
|
+ HT_FOREACH(ent, policy_map, &policy_root) {
|
|
|
+ if (++n > 10)
|
|
|
+ break;
|
|
|
+ if (policy_write_item(buf, sizeof(buf), (*ent)->policy, 0) >= 0)
|
|
|
+ log_warn(LD_MM," %d [%d]: %s", n, (*ent)->policy->refcnt, buf);
|
|
|
+ }
|
|
|
+ }
|
|
|
HT_CLEAR(policy_map, &policy_root);
|
|
|
}
|
|
|
|