On Thu, Aug 11, 2016 at 3:20 AM, Andre McCurdy <[email protected]> wrote: > Remove various patches no longer referenced by SRC_URI.
Ping. Status is "Accepted" in patchwork, but commit doesn't seem to be in master. https://patchwork.openembedded.org/series/1425/ > Signed-off-by: Andre McCurdy <[email protected]> > --- > .../files/afsql-afsql_dd_insert_db-refactor.patch | 494 > --------------------- > ...init-the-new-config-when-reverting-to-the.patch | 36 -- > .../files/free-global-LogTemplateOptions.patch | 30 -- > .../logwriter-dont-allocate-a-new-buffer.patch | 26 -- > .../rewrite-expr-grammar.ym-Free-up-token.patch | 17 - > .../files/still-free-the-unconsumed-item.patch | 90 ---- > .../syslog-ng-verify-the-list-before-del.patch | 38 -- > 7 files changed, 731 deletions(-) > delete mode 100644 > meta-oe/recipes-support/syslog-ng/files/afsql-afsql_dd_insert_db-refactor.patch > delete mode 100644 > meta-oe/recipes-support/syslog-ng/files/deinit-the-new-config-when-reverting-to-the.patch > delete mode 100644 > meta-oe/recipes-support/syslog-ng/files/free-global-LogTemplateOptions.patch > delete mode 100644 > meta-oe/recipes-support/syslog-ng/files/logwriter-dont-allocate-a-new-buffer.patch > delete mode 100644 > meta-oe/recipes-support/syslog-ng/files/rewrite-expr-grammar.ym-Free-up-token.patch > delete mode 100644 > meta-oe/recipes-support/syslog-ng/files/still-free-the-unconsumed-item.patch > delete mode 100644 > meta-oe/recipes-support/syslog-ng/files/syslog-ng-verify-the-list-before-del.patch > > diff --git > a/meta-oe/recipes-support/syslog-ng/files/afsql-afsql_dd_insert_db-refactor.patch > > b/meta-oe/recipes-support/syslog-ng/files/afsql-afsql_dd_insert_db-refactor.patch > deleted file mode 100644 > index 42e181b..0000000 > --- > a/meta-oe/recipes-support/syslog-ng/files/afsql-afsql_dd_insert_db-refactor.patch > +++ /dev/null > @@ -1,494 +0,0 @@ > -From 23e80b75508187baaa823a68ea019b72e0b2305c Mon Sep 17 00:00:00 2001 > -From: Budai Laszlo <[email protected]> > -Date: Tue, 12 Nov 2013 13:19:04 +0100 > -Subject: [PATCH] afsql: afsql_dd_insert_db() refactor > - > -Upstream-Status: Backport > - > -A lot of the code that was previously in afsql_dd_insert_db() have been > -extracted to smaller functions, and afsql_dd_insert_db() was rebuilt on > -top of these. At the same time, memory leaks were plugged, and in case > -of a transaction error, backlog rewinding has been fixed too, to not > -loose messages since the last BEGIN command. > - > -Signed-off-by: Juhasz Viktor <[email protected]> > -Signed-off-by: Laszlo Budai <[email protected]> > ---- > - modules/afsql/afsql.c | 301 > ++++++++++++++++++++++++++++++++------------------ > - 1 file changed, 192 insertions(+), 109 deletions(-) > - > -diff --git a/modules/afsql/afsql.c b/modules/afsql/afsql.c > -index 12f6aab..a6a8190 100644 > ---- a/modules/afsql/afsql.c > -+++ b/modules/afsql/afsql.c > -@@ -456,24 +456,21 @@ afsql_dd_create_index(AFSqlDestDriver *s > - * > - * NOTE: This function can only be called from the database thread. > - **/ > --static GString * > --afsql_dd_validate_table(AFSqlDestDriver *self, LogMessage *msg) > -+static gboolean > -+afsql_dd_validate_table(AFSqlDestDriver *self, GString *table) > - { > -- GString *query_string, *table; > -+ GString *query_string; > - dbi_result db_res; > - gboolean success = FALSE; > - gint i; > - > -- table = g_string_sized_new(32); > -- log_template_format(self->table, msg, &self->template_options, LTZ_LOCAL, > 0, NULL, table); > -- > - if (self->flags & AFSQL_DDF_DONT_CREATE_TABLES) > -- return table; > -+ return TRUE; > - > - afsql_dd_check_sql_identifier(table->str, TRUE); > - > - if (g_hash_table_lookup(self->validated_tables, table->str)) > -- return table; > -+ return TRUE; > - > - query_string = g_string_sized_new(32); > - g_string_printf(query_string, "SELECT * FROM %s WHERE 0=1", table->str); > -@@ -544,14 +541,9 @@ afsql_dd_validate_table(AFSqlDestDriver > - /* we have successfully created/altered the destination table, record > this information */ > - g_hash_table_insert(self->validated_tables, g_strdup(table->str), > GUINT_TO_POINTER(TRUE)); > - } > -- else > -- { > -- g_string_free(table, TRUE); > -- table = NULL; > -- } > - g_string_free(query_string, TRUE); > - > -- return table; > -+ return success; > - } > - > - /** > -@@ -581,6 +573,20 @@ afsql_dd_begin_txn(AFSqlDestDriver *self > - } > - > - /** > -+ * afsql_dd_handle_transaction_error: > -+ * > -+ * Handle errors inside during a SQL transaction (e.g. INSERT or COMMIT > failures). > -+ * > -+ * NOTE: This function can only be called from the database thread. > -+ **/ > -+static void > -+afsql_dd_handle_transaction_error(AFSqlDestDriver *self) > -+{ > -+ log_queue_rewind_backlog(self->queue); > -+ self->flush_lines_queued = 0; > -+} > -+ > -+/** > - * afsql_dd_begin_txn: > - * > - * Commit SQL transaction. > -@@ -596,14 +602,14 @@ afsql_dd_commit_txn(AFSqlDestDriver *sel > - if (success) > - { > - log_queue_ack_backlog(self->queue, self->flush_lines_queued); > -+ self->flush_lines_queued = 0; > - } > - else > - { > -- msg_notice("SQL transaction commit failed, rewinding backlog and > starting again", > -- NULL); > -- log_queue_rewind_backlog(self->queue); > -+ msg_error("SQL transaction commit failed, rewinding backlog and > starting again", > -+ NULL); > -+ afsql_dd_handle_transaction_error(self); > - } > -- self->flush_lines_queued = 0; > - return success; > - } > - > -@@ -644,12 +650,13 @@ afsql_dd_set_dbd_opt_numeric(gpointer ke > - } > - > - static gboolean > --afsql_dd_connect(AFSqlDestDriver *self) > -+afsql_dd_ensure_initialized_connection(AFSqlDestDriver *self) > - { > - if (self->dbi_ctx) > - return TRUE; > - > - self->dbi_ctx = dbi_conn_new(self->type); > -+ > - if (!self->dbi_ctx) > - { > - msg_error("No such DBI driver", > -@@ -659,10 +666,12 @@ afsql_dd_connect(AFSqlDestDriver *self) > - } > - > - dbi_conn_set_option(self->dbi_ctx, "host", self->host); > -+ > - if (strcmp(self->type, "mysql")) > - dbi_conn_set_option(self->dbi_ctx, "port", self->port); > - else > - dbi_conn_set_option_numeric(self->dbi_ctx, "port", atoi(self->port)); > -+ > - dbi_conn_set_option(self->dbi_ctx, "username", self->user); > - dbi_conn_set_option(self->dbi_ctx, "password", self->password); > - dbi_conn_set_option(self->dbi_ctx, "dbname", self->database); > -@@ -691,6 +700,7 @@ afsql_dd_connect(AFSqlDestDriver *self) > - evt_tag_str("database", self->database), > - evt_tag_str("error", dbi_error), > - NULL); > -+ > - return FALSE; > - } > - > -@@ -713,104 +723,145 @@ afsql_dd_connect(AFSqlDestDriver *self) > - return TRUE; > - } > - > --static gboolean > --afsql_dd_insert_fail_handler(AFSqlDestDriver *self, LogMessage *msg, > -- LogPathOptions *path_options) > -+static GString * > -+afsql_dd_ensure_accessible_database_table(AFSqlDestDriver *self, LogMessage > *msg) > - { > -- if (self->failed_message_counter < self->num_retries - 1) > -- { > -- log_queue_push_head(self->queue, msg, path_options); > -- > -- /* database connection status sanity check after failed query */ > -- if (dbi_conn_ping(self->dbi_ctx) != 1) > -- { > -- const gchar *dbi_error; > -- > -- dbi_conn_error(self->dbi_ctx, &dbi_error); > -- msg_error("Error, no SQL connection after failed query attempt", > -- evt_tag_str("type", self->type), > -- evt_tag_str("host", self->host), > -- evt_tag_str("port", self->port), > -- evt_tag_str("username", self->user), > -- evt_tag_str("database", self->database), > -- evt_tag_str("error", dbi_error), > -- NULL); > -- return FALSE; > -- } > -+ GString *table = g_string_sized_new(32); > -+ log_template_format(self->table, msg, &self->template_options, LTZ_LOCAL, > 0, NULL, table); > - > -- self->failed_message_counter++; > -- return FALSE; > -+ if (!afsql_dd_validate_table(self, table)) > -+ { > -+ /* If validate table is FALSE then close the connection and wait > time_reopen time (next call) */ > -+ msg_error("Error checking table, disconnecting from database, trying > again shortly", > -+ evt_tag_int("time_reopen", self->time_reopen), > -+ NULL); > -+ g_string_free(table, TRUE); > -+ return NULL; > - } > - > -- msg_error("Multiple failures while inserting this record into the > database, message dropped", > -- evt_tag_int("attempts", self->num_retries), > -- NULL); > -- stats_counter_inc(self->dropped_messages); > -- log_msg_drop(msg, path_options); > -- self->failed_message_counter = 0; > -- return TRUE; > -+ return table; > - } > - > - static GString * > --afsql_dd_construct_query(AFSqlDestDriver *self, GString *table, > -- LogMessage *msg) > -+afsql_dd_build_insert_command(AFSqlDestDriver *self, LogMessage *msg, > GString *table) > - { > -- GString *value; > -- GString *query_string; > -- gint i; > -+ GString *insert_command = g_string_sized_new(256); > -+ GString *value = g_string_sized_new(512); > -+ gint i, j; > - > -- value = g_string_sized_new(256); > -- query_string = g_string_sized_new(512); > -+ g_string_printf(insert_command, "INSERT INTO %s (", table->str); > - > -- g_string_printf(query_string, "INSERT INTO %s (", table->str); > - for (i = 0; i < self->fields_len; i++) > - { > -- g_string_append(query_string, self->fields[i].name); > -- if (i != self->fields_len - 1) > -- g_string_append(query_string, ", "); > -+ if ((self->fields[i].flags & AFSQL_FF_DEFAULT) == 0 && > self->fields[i].value != NULL) > -+ { > -+ g_string_append(insert_command, self->fields[i].name); > -+ > -+ j = i + 1; > -+ while (j < self->fields_len && (self->fields[j].flags & > AFSQL_FF_DEFAULT) == AFSQL_FF_DEFAULT) > -+ j++; > -+ > -+ if (j < self->fields_len) > -+ g_string_append(insert_command, ", "); > -+ } > - } > -- g_string_append(query_string, ") VALUES ("); > -+ > -+ g_string_append(insert_command, ") VALUES ("); > - > - for (i = 0; i < self->fields_len; i++) > - { > - gchar *quoted; > - > -- if (self->fields[i].value == NULL) > -- { > -- /* the config used the 'default' value for this column -> the > fields[i].value is NULL, use SQL default */ > -- g_string_append(query_string, "DEFAULT"); > -- } > -- else > -+ if ((self->fields[i].flags & AFSQL_FF_DEFAULT) == 0 && > self->fields[i].value != NULL) > - { > - log_template_format(self->fields[i].value, msg, > &self->template_options, LTZ_SEND, self->seq_num, NULL, value); > -- > - if (self->null_value && strcmp(self->null_value, value->str) == 0) > - { > -- g_string_append(query_string, "NULL"); > -+ g_string_append(insert_command, "NULL"); > - } > - else > - { > - dbi_conn_quote_string_copy(self->dbi_ctx, value->str, > "ed); > - if (quoted) > - { > -- g_string_append(query_string, quoted); > -+ g_string_append(insert_command, quoted); > - free(quoted); > - } > - else > - { > -- g_string_append(query_string, "''"); > -+ g_string_append(insert_command, "''"); > - } > - } > -- } > - > -- if (i != self->fields_len - 1) > -- g_string_append(query_string, ", "); > -+ j = i + 1; > -+ while (j < self->fields_len && (self->fields[j].flags & > AFSQL_FF_DEFAULT) == AFSQL_FF_DEFAULT) > -+ j++; > -+ if (j < self->fields_len) > -+ g_string_append(insert_command, ", "); > -+ } > - } > -- g_string_append(query_string, ")"); > -+ > -+ g_string_append(insert_command, ")"); > - > - g_string_free(value, TRUE); > - > -- return query_string; > -+ return insert_command; > -+} > -+ > -+static inline gboolean > -+afsql_dd_is_transaction_handling_enabled(const AFSqlDestDriver *self) > -+{ > -+ return self->flush_lines_queued != -1; > -+} > -+ > -+static inline gboolean > -+afsql_dd_should_start_new_transaction(const AFSqlDestDriver *self) > -+{ > -+ return self->flush_lines_queued == 0; > -+} > -+ > -+static inline gboolean > -+afsql_dd_should_commit_transaction(const AFSqlDestDriver *self) > -+{ > -+ return afsql_dd_is_transaction_handling_enabled(self) && > self->flush_lines_queued == self->flush_lines; > -+} > -+ > -+static inline gboolean > -+afsql_dd_handle_insert_row_error_depending_on_connection_availability(AFSqlDestDriver > *self, > -+ > LogMessage *msg, > -+ > LogPathOptions *path_options) > -+{ > -+ const gchar *dbi_error, *error_message; > -+ > -+ if (dbi_conn_ping(self->dbi_ctx) == 1) > -+ { > -+ log_queue_push_head(self->queue, msg, path_options); > -+ return TRUE; > -+ } > -+ > -+ if (afsql_dd_is_transaction_handling_enabled(self)) > -+ { > -+ error_message = "SQL connection lost in the middle of a transaction," > -+ " rewinding backlog and starting again"; > -+ afsql_dd_handle_transaction_error(self); > -+ } > -+ else > -+ { > -+ error_message = "Error, no SQL connection after failed query attempt"; > -+ log_queue_push_head(self->queue, msg, path_options); > -+ } > -+ > -+ dbi_conn_error(self->dbi_ctx, &dbi_error); > -+ msg_error(error_message, > -+ evt_tag_str("type", self->type), > -+ evt_tag_str("host", self->host), > -+ evt_tag_str("port", self->port), > -+ evt_tag_str("username", self->user), > -+ evt_tag_str("database", self->database), > -+ evt_tag_str("error", dbi_error), > -+ NULL); > -+ > -+ return FALSE; > - } > - > - /** > -@@ -824,61 +875,93 @@ afsql_dd_construct_query(AFSqlDestDriver > - static gboolean > - afsql_dd_insert_db(AFSqlDestDriver *self) > - { > -- GString *table, *query_string; > -+ GString *table = NULL; > -+ GString *insert_command = NULL; > - LogMessage *msg; > - gboolean success; > - LogPathOptions path_options = LOG_PATH_OPTIONS_INIT; > - > -- afsql_dd_connect(self); > -+ if (!afsql_dd_ensure_initialized_connection(self)) > -+ return FALSE; > - > -- success = log_queue_pop_head(self->queue, &msg, &path_options, > (self->flags & AFSQL_DDF_EXPLICIT_COMMITS), FALSE); > -+ /* connection established, try to insert a message */ > -+ success = log_queue_pop_head(self->queue, &msg, &path_options, FALSE, > self->flags & AFSQL_DDF_EXPLICIT_COMMITS); > - if (!success) > - return TRUE; > - > - msg_set_context(msg); > - > -- table = afsql_dd_validate_table(self, msg); > -+ table = afsql_dd_ensure_accessible_database_table(self, msg); > -+ > - if (!table) > - { > -- /* If validate table is FALSE then close the connection and wait > time_reopen time (next call) */ > -- msg_error("Error checking table, disconnecting from database, trying > again shortly", > -- evt_tag_int("time_reopen", self->time_reopen), > -- NULL); > -- msg_set_context(NULL); > -- g_string_free(table, TRUE); > -- return afsql_dd_insert_fail_handler(self, msg, &path_options); > -+ success = FALSE; > -+ goto out; > - } > - > -- query_string = afsql_dd_construct_query(self, table, msg); > -+ if (afsql_dd_should_start_new_transaction(self) && > !afsql_dd_begin_txn(self)) > -+ { > -+ success = FALSE; > -+ goto out; > -+ } > - > -- if (self->flush_lines_queued == 0 && !afsql_dd_begin_txn(self)) > -- return FALSE; > -+ insert_command = afsql_dd_build_insert_command(self, msg, table); > -+ success = afsql_dd_run_query(self, insert_command->str, FALSE, NULL); > - > -- success = afsql_dd_run_query(self, query_string->str, FALSE, NULL); > - if (success && self->flush_lines_queued != -1) > - { > - self->flush_lines_queued++; > - > -- if (self->flush_lines && self->flush_lines_queued == > self->flush_lines && !afsql_dd_commit_txn(self)) > -- return FALSE; > -+ if (afsql_dd_should_commit_transaction(self) && > !afsql_dd_commit_txn(self)) > -+ { > -+ /* Assuming that in case of error, the queue is rewound by > afsql_dd_commit_txn() */ > -+ > -+ g_string_free(insert_command, TRUE); > -+ msg_set_context(NULL); > -+ > -+ return FALSE; > -+ } > - } > - > -- g_string_free(table, TRUE); > -- g_string_free(query_string, TRUE); > -+ out: > -+ > -+ if (table != NULL) > -+ g_string_free(table, TRUE); > -+ > -+ if (insert_command != NULL) > -+ g_string_free(insert_command, TRUE); > - > - msg_set_context(NULL); > - > -- if (!success) > -- return afsql_dd_insert_fail_handler(self, msg, &path_options); > -+ if (success) > -+ { > -+ log_msg_ack(msg, &path_options); > -+ log_msg_unref(msg); > -+ step_sequence_number(&self->seq_num); > -+ self->failed_message_counter = 0; > -+ } > -+ else > -+ { > -+ if (self->failed_message_counter < self->num_retries - 1) > -+ { > -+ if > (!afsql_dd_handle_insert_row_error_depending_on_connection_availability(self, > msg, &path_options)) > -+ return FALSE; > - > -- /* we only ACK if each INSERT is a separate transaction */ > -- if ((self->flags & AFSQL_DDF_EXPLICIT_COMMITS) == 0) > -- log_msg_ack(msg, &path_options); > -- log_msg_unref(msg); > -- step_sequence_number(&self->seq_num); > -- self->failed_message_counter = 0; > -+ self->failed_message_counter++; > -+ } > -+ else > -+ { > -+ msg_error("Multiple failures while inserting this record into the > database, message dropped", > -+ evt_tag_int("attempts", self->num_retries), > -+ NULL); > -+ stats_counter_inc(self->dropped_messages); > -+ log_msg_drop(msg, &path_options); > -+ self->failed_message_counter = 0; > -+ success = TRUE; > -+ } > -+ } > - > -- return TRUE; > -+ return success; > - } > - > - static void > -@@ -895,7 +978,7 @@ afsql_dd_message_became_available_in_the > - static void > - afsql_dd_wait_for_suspension_wakeup(AFSqlDestDriver *self) > - { > -- /* we got suspended, probably because of a connection error, > -+ /* we got suspended, probably because of a connection error, > - * during this time we only get wakeups if we need to be > - * terminated. */ > - if (!self->db_thread_terminate) > -@@ -974,8 +1057,7 @@ afsql_dd_database_thread(gpointer arg) > - > - afsql_dd_commit_txn(self); > - } > -- > -- exit: > -+exit: > - afsql_dd_disconnect(self); > - > - msg_verbose("Database thread finished", > --- > -1.8.4.1 > - > diff --git > a/meta-oe/recipes-support/syslog-ng/files/deinit-the-new-config-when-reverting-to-the.patch > > b/meta-oe/recipes-support/syslog-ng/files/deinit-the-new-config-when-reverting-to-the.patch > deleted file mode 100644 > index 484af7e..0000000 > --- > a/meta-oe/recipes-support/syslog-ng/files/deinit-the-new-config-when-reverting-to-the.patch > +++ /dev/null > @@ -1,36 +0,0 @@ > -From 86842df8bff5c97e44fc55d2fb7fc6c10f56ab84 Mon Sep 17 00:00:00 2001 > -From: Gergely Nagy <[email protected]> > -Date: Fri, 13 Dec 2013 13:46:15 +0100 > -Subject: [PATCH] mainloop: Deinit the new config when reverting to the old > one > - > -Upstream-Status: Backport > - > -When reloading, and the new config fails, deinit it before initializing > -the old config. This is so that conflicting things do not remain held by > -the half-initialized new config, while the old tries to take it > -over. (It also removed a couple of memory leaks, most likely.) > - > -The reason we can do this, is because cfg_tree_stop() (called by > -cfg_deinit()) goes over all the known nodes, and log_pipe_deinit() is > -also smart enough to not deinit a node that has not been inited before. > - > -Signed-off-by: Gergely Nagy <[email protected]> > ---- > - lib/mainloop.c | 1 + > - 1 file changed, 1 insertion(+) > - > -diff --git a/lib/mainloop.c b/lib/mainloop.c > -index 34655fa..e6fbb59 100644 > ---- a/lib/mainloop.c > -+++ b/lib/mainloop.c > -@@ -510,6 +510,7 @@ main_loop_reload_config_apply(void) > - { > - msg_error("Error initializing new configuration, reverting to old > config", NULL); > - cfg_persist_config_move(main_loop_new_config, main_loop_old_config); > -+ cfg_deinit(main_loop_new_config); > - if (!cfg_init(main_loop_old_config)) > - { > - /* hmm. hmmm, error reinitializing old configuration, we're hosed. > --- > -1.8.4.1 > - > diff --git > a/meta-oe/recipes-support/syslog-ng/files/free-global-LogTemplateOptions.patch > > b/meta-oe/recipes-support/syslog-ng/files/free-global-LogTemplateOptions.patch > deleted file mode 100644 > index d439a26..0000000 > --- > a/meta-oe/recipes-support/syslog-ng/files/free-global-LogTemplateOptions.patch > +++ /dev/null > @@ -1,30 +0,0 @@ > -From 3ef6ca8044260c77118edca6dead807a2edcb5ef Mon Sep 17 00:00:00 2001 > -From: Balazs Scheidler <[email protected]> > -Date: Thu, 31 Oct 2013 13:20:12 +0100 > -Subject: [PATCH] cfg: free global LogTemplateOptions > - > -Upstream-Status: Backport > - > -This fixes a potential memory leak when global template specific > -options were specified, such as local-time-zone(), send-time-zone() etc. > - > -Signed-off-by: Balazs Scheidler <[email protected]> > ---- > - lib/cfg.c | 1 + > - 1 file changed, 1 insertion(+) > - > -diff --git a/lib/cfg.c b/lib/cfg.c > -index 7f040b8..adeaaf8 100644 > ---- a/lib/cfg.c > -+++ b/lib/cfg.c > -@@ -411,6 +411,7 @@ cfg_free(GlobalConfig *self) > - g_free(self->proto_template_name); > - log_template_unref(self->file_template); > - log_template_unref(self->proto_template); > -+ log_template_options_destroy(&self->template_options); > - > - if (self->bad_hostname_compiled) > - regfree(&self->bad_hostname); > --- > -1.8.4.1 > - > diff --git > a/meta-oe/recipes-support/syslog-ng/files/logwriter-dont-allocate-a-new-buffer.patch > > b/meta-oe/recipes-support/syslog-ng/files/logwriter-dont-allocate-a-new-buffer.patch > deleted file mode 100644 > index 9e3d64b..0000000 > --- > a/meta-oe/recipes-support/syslog-ng/files/logwriter-dont-allocate-a-new-buffer.patch > +++ /dev/null > @@ -1,26 +0,0 @@ > -logwriter: Don't allocate a new buffer if fails to consume current item > - > -Upstream-Status: Pending > - > -Signed-off-by: Xufeng Zhang <[email protected]> > ---- > ---- a/lib/logwriter.c > -+++ b/lib/logwriter.c > -@@ -1010,7 +1010,7 @@ > - { > - status = log_proto_client_post(proto, (guchar *) > self->line_buffer->str, self->line_buffer->len, &consumed); > - > -- if (consumed) > -+ if (consumed && status != LPS_ERROR) > - log_writer_realloc_line_buffer(self); > - > - if (status == LPS_ERROR) > -@@ -1028,7 +1028,7 @@ > - NULL); > - consumed = TRUE; > - } > -- if (consumed) > -+ if (consumed && status != LPS_ERROR) > - { > - if (lm->flags & LF_LOCAL) > - step_sequence_number(&self->seq_num); > diff --git > a/meta-oe/recipes-support/syslog-ng/files/rewrite-expr-grammar.ym-Free-up-token.patch > > b/meta-oe/recipes-support/syslog-ng/files/rewrite-expr-grammar.ym-Free-up-token.patch > deleted file mode 100644 > index 1951af9..0000000 > --- > a/meta-oe/recipes-support/syslog-ng/files/rewrite-expr-grammar.ym-Free-up-token.patch > +++ /dev/null > @@ -1,17 +0,0 @@ > -rewrite-expr-grammar.ym: Free up token. > - > -Upsteam-Status: Backport > - > -Reported-by: Xufeng Zhang <[email protected]> > -Signed-off-by: Viktor Tusa <[email protected]> > ---- > ---- a/lib/rewrite/rewrite-expr-grammar.ym > -+++ b/lib/rewrite/rewrite-expr-grammar.ym > -@@ -78,6 +78,7 @@ > - > - $$ = log_template_new(configuration, $1); > - CHECK_ERROR(log_template_compile($$, $1, &error), @1, "Error > compiling template (%s)", error->message); > -+ free($1); > - } > - ; > - > diff --git > a/meta-oe/recipes-support/syslog-ng/files/still-free-the-unconsumed-item.patch > > b/meta-oe/recipes-support/syslog-ng/files/still-free-the-unconsumed-item.patch > deleted file mode 100644 > index ea18682..0000000 > --- > a/meta-oe/recipes-support/syslog-ng/files/still-free-the-unconsumed-item.patch > +++ /dev/null > @@ -1,90 +0,0 @@ > -From 365020c5c0823c91a8011e34597f970a7cfb4fb3 Mon Sep 17 00:00:00 2001 > -From: Tusa Viktor <[email protected]> > -Date: Wed, 23 Apr 2014 17:10:58 +0000 > -Subject: [PATCH] logwriter: still free the unconsumed item during reloading > - configuration > - > -Upstream-Status: Backport > - > -Otherwise we have no chance to free this stuff. > - > -Reported-by: Xufeng Zhang <[email protected]> > -Signed-off-by: Tusa Viktor <[email protected]> > -Signed-off-by: Gergely Nagy <[email protected]> > ---- > - lib/logproto/logproto-client.h | 2 +- > - lib/logproto/logproto-text-client.c | 11 +++++++++++ > - lib/logwriter.c | 9 +++++++-- > - 3 files changed, 19 insertions(+), 3 deletions(-) > - > -diff --git a/lib/logproto/logproto-client.h b/lib/logproto/logproto-client.h > -index 254ecf9..5adc917 100644 > ---- a/lib/logproto/logproto-client.h > -+++ b/lib/logproto/logproto-client.h > -@@ -47,7 +47,6 @@ void > log_proto_client_options_defaults(LogProtoClientOptions *options); > - void log_proto_client_options_init(LogProtoClientOptions *options, > GlobalConfig *cfg); > - void log_proto_client_options_destroy(LogProtoClientOptions *options); > - > -- > - struct _LogProtoClient > - { > - LogProtoStatus status; > -@@ -107,6 +106,7 @@ log_proto_client_reset_error(LogProtoClient *s) > - gboolean log_proto_client_validate_options(LogProtoClient *self); > - void log_proto_client_init(LogProtoClient *s, LogTransport *transport, > const LogProtoClientOptions *options); > - void log_proto_client_free(LogProtoClient *s); > -+void log_proto_client_free_method(LogProtoClient *s); > - > - #define DEFINE_LOG_PROTO_CLIENT(prefix) \ > - static gpointer \ > -diff --git a/lib/logproto/logproto-text-client.c > b/lib/logproto/logproto-text-client.c > -index 3248759..a5100f3 100644 > ---- a/lib/logproto/logproto-text-client.c > -+++ b/lib/logproto/logproto-text-client.c > -@@ -146,12 +146,23 @@ log_proto_text_client_post(LogProtoClient *s, guchar > *msg, gsize msg_len, gboole > - } > - > - void > -+log_proto_text_client_free(LogProtoClient *s) > -+{ > -+ LogProtoTextClient *self = (LogProtoTextClient *)s; > -+ if (self->partial_free) > -+ self->partial_free(self->partial); > -+ self->partial = NULL; > -+ log_proto_client_free_method(s); > -+}; > -+ > -+void > - log_proto_text_client_init(LogProtoTextClient *self, LogTransport > *transport, const LogProtoClientOptions *options) > - { > - log_proto_client_init(&self->super, transport, options); > - self->super.prepare = log_proto_text_client_prepare; > - self->super.flush = log_proto_text_client_flush; > - self->super.post = log_proto_text_client_post; > -+ self->super.free_fn = log_proto_text_client_free; > - self->super.transport = transport; > - self->next_state = -1; > - } > -diff --git a/lib/logwriter.c b/lib/logwriter.c > -index 3292e31..470bcdb 100644 > ---- a/lib/logwriter.c > -+++ b/lib/logwriter.c > -@@ -1063,8 +1063,13 @@ log_writer_flush(LogWriter *self, LogWriterFlushMode > flush_mode) > - } > - else > - { > -- /* push back to the queue */ > -- log_queue_push_head(self->queue, lm, &path_options); > -+ if (flush_mode == LW_FLUSH_QUEUE) > -+ log_msg_unref(lm); > -+ else > -+ { > -+ /* push back to the queue */ > -+ log_queue_push_head(self->queue, lm, &path_options); > -+ } > - msg_set_context(NULL); > - log_msg_refcache_stop(); > - break; > --- > -1.7.10.4 > - > diff --git > a/meta-oe/recipes-support/syslog-ng/files/syslog-ng-verify-the-list-before-del.patch > > b/meta-oe/recipes-support/syslog-ng/files/syslog-ng-verify-the-list-before-del.patch > deleted file mode 100644 > index e8119b8..0000000 > --- > a/meta-oe/recipes-support/syslog-ng/files/syslog-ng-verify-the-list-before-del.patch > +++ /dev/null > @@ -1,38 +0,0 @@ > -Verify the validity of the pointer before delete it > - > -Otherwise, we got a crash at logqueue-fifo.c:344 > - 344 iv_list_del(&node->list); > - > -Upstream-Status: Pending > - > -Signed-off-by: Xufeng Zhang <[email protected]> > ---- > ---- a/lib/logqueue-fifo.c > -+++ b/lib/logqueue-fifo.c > -@@ -339,15 +339,18 @@ > - *msg = node->msg; > - path_options->ack_needed = node->ack_needed; > - self->qoverflow_output_len--; > -- if (!push_to_backlog) > -+ if ((&node->list) && (&node->list)->next && (&node->list)->prev) > - { > -- iv_list_del(&node->list); > -- log_msg_free_queue_node(node); > -- } > -- else > -- { > -- iv_list_del_init(&node->list); > -- } > -+ if (!push_to_backlog) > -+ { > -+ iv_list_del(&node->list); > -+ log_msg_free_queue_node(node); > -+ } > -+ else > -+ { > -+ iv_list_del_init(&node->list); > -+ } > -+ } > - } > - else > - { > -- > 1.9.1 > -- _______________________________________________ Openembedded-devel mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-devel
