summaryrefslogtreecommitdiffstats
path: root/src/libserver
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2018-10-26 16:06:12 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2018-10-26 16:06:12 +0100
commit0c20729f33f07cdcef5f7c10bde04f262c4a4574 (patch)
tree66853c7d49a7e51715ce1bc73ab12998bc28c7a9 /src/libserver
parent2ae394086bb5385ae4bc216cf694fe35692522a3 (diff)
downloadrspamd-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.c8
-rw-r--r--src/libserver/events.c17
-rw-r--r--src/libserver/events.h2
-rw-r--r--src/libserver/symbols_cache.c19
-rw-r--r--src/libserver/symbols_cache.h9
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