File 0001-Merge-pull-request-5437-from-HofiOne-fix-ack-tracker.patch of Package syslog-ng
From 38ac0e645b845d46201944a28829c84539fae983 Mon Sep 17 00:00:00 2001
From: Hofi <hofione@gmail.com>
Date: Fri, 22 Aug 2025 10:27:38 +0200
Subject: [PATCH 1/4] Merge pull request #5437 from
HofiOne/fix-ack-tracker-crash
Fix ack tracker crash
(cherry picked from commit 5b64de97b4c4bd91956558a175fcfe668a68d6aa)
---
lib/ack-tracker/consecutive_ack_tracker.c | 16 +++++++---------
modules/affile/file-reader.c | 7 ++++++-
modules/affile/wildcard-source.c | 4 ++++
3 files changed, 17 insertions(+), 10 deletions(-)
diff --git a/lib/ack-tracker/consecutive_ack_tracker.c b/lib/ack-tracker/consecutive_ack_tracker.c
index e99fb1d2c..abc154d4b 100644
--- a/lib/ack-tracker/consecutive_ack_tracker.c
+++ b/lib/ack-tracker/consecutive_ack_tracker.c
@@ -95,12 +95,11 @@ consecutive_ack_tracker_track_msg(AckTracker *s, LogMessage *msg)
ConsecutiveAckTracker *self = (ConsecutiveAckTracker *)s;
LogSource *source = self->super.source;
- g_assert(self->pending_ack_record != NULL);
-
log_pipe_ref((LogPipe *)source);
consecutive_ack_tracker_lock(s);
{
+ g_assert(self->pending_ack_record != NULL);
_ack_records_track_msg(self, msg);
}
consecutive_ack_tracker_unlock(s);
@@ -178,13 +177,11 @@ static Bookmark *
consecutive_ack_tracker_request_bookmark(AckTracker *s)
{
ConsecutiveAckTracker *self = (ConsecutiveAckTracker *)s;
+ Bookmark *bookmark = NULL;
+ consecutive_ack_tracker_lock(s);
if (!self->pending_ack_record)
- {
- consecutive_ack_tracker_lock(s);
- self->pending_ack_record = consecutive_ack_record_container_request_pending(self->ack_records);
- consecutive_ack_tracker_unlock(s);
- }
+ self->pending_ack_record = consecutive_ack_record_container_request_pending(self->ack_records);
if (self->pending_ack_record)
{
@@ -192,10 +189,11 @@ consecutive_ack_tracker_request_bookmark(AckTracker *s)
self->pending_ack_record->super.tracker = (AckTracker *)self;
- return &(self->pending_ack_record->super.bookmark);
+ bookmark = &(self->pending_ack_record->super.bookmark);
}
+ consecutive_ack_tracker_unlock(s);
- return NULL;
+ return bookmark;
}
static void
diff --git a/modules/affile/file-reader.c b/modules/affile/file-reader.c
index fd5fd166c..016c0f652 100644
--- a/modules/affile/file-reader.c
+++ b/modules/affile/file-reader.c
@@ -512,11 +512,14 @@ _on_file_deleted(FileReader *self)
log_reader_trigger_one_check(self->reader);
}
+#if SYSLOG_NG_HAVE_INOTIFY
static inline void
_on_file_modified(FileReader *self)
{
- log_reader_trigger_one_check(self->reader);
+ if (self->options->follow_method == FM_INOTIFY)
+ log_reader_trigger_one_check(self->reader);
}
+#endif
static void
_on_read_error(FileReader *self)
@@ -549,10 +552,12 @@ file_reader_notify_method(LogPipe *s, gint notify_code, gpointer user_data)
_on_file_deleted(self);
break;
+#if SYSLOG_NG_HAVE_INOTIFY
case NC_FILE_MODIFIED:
/* This is a notification from the directory monitor, we can read the file for changes */
_on_file_modified(self);
break;
+#endif
default:
break;
diff --git a/modules/affile/wildcard-source.c b/modules/affile/wildcard-source.c
index 3545d4f4a..7cdf2814b 100644
--- a/modules/affile/wildcard-source.c
+++ b/modules/affile/wildcard-source.c
@@ -223,6 +223,7 @@ _handler_directory_deleted(WildcardSourceDriver *self, const DirectoryMonitorEve
}
}
+#if SYSLOG_NG_HAVE_INOTIFY
static void
_handler_file_modified(WildcardSourceDriver *self, const DirectoryMonitorEvent *event)
{
@@ -231,6 +232,7 @@ _handler_file_modified(WildcardSourceDriver *self, const DirectoryMonitorEvent *
if (reader)
log_pipe_notify(&reader->super.super, NC_FILE_MODIFIED, NULL);
}
+#endif
static void
_on_directory_monitor_changed(const DirectoryMonitorEvent *event, gpointer user_data)
@@ -255,10 +257,12 @@ _on_directory_monitor_changed(const DirectoryMonitorEvent *event, gpointer user_
{
_handler_directory_deleted(self, event);
}
+#if SYSLOG_NG_HAVE_INOTIFY
else if (event->event_type == FILE_MODIFIED)
{
_handler_file_modified(self, event);
}
+#endif
}
--
2.51.0