Hi, Sorry the previous patch is not correct because it causes deadlock in case of no multithread. The correction of the patch is the following: [afsql] Fix afsql deadlock which is caused the previous patch (send a signal to the database thread only in case when the queue is syncronised) In case of no multithread the push tail call the push notify and it causes deadlock of sql Signed-off-by: Viktor Juhasz (jviktor@balabit.hu) diff --git a/modules/afsql/afsql.c b/modules/afsql/afsql.c index bbdd1d2..27fff99 100644 --- a/modules/afsql/afsql.c +++ b/modules/afsql/afsql.c @@ -1173,8 +1173,10 @@ afsql_dd_queue(LogPipe *s, LogMessage *msg, const LogPathOptions *path_options, g_mutex_lock(self->db_thread_mutex); queue_was_empty = log_queue_get_length(self->queue) == 0; + g_mutex_unlock(self->db_thread_mutex); log_queue_push_tail(self->queue, msg, path_options); + g_mutex_lock(self->db_thread_mutex); if (queue_was_empty && !self->db_thread_suspended) { log_queue_set_parallel_push(self->queue, 1, afsql_dd_queue_notify, self, NULL); Juhasz Viktor wrote:
------------------------------------------------------------------------
______________________________________________________________________________ Member info: https://lists.balabit.hu/mailman/listinfo/syslog-ng Documentation: http://www.balabit.com/support/documentation/?product=syslog-ng FAQ: http://www.balabit.com/wiki/syslog-ng-faq