[SCM] Samba Shared Repository - branch master updated

Martin Schwenke martins at samba.org
Tue Jun 13 11:23:02 UTC 2017


The branch, master has been updated
       via  40cc7a1 ctdb-recovery: Log messages at various debug levels
       via  dac0751 ctdb-scripts: Compact server-end TCP connection killing output
       via  d79c601 ctdb-common: Log a count of dropped messages with non-blocking logging
       via  323291a ctdb-tests: Add more NFS eventscript tests for call-out failures
       via  22f2068 ctdb-scripts: NFS call-out failures should cause event failure
      from  67095c7 libbreplace: compatibility fix for AIX

https://git.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 40cc7a1eb339cf45d2b3e121832a89f61dd1776f
Author: Amitay Isaacs <amitay at gmail.com>
Date:   Thu Jun 8 18:22:17 2017 +1000

    ctdb-recovery: Log messages at various debug levels
    
    This avoids spamming the logs during recovery at NOTICE level.
    
    Signed-off-by: Amitay Isaacs <amitay at gmail.com>
    Reviewed-by: Martin Schwenke <martin at meltin.net>
    
    Autobuild-User(master): Martin Schwenke <martins at samba.org>
    Autobuild-Date(master): Tue Jun 13 13:22:09 CEST 2017 on sn-devel-144

commit dac075129b93dd0ecf0c59189f8e8ef294ab65c4
Author: Martin Schwenke <martin at meltin.net>
Date:   Fri Jun 9 14:34:56 2017 +1000

    ctdb-scripts: Compact server-end TCP connection killing output
    
    When thousands of connections are being killed the logs are flooded
    with information about connections that should be killed.  When some
    connections are not killed then the number not killed is printed.
    This is the wrong way around!  When debugging "fail-back" problems, it
    is important to know details of connections that were *not* killed.
    It is almost never important to know the full list of all connections
    that were *supposed* to be killed.
    
    Instead, print a summary showing how many connections of the total
    were killed.  If any were not killed then print a list of remaining
    connections.
    
    Update unit tests: infrastructure for fake TCP connections, existing,
    test cases, add new test cases.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>
    Reviewed-by: Amitay Isaacs <amitay at gmail.com>

commit d79c601fde6ec97e0463d42a133c5ec42193b025
Author: Martin Schwenke <martin at meltin.net>
Date:   Thu Jun 1 21:13:58 2017 +1000

    ctdb-common: Log a count of dropped messages with non-blocking logging
    
    The non-blocking logging variants can currently silently drop messages
    when the socket queue fills.
    
    In this case, count the number of dropped messages and attempt to log
    a message about dropped log messages when the next message is logged.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>
    Reviewed-by: Amitay Isaacs <amitay at gmail.com>

commit 323291a46e26e0493d43052550e57e2989b83b97
Author: Martin Schwenke <martin at meltin.net>
Date:   Fri Jun 9 10:57:28 2017 +1000

    ctdb-tests: Add more NFS eventscript tests for call-out failures
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=12837
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>
    Reviewed-by: Amitay Isaacs <amitay at gmail.com>

commit 22f2068d456759612d340fdcc56276f39a710426
Author: Martin Schwenke <martin at meltin.net>
Date:   Thu Jun 8 14:45:43 2017 +1000

    ctdb-scripts: NFS call-out failures should cause event failure
    
    Failures in startup/shutdown/releaseip/takeip are currently
    incorrectly ignored.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=12837
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>
    Reviewed-by: Amitay Isaacs <amitay at gmail.com>

-----------------------------------------------------------------------

Summary of changes:
 ctdb/common/logging.c                              |  58 ++++-
 ctdb/config/events.d/60.nfs                        |   8 +-
 ctdb/config/functions                              |  22 +-
 ctdb/server/ctdb_recovery_helper.c                 | 281 +++++++++++----------
 ....nfs.monitor.107.sh => 06.nfs.releaseip.001.sh} |   0
 ctdb/tests/eventscripts/06.nfs.releaseip.002.sh    |  12 +
 ...{60.nfs.monitor.107.sh => 06.nfs.takeip.001.sh} |   0
 ctdb/tests/eventscripts/06.nfs.takeip.002.sh       |  12 +
 .../eventscripts/10.interface.releaseip.010.sh     |  24 +-
 .../eventscripts/10.interface.releaseip.011.sh     |  39 +--
 .../eventscripts/10.interface.releaseip.012.sh     |  30 +++
 .../eventscripts/10.interface.releaseip.013.sh     |  35 +++
 ctdb/tests/eventscripts/60.nfs.monitor.109.sh      |  12 +
 ....nfs.monitor.107.sh => 60.nfs.releaseip.001.sh} |   0
 ctdb/tests/eventscripts/60.nfs.releaseip.002.sh    |  12 +
 ...0.nfs.monitor.107.sh => 60.nfs.shutdown.001.sh} |   0
 ctdb/tests/eventscripts/60.nfs.shutdown.002.sh     |  12 +
 ...60.nfs.monitor.107.sh => 60.nfs.startup.001.sh} |   0
 ctdb/tests/eventscripts/60.nfs.startup.002.sh      |  12 +
 ...{60.nfs.monitor.107.sh => 60.nfs.takeip.001.sh} |   0
 ctdb/tests/eventscripts/60.nfs.takeip.002.sh       |  12 +
 ctdb/tests/eventscripts/scripts/local.sh           |  39 ++-
 ctdb/tests/eventscripts/stubs/ss                   |   4 +
 23 files changed, 428 insertions(+), 196 deletions(-)
 copy ctdb/tests/eventscripts/{60.nfs.monitor.107.sh => 06.nfs.releaseip.001.sh} (100%)
 create mode 100755 ctdb/tests/eventscripts/06.nfs.releaseip.002.sh
 copy ctdb/tests/eventscripts/{60.nfs.monitor.107.sh => 06.nfs.takeip.001.sh} (100%)
 create mode 100755 ctdb/tests/eventscripts/06.nfs.takeip.002.sh
 create mode 100755 ctdb/tests/eventscripts/10.interface.releaseip.012.sh
 create mode 100755 ctdb/tests/eventscripts/10.interface.releaseip.013.sh
 create mode 100755 ctdb/tests/eventscripts/60.nfs.monitor.109.sh
 copy ctdb/tests/eventscripts/{60.nfs.monitor.107.sh => 60.nfs.releaseip.001.sh} (100%)
 create mode 100755 ctdb/tests/eventscripts/60.nfs.releaseip.002.sh
 copy ctdb/tests/eventscripts/{60.nfs.monitor.107.sh => 60.nfs.shutdown.001.sh} (100%)
 create mode 100755 ctdb/tests/eventscripts/60.nfs.shutdown.002.sh
 copy ctdb/tests/eventscripts/{60.nfs.monitor.107.sh => 60.nfs.startup.001.sh} (100%)
 create mode 100755 ctdb/tests/eventscripts/60.nfs.startup.002.sh
 copy ctdb/tests/eventscripts/{60.nfs.monitor.107.sh => 60.nfs.takeip.001.sh} (100%)
 create mode 100755 ctdb/tests/eventscripts/60.nfs.takeip.002.sh


Changeset truncated at 500 lines:

diff --git a/ctdb/common/logging.c b/ctdb/common/logging.c
index 0e3efe0..f68c1b9 100644
--- a/ctdb/common/logging.c
+++ b/ctdb/common/logging.c
@@ -239,6 +239,7 @@ struct syslog_log_state {
 	/* RFC3164 says: The total length of the packet MUST be 1024
 	   bytes or less. */
 	char buffer[1024];
+	unsigned int dropped_count;
 };
 
 /* Format messages as per RFC3164
@@ -307,19 +308,66 @@ static void syslog_log(void *private_data, int level, const char *msg)
 	syslog(debug_level_to_priority(level), "%s", msg);
 }
 
-static void syslog_log_sock(void *private_data, int level, const char *msg)
+static int syslog_log_sock_maybe(struct syslog_log_state *state,
+				 int level, const char *msg)
 {
-	struct syslog_log_state *state = talloc_get_type_abort(
-		private_data, struct syslog_log_state);
 	int n;
+	ssize_t ret;
 
 	n = state->format(level, state, msg, state->buffer,
 			  sizeof(state->buffer));
 	if (n == -1) {
-		return;
+		return E2BIG;
+	}
+
+	do {
+		ret = write(state->fd, state->buffer, n);
+	} while (ret == -1 && errno == EINTR);
+
+	if (ret == -1) {
+		return errno;
+	}
+
+	return 0;
+
+}
+static void syslog_log_sock(void *private_data, int level, const char *msg)
+{
+	struct syslog_log_state *state = talloc_get_type_abort(
+		private_data, struct syslog_log_state);
+	int ret;
+
+	if (state->dropped_count > 0) {
+		char t[64] = { 0 };
+		snprintf(t, sizeof(t),
+			 "[Dropped %u log messages]\n",
+			 state->dropped_count);
+		t[sizeof(t)-1] = '\0';
+		ret = syslog_log_sock_maybe(state, level, t);
+		if (ret == EAGAIN || ret == EWOULDBLOCK) {
+			state->dropped_count++;
+			/*
+			 * If above failed then actually drop the
+			 * message that would be logged below, since
+			 * it would have been dropped anyway and it is
+			 * also likely to fail.  Falling through and
+			 * attempting to log the message also means
+			 * that the dropped message count will be
+			 * logged out of order.
+			 */
+			return;
+		}
+		if (ret != 0) {
+			/* Silent failure on any other error */
+			return;
+		}
+		state->dropped_count = 0;
 	}
 
-	sys_write_v(state->fd, state->buffer, n);
+	ret = syslog_log_sock_maybe(state, level, msg);
+	if (ret == EAGAIN || ret == EWOULDBLOCK) {
+		state->dropped_count++;
+	}
 }
 
 static int syslog_log_setup_syslog(TALLOC_CTX *mem_ctx, const char *app_name)
diff --git a/ctdb/config/events.d/60.nfs b/ctdb/config/events.d/60.nfs
index eaa260b..9b64d6e 100755
--- a/ctdb/config/events.d/60.nfs
+++ b/ctdb/config/events.d/60.nfs
@@ -256,20 +256,20 @@ is_ctdb_managed_service || exit 0
 
 case "$1" in
 startup)
-	nfs_callout "$@"
+	nfs_callout "$@" || exit $?
 	;;
 
 shutdown)
-	 nfs_callout "$@"
+	nfs_callout "$@" || exit $?
 	;;
 
 takeip)
-	nfs_callout "$@"
+	nfs_callout "$@" || exit $?
 	ctdb_service_set_reconfigure
 	;;
 
 releaseip)
-	nfs_callout "$@"
+	nfs_callout "$@" || exit $?
 	ctdb_service_set_reconfigure
 	;;
 
diff --git a/ctdb/config/functions b/ctdb/config/functions
index f453968..2c630bd 100755
--- a/ctdb/config/functions
+++ b/ctdb/config/functions
@@ -414,7 +414,6 @@ kill_tcp_connections ()
 		139|445) __oneway=true ;;
 	    esac
 
-	    echo "Killing TCP connection $_src $_dst"
 	    _connections="${_connections}${_nl}${_src} ${_dst}"
 	    if ! $__oneway ; then
 		_connections="${_connections}${_nl}${_dst} ${_src}"
@@ -433,15 +432,22 @@ kill_tcp_connections ()
 		return
 	}
 
-	_remaining=$(get_tcp_connections_for_ip "$_ip" | wc -l)
-
-	if [ "$_remaining" -eq 0 ] ; then
-		echo "Killed $_killcount TCP connections to released IP $_ip"
-		return
+	_connections=$(get_tcp_connections_for_ip "$_ip")
+	if [ -z "$_connections" ] ; then
+		_remaining=0
+	else
+		_remaining=$(echo "$_connections" | wc -l)
 	fi
 
-	_t="${_remaining}/${_killcount}"
-	echo "Failed to kill TCP connections for IP $_ip (${_t} remaining)"
+	_actually_killed=$((_killcount - _remaining))
+
+	_t="${_actually_killed}/${_killcount}"
+	echo "Killed ${_t} TCP connections to released IP $_ip"
+
+	if [ -n "$_connections" ] ; then
+		echo "Remaining connections:"
+		echo "$_connections" | sed -e 's|^|  |'
+	fi
     }
 }
 
diff --git a/ctdb/server/ctdb_recovery_helper.c b/ctdb/server/ctdb_recovery_helper.c
index 0222aa0..ab5dccc 100644
--- a/ctdb/server/ctdb_recovery_helper.c
+++ b/ctdb/server/ctdb_recovery_helper.c
@@ -43,8 +43,6 @@ static int recover_timeout = 30;
 
 #define TIMEOUT()	timeval_current_ofs(recover_timeout, 0)
 
-#define LOG(...)	DEBUG(DEBUG_NOTICE, (__VA_ARGS__))
-
 /*
  * Utility functions
  */
@@ -119,7 +117,7 @@ static struct recdb_context *recdb_create(TALLOC_CTX *mem_ctx, uint32_t db_id,
 				  tdb_flags, O_RDWR|O_CREAT|O_EXCL, 0600);
 	if (recdb->db == NULL) {
 		talloc_free(recdb);
-		LOG("failed to create recovery db %s\n", recdb->db_path);
+		D_ERR("failed to create recovery db %s\n", recdb->db_path);
 		return NULL;
 	}
 
@@ -316,8 +314,8 @@ static struct ctdb_rec_buffer *recdb_records(struct recdb_context *recdb,
 	ret = tdb_traverse_read(recdb_tdb(recdb), recdb_records_traverse,
 				&state);
 	if (ret == -1 || state.failed) {
-		LOG("Failed to marshall recovery records for %s\n",
-		    recdb_name(recdb));
+		D_ERR("Failed to marshall recovery records for %s\n",
+		      recdb_name(recdb));
 		TALLOC_FREE(state.recbuf);
 		return NULL;
 	}
@@ -356,8 +354,8 @@ static int recdb_file_traverse(struct tdb_context *tdb,
 	if (ctdb_rec_buffer_len(state->recbuf) > state->max_size) {
 		ret = ctdb_rec_buffer_write(state->recbuf, state->fd);
 		if (ret != 0) {
-			LOG("Failed to collect recovery records for %s\n",
-			    recdb_name(state->recdb));
+			D_ERR("Failed to collect recovery records for %s\n",
+			      recdb_name(state->recdb));
 			state->failed = true;
 			return ret;
 		}
@@ -404,15 +402,15 @@ static int recdb_file(struct recdb_context *recdb, TALLOC_CTX *mem_ctx,
 
 	ret = ctdb_rec_buffer_write(state.recbuf, fd);
 	if (ret != 0) {
-		LOG("Failed to collect recovery records for %s\n",
-		    recdb_name(recdb));
+		D_ERR("Failed to collect recovery records for %s\n",
+		      recdb_name(recdb));
 		TALLOC_FREE(state.recbuf);
 		return -1;
 	}
 	state.num_buffers += 1;
 
-	LOG("Wrote %d buffers of recovery records for %s\n",
-	    state.num_buffers, recdb_name(recdb));
+	D_DEBUG("Wrote %d buffers of recovery records for %s\n",
+		state.num_buffers, recdb_name(recdb));
 
 	return state.num_buffers;
 }
@@ -508,14 +506,14 @@ static void pull_database_handler(uint64_t srvid, TDB_DATA data,
 
 	ret = ctdb_rec_buffer_pull(data.dptr, data.dsize, state, &recbuf);
 	if (ret != 0) {
-		LOG("Invalid data received for DB_PULL messages\n");
+		D_ERR("Invalid data received for DB_PULL messages\n");
 		return;
 	}
 
 	if (recbuf->db_id != recdb_id(state->recdb)) {
 		talloc_free(recbuf);
-		LOG("Invalid dbid:%08x for DB_PULL messages for %s\n",
-		    recbuf->db_id, recdb_name(state->recdb));
+		D_ERR("Invalid dbid:%08x for DB_PULL messages for %s\n",
+		      recbuf->db_id, recdb_name(state->recdb));
 		return;
 	}
 
@@ -523,8 +521,8 @@ static void pull_database_handler(uint64_t srvid, TDB_DATA data,
 			   recbuf);
 	if (! status) {
 		talloc_free(recbuf);
-		LOG("Failed to add records to recdb for %s\n",
-		    recdb_name(state->recdb));
+		D_ERR("Failed to add records to recdb for %s\n",
+		      recdb_name(state->recdb));
 		return;
 	}
 
@@ -546,8 +544,8 @@ static void pull_database_register_done(struct tevent_req *subreq)
 	status = ctdb_client_set_message_handler_recv(subreq, &ret);
 	TALLOC_FREE(subreq);
 	if (! status) {
-		LOG("failed to set message handler for DB_PULL for %s\n",
-		    recdb_name(state->recdb));
+		D_ERR("Failed to set message handler for DB_PULL for %s\n",
+		      recdb_name(state->recdb));
 		tevent_req_error(req, ret);
 		return;
 	}
@@ -579,8 +577,8 @@ static void pull_database_old_done(struct tevent_req *subreq)
 	status = ctdb_client_control_recv(subreq, &ret, state, &reply);
 	TALLOC_FREE(subreq);
 	if (! status) {
-		LOG("control PULL_DB failed for %s on node %u, ret=%d\n",
-		    recdb_name(state->recdb), state->pnn, ret);
+		D_ERR("control PULL_DB failed for %s on node %u, ret=%d\n",
+		      recdb_name(state->recdb), state->pnn, ret);
 		tevent_req_error(req, ret);
 		return;
 	}
@@ -603,8 +601,8 @@ static void pull_database_old_done(struct tevent_req *subreq)
 	state->num_records = recbuf->count;
 	talloc_free(recbuf);
 
-	LOG("Pulled %d records for db %s from node %d\n",
-	    state->num_records, recdb_name(state->recdb), state->pnn);
+	D_INFO("Pulled %d records for db %s from node %d\n",
+	       state->num_records, recdb_name(state->recdb), state->pnn);
 
 	tevent_req_done(req);
 }
@@ -623,8 +621,8 @@ static void pull_database_new_done(struct tevent_req *subreq)
 	status = ctdb_client_control_recv(subreq, &ret, state, &reply);
 	TALLOC_FREE(subreq);
 	if (! status) {
-		LOG("control DB_PULL failed for %s on node %u, ret=%d\n",
-		    recdb_name(state->recdb), state->pnn, ret);
+		D_ERR("control DB_PULL failed for %s on node %u, ret=%d\n",
+		      recdb_name(state->recdb), state->pnn, ret);
 		tevent_req_error(req, ret);
 		return;
 	}
@@ -632,14 +630,15 @@ static void pull_database_new_done(struct tevent_req *subreq)
 	ret = ctdb_reply_control_db_pull(reply, &num_records);
 	talloc_free(reply);
 	if (num_records != state->num_records) {
-		LOG("mismatch (%u != %u) in DB_PULL records for %s\n",
-		    num_records, state->num_records, recdb_name(state->recdb));
+		D_ERR("mismatch (%u != %u) in DB_PULL records for db %s\n",
+		      num_records, state->num_records,
+		      recdb_name(state->recdb));
 		tevent_req_error(req, EIO);
 		return;
 	}
 
-	LOG("Pulled %d records for db %s from node %d\n",
-	    state->num_records, recdb_name(state->recdb), state->pnn);
+	D_INFO("Pulled %d records for db %s from node %d\n",
+	       state->num_records, recdb_name(state->recdb), state->pnn);
 
 	subreq = ctdb_client_remove_message_handler_send(
 					state, state->ev, state->client,
@@ -662,8 +661,8 @@ static void pull_database_unregister_done(struct tevent_req *subreq)
 	status = ctdb_client_remove_message_handler_recv(subreq, &ret);
 	TALLOC_FREE(subreq);
 	if (! status) {
-		LOG("failed to remove message handler for DB_PULL for %s\n",
-		    recdb_name(state->recdb));
+		D_ERR("failed to remove message handler for DB_PULL for db %s\n",
+		      recdb_name(state->recdb));
 		tevent_req_error(req, ret);
 		return;
 	}
@@ -750,9 +749,9 @@ static void push_database_old_push_done(struct tevent_req *subreq)
 	status = ctdb_client_control_recv(subreq, &ret, NULL, NULL);
 	TALLOC_FREE(subreq);
 	if (! status) {
-		LOG("control PUSH_DB failed for db %s on node %u, ret=%d\n",
-		    recdb_name(state->recdb), state->pnn_list[state->index],
-		    ret);
+		D_ERR("control PUSH_DB failed for db %s on node %u, ret=%d\n",
+		      recdb_name(state->recdb), state->pnn_list[state->index],
+		      ret);
 		tevent_req_error(req, ret);
 		return;
 	}
@@ -897,12 +896,13 @@ static void push_database_new_started(struct tevent_req *subreq)
 						       state->count,
 						       err_list, &pnn);
 		if (ret2 != 0) {
-			LOG("control DB_PUSH_START failed for db %s "
-			    "on node %u, ret=%d\n",
-			    recdb_name(state->recdb), pnn, ret2);
+			D_ERR("control DB_PUSH_START failed for db %s"
+			      " on node %u, ret=%d\n",
+			      recdb_name(state->recdb), pnn, ret2);
 		} else {
-			LOG("control DB_PUSH_START failed for db %s, ret=%d\n",
-			    recdb_name(state->recdb), ret);
+			D_ERR("control DB_PUSH_START failed for db %s,"
+			      " ret=%d\n",
+			      recdb_name(state->recdb), ret);
 		}
 		talloc_free(err_list);
 
@@ -958,8 +958,9 @@ static void push_database_new_send_msg(struct tevent_req *req)
 	message.srvid = state->srvid;
 	message.data.data = data;
 
-	LOG("Pushing buffer %d with %d records for %s\n",
-	    state->num_buffers_sent, recbuf->count, recdb_name(state->recdb));
+	D_DEBUG("Pushing buffer %d with %d records for db %s\n",
+		state->num_buffers_sent, recbuf->count,
+		recdb_name(state->recdb));
 
 	subreq = ctdb_client_message_multi_send(state, state->ev,
 						state->client,
@@ -988,8 +989,8 @@ static void push_database_new_send_done(struct tevent_req *subreq)
 	status = ctdb_client_message_multi_recv(subreq, &ret, NULL, NULL);
 	TALLOC_FREE(subreq);
 	if (! status) {
-		LOG("Sending recovery records failed for %s\n",
-		    recdb_name(state->recdb));
+		D_ERR("Sending recovery records failed for %s\n",
+		      recdb_name(state->recdb));
 		tevent_req_error(req, ret);
 		return;
 	}
@@ -1022,11 +1023,13 @@ static void push_database_new_confirmed(struct tevent_req *subreq)
 						       state->count, err_list,
 						       &pnn);
 		if (ret2 != 0) {
-			LOG("control DB_PUSH_CONFIRM failed for %s on node %u,"
-			    " ret=%d\n", recdb_name(state->recdb), pnn, ret2);
+			D_ERR("control DB_PUSH_CONFIRM failed for db %s"
+			      " on node %u, ret=%d\n",
+			      recdb_name(state->recdb), pnn, ret2);
 		} else {
-			LOG("control DB_PUSH_CONFIRM failed for %s, ret=%d\n",
-			    recdb_name(state->recdb), ret);
+			D_ERR("control DB_PUSH_CONFIRM failed for db %s,"
+			      " ret=%d\n",
+			      recdb_name(state->recdb), ret);
 		}
 		tevent_req_error(req, ret);
 		return;
@@ -1041,9 +1044,9 @@ static void push_database_new_confirmed(struct tevent_req *subreq)
 		}
 
 		if (num_records != state->num_records) {
-			LOG("Node %u received %d of %d records for %s\n",
-			    state->pnn_list[i], num_records,
-			    state->num_records, recdb_name(state->recdb));
+			D_ERR("Node %u received %d of %d records for %s\n",
+			      state->pnn_list[i], num_records,
+			      state->num_records, recdb_name(state->recdb));
 			tevent_req_error(req, EPROTO);
 			return;
 		}
@@ -1051,8 +1054,8 @@ static void push_database_new_confirmed(struct tevent_req *subreq)
 
 	talloc_free(reply);
 
-	LOG("Pushed %d records for db %s\n",
-	    state->num_records, recdb_name(state->recdb));
+	D_INFO("Pushed %d records for db %s\n",
+	       state->num_records, recdb_name(state->recdb));
 
 	tevent_req_done(req);
 }
@@ -1273,11 +1276,13 @@ static void collect_highseqnum_db_seqnum_done(struct tevent_req *subreq)
 						       state->count, err_list,
 						       &pnn);
 		if (ret2 != 0) {
-			LOG("control GET_DB_SEQNUM failed for %s on node %u,"
-			    " ret=%d\n", recdb_name(state->recdb), pnn, ret2);
+			D_ERR("control GET_DB_SEQNUM failed for db %s"
+			      " on node %u, ret=%d\n",
+			      recdb_name(state->recdb), pnn, ret2);
 		} else {
-			LOG("control GET_DB_SEQNUM failed for %s, ret=%d\n",
-			    recdb_name(state->recdb), ret);
+			D_ERR("control GET_DB_SEQNUM failed for db %s,"
+			      " ret=%d\n",
+			      recdb_name(state->recdb), ret);
 		}
 		tevent_req_error(req, ret);
 		return;
@@ -1300,8 +1305,8 @@ static void collect_highseqnum_db_seqnum_done(struct tevent_req *subreq)
 
 	talloc_free(reply);
 
-	LOG("Pull persistent db %s from node %d with seqnum 0x%"PRIx64"\n",
-	    recdb_name(state->recdb), state->max_pnn, max_seqnum);
+	D_INFO("Pull persistent db %s from node %d with seqnum 0x%"PRIx64"\n",
+	       recdb_name(state->recdb), state->max_pnn, max_seqnum);
 
 	subreq = pull_database_send(state, state->ev, state->client,
 				    state->max_pnn,
@@ -1536,16 +1541,16 @@ static void recover_db_name_done(struct tevent_req *subreq)
 	status = ctdb_client_control_recv(subreq, &ret, state, &reply);
 	TALLOC_FREE(subreq);
 	if (! status) {
-		LOG("control GET_DBNAME failed for db=0x%x, ret=%d\n",
-		    state->db_id, ret);
+		D_ERR("control GET_DBNAME failed for db=0x%x, ret=%d\n",
+		      state->db_id, ret);
 		tevent_req_error(req, ret);
 		return;
 	}
 
 	ret = ctdb_reply_control_get_dbname(reply, state, &state->db_name);
 	if (ret != 0) {
-		LOG("control GET_DBNAME failed for db=0x%x, ret=%d\n",
-		    state->db_id, ret);
+		D_ERR("control GET_DBNAME failed for db=0x%x, ret=%d\n",
+		      state->db_id, ret);
 		tevent_req_error(req, EPROTO);
 		return;
 	}
@@ -1576,16 +1581,16 @@ static void recover_db_path_done(struct tevent_req *subreq)
 	status = ctdb_client_control_recv(subreq, &ret, state, &reply);
 	TALLOC_FREE(subreq);
 	if (! status) {
-		LOG("control GETDBPATH failed for db %s, ret=%d\n",
-		    state->db_name, ret);
+		D_ERR("control GETDBPATH failed for db %s, ret=%d\n",
+		      state->db_name, ret);
 		tevent_req_error(req, ret);
 		return;
 	}
 
 	ret = ctdb_reply_control_getdbpath(reply, state, &state->db_path);
 	if (ret != 0) {
-		LOG("control GETDBPATH failed for db %s, ret=%d\n",
-		    state->db_name, ret);
+		D_ERR("control GETDBPATH failed for db %s, ret=%d\n",
+		      state->db_name, ret);
 		tevent_req_error(req, EPROTO);
 		return;
 	}
@@ -1625,11 +1630,12 @@ static void recover_db_freeze_done(struct tevent_req *subreq)
 						       state->count, err_list,
 						       &pnn);
 		if (ret2 != 0) {
-			LOG("control FREEZE_DB failed for db %s on node %u,"
-			    " ret=%d\n", state->db_name, pnn, ret2);
+			D_ERR("control FREEZE_DB failed for db %s"
+			      " on node %u, ret=%d\n",
+			      state->db_name, pnn, ret2);


-- 
Samba Shared Repository



More information about the samba-cvs mailing list