[SCM] CTDB repository - branch 2.5 updated - ctdb-2.5-24-g8b61c04

Amitay Isaacs amitay at samba.org
Thu Nov 14 08:08:36 MST 2013


The branch, 2.5 has been updated
       via  8b61c049dbf21983ccfa7573429a48946ee0630d (commit)
       via  4a0ec35758098269012b108c37783f582397e197 (commit)
       via  fd30f14a548b3902f7783a9e19a383d523489363 (commit)
       via  ad682e05f5765530ec273df8df45cde6c523322a (commit)
       via  60140993c33e2202cabc59798b955bc7374b129a (commit)
       via  7425b9cdf2ddadbb51bbbe18669e5272b34568ea (commit)
       via  9f97865bc91c60a8744a99c668434bf105f8e971 (commit)
       via  1c44040d5d043c8f40dd22d5b94aac7f173706c5 (commit)
       via  e58ef9a9bc080e39bebea9e93abcd696fa29ea36 (commit)
       via  c8b4340b7d01fd8e17d3607470adbd7774bbe63b (commit)
       via  26fb6b3837297522034b8aa4734584294b8b49f2 (commit)
       via  95f19f402f180380e14967f75abebc4a8f30b7da (commit)
       via  585418fa418f65f39dcc1d8163acbbfa52a174e7 (commit)
       via  f97a858923ad0be43713dd8214595c43f3e3da4a (commit)
       via  817f4678e7e68b5a9663a1dda29fcb49339935d1 (commit)
       via  1dc1802607f0f6b0308a4abcbb4c85d318e99e39 (commit)
       via  6f07842d0d0c986cf1336f5cb1cc6eced741201c (commit)
       via  efd62609e7781acfb590245f028e96ba41fd7574 (commit)
       via  bd3b12765dd25dc35a6b0e0baf6d9e531329738f (commit)
       via  528488c29de6e5e9665ca1d73d060b7f50763b10 (commit)
      from  9381c33dfd40192b7532d942059c2959dfae059d (commit)

http://gitweb.samba.org/?p=ctdb.git;a=shortlog;h=2.5


- Log -----------------------------------------------------------------
commit 8b61c049dbf21983ccfa7573429a48946ee0630d
Author: Amitay Isaacs <amitay at gmail.com>
Date:   Wed Nov 13 17:45:25 2013 +1100

    client: Treat empty __db_sequence_number__ record as 0
    
    This fixes the issue of transaction commit failing due to an empty
    __db_sequence_number__ record in persistent database left by previous
    cancelled transaction.
    
    Signed-off-by: Amitay Isaacs <amitay at gmail.com>

commit 4a0ec35758098269012b108c37783f582397e197
Author: Martin Schwenke <martin at meltin.net>
Date:   Wed Nov 13 16:19:00 2013 +1100

    doc: Update ctdb.1 - primarily to add pdelete/pfetch/pstore/ptrans
    
    Also:
    
    * More <refentryinfo> above <refmeta> to make the XML valid.
    
    * Describe DB argument in introduction and use it for database
      commands.
    
    * Remove unnecessary format="linespecific" from <screen> tags, since
      it will not be allowed in DocBook 5.0.
    
    * Sort the items in "INTERNAL COMMANDS".
    
    * Update/simplify some command descriptions.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit fd30f14a548b3902f7783a9e19a383d523489363
Author: Martin Schwenke <martin at meltin.net>
Date:   Wed Nov 6 13:43:53 2013 +1100

    tools/ctdb: New ptrans command
    
    Also add test.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>
    Pair-programmed-with: Amitay Isaacs <amitay at gmail.com>

commit ad682e05f5765530ec273df8df45cde6c523322a
Author: Martin Schwenke <martin at meltin.net>
Date:   Wed Nov 13 14:04:17 2013 +1100

    onnode: New -i option to stop stdin from being closed
    
    This can be useful for piping data to onnode in certain circumstances.
    
    There are now also enough command-line options that they should
    definitely be alphabetically ordered.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit 60140993c33e2202cabc59798b955bc7374b129a
Author: Martin Schwenke <martin at meltin.net>
Date:   Wed Nov 13 14:13:52 2013 +1100

    tests/integration: try_command_on_node() shouldn't lose onnode options
    
    Currently it only passes the last (non -v) option seen.  It should
    pass them all.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit 7425b9cdf2ddadbb51bbbe18669e5272b34568ea
Author: Martin Schwenke <martin at meltin.net>
Date:   Tue Nov 12 15:16:49 2013 +1100

    recoverd: Fix backward compatibility for CTDB_SRVID_TAKEOVER_RUN
    
    When running a mixed version cluster, compatibility with older
    versions was was broken during recent refactorisation.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>
    Pair-programmed-with: Amitay Isaacs <amitay at gmail.com>

commit 9f97865bc91c60a8744a99c668434bf105f8e971
Author: Martin Schwenke <martin at meltin.net>
Date:   Mon Nov 4 12:56:39 2013 +1100

    scripts: debug_locks.sh should use configuration to find TDB location
    
    That is, don't use fixed paths.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>
    Pair-programmed-with: Amitay Isaacs <amitay at gmail.com>

commit 1c44040d5d043c8f40dd22d5b94aac7f173706c5
Author: Martin Schwenke <martin at meltin.net>
Date:   Fri Nov 1 14:34:20 2013 +1100

    recoverd: A node refuses to play against itself
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>
    Pair-programmed-with: Amitay Isaacs <amitay at gmail.com>

commit e58ef9a9bc080e39bebea9e93abcd696fa29ea36
Author: Martin Schwenke <martin at meltin.net>
Date:   Thu Nov 14 14:25:47 2013 +1100

    recoverd: Remove duplicate code to update flags during recovery
    
    This also happens earlier in do_recovery() and the nodemap is not
    updated after that, so this update is redundant.
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit c8b4340b7d01fd8e17d3607470adbd7774bbe63b
Author: Martin Schwenke <martin at meltin.net>
Date:   Thu Nov 14 14:14:10 2013 +1100

    build: Update to latest upstream config.guess
    
    Signed-off-by: Martin Schwenke <martin at meltin.net>

commit 26fb6b3837297522034b8aa4734584294b8b49f2
Author: Amitay Isaacs <amitay at gmail.com>
Date:   Wed Nov 13 15:25:46 2013 +1100

    tools/ctdb: Fix db commands when dbid is given instead of name
    
    Signed-off-by: Amitay Isaacs <amitay at gmail.com>

commit 95f19f402f180380e14967f75abebc4a8f30b7da
Author: Amitay Isaacs <amitay at gmail.com>
Date:   Wed Nov 13 14:33:31 2013 +1100

    tests: CTDB tool should always be invoked as $CTDB instad of ctdb
    
    $CTDB_TEST_WRAPPER is required only to run test functions or test binaries
    on remote nodes.  For running ctdb command, $CTDB is sufficient.
    
    Signed-off-by: Amitay Isaacs <amitay at gmail.com>

commit 585418fa418f65f39dcc1d8163acbbfa52a174e7
Author: Amitay Isaacs <amitay at gmail.com>
Date:   Wed Nov 13 14:25:59 2013 +1100

    tests: No need to run onnode in parallel for single node
    
    Signed-off-by: Amitay Isaacs <amitay at gmail.com>

commit f97a858923ad0be43713dd8214595c43f3e3da4a
Author: Amitay Isaacs <amitay at gmail.com>
Date:   Wed Nov 13 14:19:43 2013 +1100

    tests: Remove -q option to try_command_on_node
    
    This option is always passed to onnode by default.
    
    Signed-off-by: Amitay Isaacs <amitay at gmail.com>

commit 817f4678e7e68b5a9663a1dda29fcb49339935d1
Author: Amitay Isaacs <amitay at gmail.com>
Date:   Mon Nov 11 12:41:17 2013 +1100

    tests: Coverity fixes
    
    Signed-off-by: Amitay Isaacs <amitay at gmail.com>

commit 1dc1802607f0f6b0308a4abcbb4c85d318e99e39
Author: Amitay Isaacs <amitay at gmail.com>
Date:   Mon Nov 11 12:41:00 2013 +1100

    tcp: Coverity fixes
    
    Signed-off-by: Amitay Isaacs <amitay at gmail.com>

commit 6f07842d0d0c986cf1336f5cb1cc6eced741201c
Author: Amitay Isaacs <amitay at gmail.com>
Date:   Mon Nov 11 12:40:44 2013 +1100

    tools/ctdb: Coverity fixes
    
    Signed-off-by: Amitay Isaacs <amitay at gmail.com>

commit efd62609e7781acfb590245f028e96ba41fd7574
Author: Amitay Isaacs <amitay at gmail.com>
Date:   Mon Nov 11 12:40:28 2013 +1100

    common: Coverity fixes
    
    Signed-off-by: Amitay Isaacs <amitay at gmail.com>

commit bd3b12765dd25dc35a6b0e0baf6d9e531329738f
Author: Amitay Isaacs <amitay at gmail.com>
Date:   Mon Nov 11 12:39:48 2013 +1100

    client: Coverity fixes
    
    Signed-off-by: Amitay Isaacs <amitay at gmail.com>

commit 528488c29de6e5e9665ca1d73d060b7f50763b10
Author: Amitay Isaacs <amitay at gmail.com>
Date:   Mon Nov 11 12:39:27 2013 +1100

    server: Coverity fixes
    
    Signed-off-by: Amitay Isaacs <amitay at gmail.com>

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

Summary of changes:
 client/ctdb_client.c                         |   10 +-
 common/ctdb_ltdb.c                           |    5 +-
 common/ctdb_util.c                           |   28 ++-
 common/system_linux.c                        |   20 +-
 config.guess                                 |  149 +++++++-----
 config/debug_locks.sh                        |   12 +-
 doc/ctdb.1.xml                               |  324 ++++++++++++++++----------
 doc/onnode.1.xml                             |   12 +
 include/ctdb_client.h                        |    1 +
 include/ctdb_private.h                       |    7 +-
 server/ctdb_banning.c                        |    2 +-
 server/ctdb_control.c                        |    6 +
 server/ctdb_daemon.c                         |    2 +-
 server/ctdb_lock.c                           |   11 +-
 server/ctdb_logging.c                        |    8 +-
 server/ctdb_recover.c                        |    6 +-
 server/ctdb_recoverd.c                       |   72 +++---
 server/ctdb_takeover.c                       |    2 +-
 tcp/tcp_connect.c                            |   32 ++-
 tests/scripts/integration.bash               |    2 +-
 tests/simple/51_ctdb_bench.sh                |    2 +-
 tests/simple/52_ctdb_fetch.sh                |    2 +-
 tests/simple/53_ctdb_transaction.sh          |    2 +-
 tests/simple/54_ctdb_transaction_recovery.sh |    2 +-
 tests/simple/55_ctdb_ptrans.sh               |  127 ++++++++++
 tests/simple/70_recoverpdbbyseqnum.sh        |   84 ++++----
 tests/simple/71_ctdb_wipedb.sh               |   16 +-
 tests/simple/72_update_record_persistent.sh  |   20 +-
 tests/simple/73_tunable_NoIPTakeover.sh      |   16 +-
 tests/simple/75_readonly_records_basic.sh    |   28 ++--
 tests/simple/76_ctdb_pdb_recovery.sh         |   26 +-
 tests/simple/77_ctdb_db_recovery.sh          |   26 +-
 tests/simple/80_ctdb_traverse.sh             |    8 +-
 tests/src/ctdb_porting_tests.c               |   22 ++-
 tools/ctdb.c                                 |  270 ++++++++++++++++++----
 tools/onnode                                 |   15 +-
 36 files changed, 931 insertions(+), 446 deletions(-)
 mode change 100644 => 100755 config/debug_locks.sh
 create mode 100755 tests/simple/55_ctdb_ptrans.sh


Changeset truncated at 500 lines:

diff --git a/client/ctdb_client.c b/client/ctdb_client.c
index fddbd02..885dbfd 100644
--- a/client/ctdb_client.c
+++ b/client/ctdb_client.c
@@ -253,7 +253,7 @@ int ctdb_socket_connect(struct ctdb_context *ctdb)
 
 	memset(&addr, 0, sizeof(addr));
 	addr.sun_family = AF_UNIX;
-	strncpy(addr.sun_path, ctdb->daemon.name, sizeof(addr.sun_path));
+	strncpy(addr.sun_path, ctdb->daemon.name, sizeof(addr.sun_path)-1);
 
 	ctdb->daemon.sd = socket(AF_UNIX, SOCK_STREAM, 0);
 	if (ctdb->daemon.sd == -1) {
@@ -3444,6 +3444,9 @@ static void async_callback(struct ctdb_client_control_state *state)
 	int32_t res = -1;
 	uint32_t destnode = state->c->hdr.destnode;
 
+	outdata.dsize = 0;
+	outdata.dptr = NULL;
+
 	/* one more node has responded with recmode data */
 	data->count--;
 
@@ -4183,6 +4186,11 @@ static int ctdb_fetch_db_seqnum(struct ctdb_db_context *ctdb_db, uint64_t *seqnu
 		return 0;
 	}
 
+	if (data.dsize == 0) {
+		*seqnum = 0;
+		return 0;
+	}
+
 	if (data.dsize != sizeof(*seqnum)) {
 		DEBUG(DEBUG_ERR, (__location__ " Invalid data recived len=%zi\n",
 				  data.dsize));
diff --git a/common/ctdb_ltdb.c b/common/ctdb_ltdb.c
index 4681f30..500f721 100644
--- a/common/ctdb_ltdb.c
+++ b/common/ctdb_ltdb.c
@@ -98,7 +98,10 @@ int ctdb_ltdb_fetch(struct ctdb_db_context *ctdb_db,
 			*data = d2;
 		}
 		if (ctdb_db->persistent || header->dmaster == ctdb_db->ctdb->pnn) {
-			ctdb_ltdb_store(ctdb_db, key, header, d2);
+			if (ctdb_ltdb_store(ctdb_db, key, header, d2) != 0) {
+				DEBUG(DEBUG_NOTICE,
+				      (__location__ "failed to store initial header\n"));
+			}
 		}
 		return 0;
 	}
diff --git a/common/ctdb_util.c b/common/ctdb_util.c
index 7a70fea..44eb0db 100644
--- a/common/ctdb_util.c
+++ b/common/ctdb_util.c
@@ -415,16 +415,34 @@ void ctdb_restore_scheduler(struct ctdb_context *ctdb)
 
 void set_nonblocking(int fd)
 {
-	unsigned v;
+	int v;
+
 	v = fcntl(fd, F_GETFL, 0);
-        fcntl(fd, F_SETFL, v | O_NONBLOCK);
+	if (v == -1) {
+		DEBUG(DEBUG_WARNING, ("Failed to get file status flags - %s\n",
+				      strerror(errno)));
+		return;
+	}
+        if (fcntl(fd, F_SETFL, v | O_NONBLOCK) == -1) {
+		DEBUG(DEBUG_WARNING, ("Failed to set non_blocking on fd - %s\n",
+				      strerror(errno)));
+	}
 }
 
 void set_close_on_exec(int fd)
 {
-	unsigned v;
+	int v;
+
 	v = fcntl(fd, F_GETFD, 0);
-	fcntl(fd, F_SETFD, v | FD_CLOEXEC);
+	if (v == -1) {
+		DEBUG(DEBUG_WARNING, ("Failed to get file descriptor flags - %s\n",
+				      strerror(errno)));
+		return;
+	}
+	if (fcntl(fd, F_SETFD, v | FD_CLOEXEC) != 0) {
+		DEBUG(DEBUG_WARNING, ("Failed to set close_on_exec on fd - %s\n",
+				      strerror(errno)));
+	}
 }
 
 
@@ -821,7 +839,7 @@ void ctdb_mkdir_p_or_die(struct ctdb_context *ctdb, const char *dir, int mode)
 		DEBUG(DEBUG_ALERT,
 		      ("ctdb exiting with error: "
 		       "failed to create directory \"%s\" (%s)\n",
-		       dir, strerror(ret)));
+		       dir, strerror(errno)));
 		exit(1);
 	}
 }
diff --git a/common/system_linux.c b/common/system_linux.c
index 84daba4..9aaa1fd 100644
--- a/common/system_linux.c
+++ b/common/system_linux.c
@@ -83,6 +83,8 @@ int ctdb_sys_send_arp(const ctdb_sock_addr *addr, const char *iface)
 	struct ifreq ifr;
 
 	ZERO_STRUCT(sall);
+	ZERO_STRUCT(ifr);
+	ZERO_STRUCT(if_hwaddr);
 
 	switch (addr->ip.sin_family) {
 	case AF_INET:
@@ -93,7 +95,7 @@ int ctdb_sys_send_arp(const ctdb_sock_addr *addr, const char *iface)
 		}
 
 		DEBUG(DEBUG_DEBUG, (__location__ " Created SOCKET FD:%d for sending arp\n", s));
-		strncpy(ifr.ifr_name, iface, sizeof(ifr.ifr_name));
+		strncpy(ifr.ifr_name, iface, sizeof(ifr.ifr_name)-1);
 		if (ioctl(s, SIOCGIFINDEX, &ifr) < 0) {
 			DEBUG(DEBUG_CRIT,(__location__ " interface '%s' not found\n", iface));
 			close(s);
@@ -101,7 +103,7 @@ int ctdb_sys_send_arp(const ctdb_sock_addr *addr, const char *iface)
 		}
 
 		/* get the mac address */
-		strcpy(if_hwaddr.ifr_name, iface);
+		strncpy(if_hwaddr.ifr_name, iface, sizeof(if_hwaddr.ifr_name)-1);
 		ret = ioctl(s, SIOCGIFHWADDR, &if_hwaddr);
 		if ( ret < 0 ) {
 			close(s);
@@ -195,7 +197,7 @@ int ctdb_sys_send_arp(const ctdb_sock_addr *addr, const char *iface)
 		}
 
 		/* get the mac address */
-		strcpy(if_hwaddr.ifr_name, iface);
+		strncpy(if_hwaddr.ifr_name, iface, sizeof(if_hwaddr.ifr_name)-1);
 		ret = ioctl(s, SIOCGIFHWADDR, &if_hwaddr);
 		if ( ret < 0 ) {
 			close(s);
@@ -554,7 +556,7 @@ bool ctdb_sys_check_iface_exists(const char *iface)
 		return true;
 	}
 
-	strncpy(ifr.ifr_name, iface, sizeof(ifr.ifr_name));
+	strncpy(ifr.ifr_name, iface, sizeof(ifr.ifr_name)-1);
 	if (ioctl(s, SIOCGIFINDEX, &ifr) < 0 && errno == ENODEV) {
 		DEBUG(DEBUG_CRIT,(__location__ " interface '%s' not found\n", iface));
 		close(s);
@@ -587,7 +589,7 @@ char *ctdb_get_process_name(pid_t pid)
 	int n;
 
 	snprintf(path, sizeof(path), "/proc/%d/exe", pid);
-	n = readlink(path, buf, sizeof(buf));
+	n = readlink(path, buf, sizeof(buf)-1);
 	if (n < 0) {
 		return NULL;
 	}
@@ -595,7 +597,7 @@ char *ctdb_get_process_name(pid_t pid)
 	/* Remove any extra fields */
 	buf[n] = '\0';
 	ptr = strtok(buf, " ");
-	return strdup(ptr);
+	return (ptr == NULL ? ptr : strdup(ptr));
 }
 
 /*
@@ -701,14 +703,13 @@ bool ctdb_get_lock_info(pid_t req_pid, struct ctdb_lock_info *lock_info)
 	struct ctdb_lock_info curlock;
 	pid_t pid;
 	char buf[1024];
-	char *ptr;
 	bool status = false;
 
 	if ((fp = fopen("/proc/locks", "r")) == NULL) {
 		DEBUG(DEBUG_ERR, ("Failed to read locks information"));
 		return false;
 	}
-	while ((ptr = fgets(buf, sizeof(buf), fp)) != NULL) {
+	while (fgets(buf, sizeof(buf), fp) != NULL) {
 		if (! parse_proc_locks_line(buf, &pid, &curlock)) {
 			continue;
 		}
@@ -733,14 +734,13 @@ bool ctdb_get_blocker_pid(struct ctdb_lock_info *reqlock, pid_t *blocker_pid)
 	struct ctdb_lock_info curlock;
 	pid_t pid;
 	char buf[1024];
-	char *ptr;
 	bool status = false;
 
 	if ((fp = fopen("/proc/locks", "r")) == NULL) {
 		DEBUG(DEBUG_ERR, ("Failed to read locks information"));
 		return false;
 	}
-	while ((ptr = fgets(buf, sizeof(buf), fp)) != NULL) {
+	while (fgets(buf, sizeof(buf), fp) != NULL) {
 		if (! parse_proc_locks_line(buf, &pid, &curlock)) {
 			continue;
 		}
diff --git a/config.guess b/config.guess
index 0aee604..b79252d 100644
--- a/config.guess
+++ b/config.guess
@@ -1,10 +1,8 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
-#   2011, 2012, 2013 Free Software Foundation, Inc.
+#   Copyright 1992-2013 Free Software Foundation, Inc.
 
-timestamp='2012-12-30'
+timestamp='2013-06-10'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -52,9 +50,7 @@ version="\
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011,
-2012, 2013 Free Software Foundation, Inc.
+Copyright 1992-2013 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -136,6 +132,27 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
 UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
 
+case "${UNAME_SYSTEM}" in
+Linux|GNU|GNU/*)
+	# If the system lacks a compiler, then just pick glibc.
+	# We could probably try harder.
+	LIBC=gnu
+
+	eval $set_cc_for_build
+	cat <<-EOF > $dummy.c
+	#include <features.h>
+	#if defined(__UCLIBC__)
+	LIBC=uclibc
+	#elif defined(__dietlibc__)
+	LIBC=dietlibc
+	#else
+	LIBC=gnu
+	#endif
+	EOF
+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
+	;;
+esac
+
 # Note: order is significant - the case branches are not exclusive.
 
 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
@@ -857,21 +874,21 @@ EOF
 	exit ;;
     *:GNU:*:*)
 	# the GNU system
-	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
 	exit ;;
     *:GNU/*:*:*)
 	# other systems with GNU libc and userland
-	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
+	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
 	exit ;;
     i*86:Minix:*:*)
 	echo ${UNAME_MACHINE}-pc-minix
 	exit ;;
     aarch64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     aarch64_be:Linux:*:*)
 	UNAME_MACHINE=aarch64_be
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     alpha:Linux:*:*)
 	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
@@ -884,59 +901,54 @@ EOF
 	  EV68*) UNAME_MACHINE=alphaev68 ;;
 	esac
 	objdump --private-headers /bin/sh | grep -q ld.so.1
-	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
-	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+	if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
+    arc:Linux:*:* | arceb:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     arm*:Linux:*:*)
 	eval $set_cc_for_build
 	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
 	    | grep -q __ARM_EABI__
 	then
-	    echo ${UNAME_MACHINE}-unknown-linux-gnu
+	    echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	else
 	    if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
 		| grep -q __ARM_PCS_VFP
 	    then
-		echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+		echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
 	    else
-		echo ${UNAME_MACHINE}-unknown-linux-gnueabihf
+		echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
 	    fi
 	fi
 	exit ;;
     avr32*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     cris:Linux:*:*)
-	echo ${UNAME_MACHINE}-axis-linux-gnu
+	echo ${UNAME_MACHINE}-axis-linux-${LIBC}
 	exit ;;
     crisv32:Linux:*:*)
-	echo ${UNAME_MACHINE}-axis-linux-gnu
+	echo ${UNAME_MACHINE}-axis-linux-${LIBC}
 	exit ;;
     frv:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     hexagon:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     i*86:Linux:*:*)
-	LIBC=gnu
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#ifdef __dietlibc__
-	LIBC=dietlibc
-	#endif
-EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
-	echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
+	echo ${UNAME_MACHINE}-pc-linux-${LIBC}
 	exit ;;
     ia64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     m32r*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     m68*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     mips:Linux:*:* | mips64:Linux:*:*)
 	eval $set_cc_for_build
@@ -955,54 +967,63 @@ EOF
 	#endif
 EOF
 	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
-	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
 	;;
+    or1k:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
     or32:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     padre:Linux:*:*)
-	echo sparc-unknown-linux-gnu
+	echo sparc-unknown-linux-${LIBC}
 	exit ;;
     parisc64:Linux:*:* | hppa64:Linux:*:*)
-	echo hppa64-unknown-linux-gnu
+	echo hppa64-unknown-linux-${LIBC}
 	exit ;;
     parisc:Linux:*:* | hppa:Linux:*:*)
 	# Look for CPU level
 	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
-	  PA7*) echo hppa1.1-unknown-linux-gnu ;;
-	  PA8*) echo hppa2.0-unknown-linux-gnu ;;
-	  *)    echo hppa-unknown-linux-gnu ;;
+	  PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
+	  PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
+	  *)    echo hppa-unknown-linux-${LIBC} ;;
 	esac
 	exit ;;
     ppc64:Linux:*:*)
-	echo powerpc64-unknown-linux-gnu
+	echo powerpc64-unknown-linux-${LIBC}
 	exit ;;
     ppc:Linux:*:*)
-	echo powerpc-unknown-linux-gnu
+	echo powerpc-unknown-linux-${LIBC}
+	exit ;;
+    ppc64le:Linux:*:*)
+	echo powerpc64le-unknown-linux-${LIBC}
+	exit ;;
+    ppcle:Linux:*:*)
+	echo powerpcle-unknown-linux-${LIBC}
 	exit ;;
     s390:Linux:*:* | s390x:Linux:*:*)
-	echo ${UNAME_MACHINE}-ibm-linux
+	echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
 	exit ;;
     sh64*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     sh*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     sparc:Linux:*:* | sparc64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     tile*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     vax:Linux:*:*)
-	echo ${UNAME_MACHINE}-dec-linux-gnu
+	echo ${UNAME_MACHINE}-dec-linux-${LIBC}
 	exit ;;
     x86_64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     xtensa*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     i*86:DYNIX/ptx:4*:*)
 	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
@@ -1235,19 +1256,21 @@ EOF
 	exit ;;
     *:Darwin:*:*)
 	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
-	case $UNAME_PROCESSOR in
-	    i386)
-		eval $set_cc_for_build
-		if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
-		  if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
-		      (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
-		      grep IS_64BIT_ARCH >/dev/null
-		  then
-		      UNAME_PROCESSOR="x86_64"
-		  fi
-		fi ;;
-	    unknown) UNAME_PROCESSOR=powerpc ;;
-	esac
+	eval $set_cc_for_build
+	if test "$UNAME_PROCESSOR" = unknown ; then
+	    UNAME_PROCESSOR=powerpc
+	fi
+	if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+	    if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+		(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+		grep IS_64BIT_ARCH >/dev/null
+	    then
+		case $UNAME_PROCESSOR in
+		    i386) UNAME_PROCESSOR=x86_64 ;;
+		    powerpc) UNAME_PROCESSOR=powerpc64 ;;
+		esac
+	    fi
+	fi
 	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
 	exit ;;
     *:procnto*:*:* | *:QNX:[0123456789]*:*)
diff --git a/config/debug_locks.sh b/config/debug_locks.sh
old mode 100644
new mode 100755
index 0dde861..ce80835
--- a/config/debug_locks.sh
+++ b/config/debug_locks.sh
@@ -7,9 +7,17 @@
 # This script can be used only if Samba is configured to use fcntl locks
 # rather than mutex locks.
 
+[ -n "$CTDB_BASE" ] || \
+    export CTDB_BASE=$(cd -P $(dirname "$0") ; echo "$PWD")
+
+. "$CTDB_BASE/functions"
+
+loadconfig ctdb
+
 # Create sed expression to convert inodes to names
-sed_cmd=$( ls -li /var/ctdb/*.tdb.* /var/ctdb/persistent/*.tdb.* |
-	   sed -e "s#/var/ctdb[/persistent]*/\(.*\)#\1#" |
+sed_cmd=$( ls -li "$CTDB_DBDIR"/*.tdb.* "$CTDB_DBDIR_PERSISTENT"/*.tdb.* |
+	   sed -e "s#${CTDB_DBDIR}/\(.*\)#\1#" \
+	       -e "s#${CTDB_DBDIR_PERSISTENT}/\(.*\)#\1#" |


-- 
CTDB repository


More information about the samba-cvs mailing list