Browse Source

[Minor] Print failed stage when showing stat error

tags/1.9.0
Vsevolod Stakhov 5 years ago
parent
commit
d17fe6bfce
2 changed files with 77 additions and 1 deletions
  1. 70
    1
      src/libserver/task.c
  2. 7
    0
      src/libserver/task.h

+ 70
- 1
src/libserver/task.c View File

@@ -819,7 +819,9 @@ rspamd_task_process (struct rspamd_task *task, guint stages)
if (stat_error == NULL) {
g_set_error (&stat_error,
g_quark_from_static_string ("stat"), 500,
"Unknown statistics error");
"Unknown statistics error, found on stage %s;"
" classifier: %s",
rspamd_task_stage_name (st), task->classifier);
}

if (stat_error->code >= 400) {
@@ -1701,4 +1703,71 @@ rspamd_task_set_finish_time (struct rspamd_task *task)
}

return FALSE;
}

const gchar *
rspamd_task_stage_name (enum rspamd_task_stage stg)
{
const gchar *ret = "unknown stage";

switch (stg) {
case RSPAMD_TASK_STAGE_CONNECT:
ret = "connect";
break;
case RSPAMD_TASK_STAGE_ENVELOPE:
ret = "envelope";
break;
case RSPAMD_TASK_STAGE_READ_MESSAGE:
ret = "read_message";
break;
case RSPAMD_TASK_STAGE_PRE_FILTERS:
ret = "prefilters";
break;
case RSPAMD_TASK_STAGE_PROCESS_MESSAGE:
ret = "process_message";
break;
case RSPAMD_TASK_STAGE_FILTERS:
ret = "filters";
break;
case RSPAMD_TASK_STAGE_CLASSIFIERS_PRE:
ret = "classifiers_pre";
break;
case RSPAMD_TASK_STAGE_CLASSIFIERS:
ret = "classifiers";
break;
case RSPAMD_TASK_STAGE_CLASSIFIERS_POST:
ret = "classifiers_post";
break;
case RSPAMD_TASK_STAGE_COMPOSITES:
ret = "composites";
break;
case RSPAMD_TASK_STAGE_POST_FILTERS:
ret = "postfilters";
break;
case RSPAMD_TASK_STAGE_LEARN_PRE:
ret = "learn_pre";
break;
case RSPAMD_TASK_STAGE_LEARN:
ret = "learn";
break;
case RSPAMD_TASK_STAGE_LEARN_POST:
ret = "learn_post";
break;
case RSPAMD_TASK_STAGE_COMPOSITES_POST:
ret = "composites_post";
break;
case RSPAMD_TASK_STAGE_IDEMPOTENT:
ret = "idempotent";
break;
case RSPAMD_TASK_STAGE_DONE:
ret = "done";
break;
case RSPAMD_TASK_STAGE_REPLIED:
ret = "replied";
break;
default:
break;
}

return ret;
}

+ 7
- 0
src/libserver/task.h View File

@@ -357,4 +357,11 @@ gdouble* rspamd_task_profile_get (struct rspamd_task *task, const gchar *key);
*/
gboolean rspamd_task_set_finish_time (struct rspamd_task *task);

/**
* Returns task processing stage name
* @param stg
* @return
*/
const gchar *rspamd_task_stage_name (enum rspamd_task_stage stg);

#endif /* TASK_H_ */

Loading…
Cancel
Save