diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2018-10-26 16:06:12 +0100 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2018-10-26 16:06:12 +0100 |
commit | 0c20729f33f07cdcef5f7c10bde04f262c4a4574 (patch) | |
tree | 66853c7d49a7e51715ce1bc73ab12998bc28c7a9 /src/libserver | |
parent | 2ae394086bb5385ae4bc216cf694fe35692522a3 (diff) | |
download | rspamd-0c20729f33f07cdcef5f7c10bde04f262c4a4574.tar.gz rspamd-0c20729f33f07cdcef5f7c10bde04f262c4a4574.zip |
[Rework] Add more traces to async events, get rid of GQuarks
Diffstat (limited to 'src/libserver')
-rw-r--r-- | src/libserver/dns.c | 8 | ||||
-rw-r--r-- | src/libserver/events.c | 17 | ||||
-rw-r--r-- | src/libserver/events.h | 2 | ||||
-rw-r--r-- | src/libserver/symbols_cache.c | 19 | ||||
-rw-r--r-- | src/libserver/symbols_cache.h | 9 |
5 files changed, 32 insertions, 23 deletions
diff --git a/src/libserver/dns.c b/src/libserver/dns.c index 358bf7dca..966ced377 100644 --- a/src/libserver/dns.c +++ b/src/libserver/dns.c @@ -24,6 +24,8 @@ #include "rdns_event.h" #include "unix-std.h" +static const gchar *M = "rspamd dns"; + static struct rdns_upstream_elt* rspamd_dns_select_upstream (const char *name, size_t len, void *ups_data); static struct rdns_upstream_elt* rspamd_dns_select_upstream_retransmit ( @@ -83,7 +85,7 @@ rspamd_dns_fin_cb (gpointer arg) if (reqdata->item) { rspamd_symcache_item_async_dec_check (reqdata->task, - reqdata->item); + reqdata->item, M); } if (reqdata->pool == NULL) { @@ -160,7 +162,7 @@ make_dns_request (struct rspamd_dns_resolver *resolver, rspamd_session_add_event (session, (event_finalizer_t) rspamd_dns_fin_cb, reqdata, - g_quark_from_static_string ("dns resolver")); + M); } } @@ -200,7 +202,7 @@ make_dns_request_task_common (struct rspamd_task *task, if (reqdata->item) { /* We are inside some session */ - rspamd_symcache_item_async_inc (task, reqdata->item); + rspamd_symcache_item_async_inc (task, reqdata->item, M); } if (!forced && task->dns_requests >= task->cfg->dns_max_requests) { diff --git a/src/libserver/events.c b/src/libserver/events.c index db17f87d6..55e04985b 100644 --- a/src/libserver/events.c +++ b/src/libserver/events.c @@ -48,7 +48,7 @@ static struct rspamd_counter_data events_count; struct rspamd_async_event { - GQuark subsystem; + const gchar *subsystem; event_finalizer_t fin; void *user_data; }; @@ -148,7 +148,7 @@ struct rspamd_async_event * rspamd_session_add_event (struct rspamd_async_session *session, event_finalizer_t fin, gpointer user_data, - GQuark subsystem) + const gchar *subsystem) { struct rspamd_async_event *new_event; gint ret; @@ -161,7 +161,7 @@ rspamd_session_add_event (struct rspamd_async_session *session, if (!RSPAMD_SESSION_CAN_ADD_EVENT (session)) { msg_debug_session ("skip adding event subsystem: %s: " "session is destroying/cleaning", - g_quark_to_string (subsystem)); + subsystem); return NULL; } @@ -176,7 +176,7 @@ rspamd_session_add_event (struct rspamd_async_session *session, "subsystem: %s", user_data, kh_size (session->events), - g_quark_to_string (subsystem)); + subsystem); kh_put (rspamd_events_hash, session->events, new_event, &ret); g_assert (ret > 0); @@ -212,8 +212,9 @@ rspamd_session_remove_event (struct rspamd_async_session *session, msg_err_session ("cannot find event: %p(%p)", fin, ud); kh_foreach (session->events, found_ev, t, { msg_err_session ("existing event %s: %p(%p)", - g_quark_to_string (found_ev->subsystem), - found_ev->fin, found_ev->user_data); + found_ev->subsystem, + found_ev->fin, + found_ev->user_data); }); (void)t; @@ -226,7 +227,7 @@ rspamd_session_remove_event (struct rspamd_async_session *session, "subsystem: %s", ud, kh_size (session->events), - g_quark_to_string (found_ev->subsystem)); + found_ev->subsystem); kh_del (rspamd_events_hash, session->events, k); /* Remove event */ @@ -271,7 +272,7 @@ rspamd_session_cleanup (struct rspamd_async_session *session) /* Call event's finalizer */ msg_debug_session ("removed event on destroy: %p, subsystem: %s", ev->user_data, - g_quark_to_string (ev->subsystem)); + ev->subsystem); if (ev->fin != NULL) { ev->fin (ev->user_data); diff --git a/src/libserver/events.h b/src/libserver/events.h index 85d4e48e2..1cb5dfa11 100644 --- a/src/libserver/events.h +++ b/src/libserver/events.h @@ -49,7 +49,7 @@ struct rspamd_async_event * rspamd_session_add_event (struct rspamd_async_session *session, event_finalizer_t fin, gpointer user_data, - GQuark subsystem); + const gchar *subsystem); /** * Remove normal event diff --git a/src/libserver/symbols_cache.c b/src/libserver/symbols_cache.c index bf882c4dd..e754e2d10 100644 --- a/src/libserver/symbols_cache.c +++ b/src/libserver/symbols_cache.c @@ -2677,19 +2677,21 @@ rspamd_symbols_cache_finalize_item (struct rspamd_task *task, guint rspamd_symcache_item_async_inc (struct rspamd_task *task, - struct rspamd_symcache_item *item) + struct rspamd_symcache_item *item, + const gchar *subsystem) { - msg_debug_cache_task ("increase async events counter for %s(%d) = %d + 1", - item->symbol, item->id, item->async_events); + msg_debug_cache_task ("increase async events counter for %s(%d) = %d + 1; subsystem %s", + item->symbol, item->id, item->async_events, subsystem); return ++item->async_events; } guint rspamd_symcache_item_async_dec (struct rspamd_task *task, - struct rspamd_symcache_item *item) + struct rspamd_symcache_item *item, + const gchar *subsystem) { - msg_debug_cache_task ("decrease async events counter for %s(%d) = %d - 1", - item->symbol, item->id, item->async_events); + msg_debug_cache_task ("decrease async events counter for %s(%d) = %d - 1; subsystem %s", + item->symbol, item->id, item->async_events, subsystem); g_assert (item->async_events > 0); return --item->async_events; @@ -2697,9 +2699,10 @@ rspamd_symcache_item_async_dec (struct rspamd_task *task, gboolean rspamd_symcache_item_async_dec_check (struct rspamd_task *task, - struct rspamd_symcache_item *item) + struct rspamd_symcache_item *item, + const gchar *subsystem) { - if (rspamd_symcache_item_async_dec (task, item) == 0) { + if (rspamd_symcache_item_async_dec (task, item, subsystem) == 0) { rspamd_symbols_cache_finalize_item (task, item); return TRUE; diff --git a/src/libserver/symbols_cache.h b/src/libserver/symbols_cache.h index 4dce60b46..73a46c270 100644 --- a/src/libserver/symbols_cache.h +++ b/src/libserver/symbols_cache.h @@ -316,12 +316,14 @@ void rspamd_symbols_cache_finalize_item (struct rspamd_task *task, * Increase number of async events pending for an item */ guint rspamd_symcache_item_async_inc (struct rspamd_task *task, - struct rspamd_symcache_item *item); + struct rspamd_symcache_item *item, + const gchar *subsystem); /* * Decrease number of async events pending for an item, asserts if no events pending */ guint rspamd_symcache_item_async_dec (struct rspamd_task *task, - struct rspamd_symcache_item *item); + struct rspamd_symcache_item *item, + const gchar *subsystem); /** * Decrease number of async events pending for an item, asserts if no events pending @@ -331,5 +333,6 @@ guint rspamd_symcache_item_async_dec (struct rspamd_task *task, * @return */ gboolean rspamd_symcache_item_async_dec_check (struct rspamd_task *task, - struct rspamd_symcache_item *item); + struct rspamd_symcache_item *item, + const gchar *subsystem); #endif |