sahlberg/ctdb.git
14 years agoeventscript: fix bug when script is aborted ctdb-1.0.110
Rusty Russell [Fri, 18 Dec 2009 03:43:09 +0000 (14:13 +1030)]
eventscript: fix bug when script is aborted

Another corner case when we terminate running monitor scripts to run
something else: logging can flush the output and we write to a NULL
pointer.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
14 years agoeventscript: remove cb_status, fix uninitialized bug when monitoring aborted
Rusty Russell [Fri, 18 Dec 2009 03:24:40 +0000 (13:54 +1030)]
eventscript: remove cb_status, fix uninitialized bug when monitoring aborted

(Reapplied with merge after accidental revert)

Previously we updated cb_status a each script finished.  Since we're storing
the status anyway, we can calculate it by iterating the scripts array
itself, providing clear and uniform behavior on all code paths.

In particular, this fixes a longstanding bug when we abort monitor
scripts to run some other script: the cb_status was uninitialized.  In
this case, we need to hand *something* to the callback; 0 might make
us go healthy when we shouldn't.  So we use the last status (normally,
this will be the just-saved current status).

In addition, we make the case of failing the first fork for the script
and failing other script forks the same: the error is returned via the
callback and saved for viewing through 'ctdb scriptstatus'.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
14 years agoVersion 1.0.110
Ronnie Sahlberg [Fri, 18 Dec 2009 01:32:58 +0000 (12:32 +1100)]
Version 1.0.110

14 years agoeventscript: fix cleanup path when setting up script list
Rusty Russell [Fri, 18 Dec 2009 01:24:24 +0000 (11:54 +1030)]
eventscript: fix cleanup path when setting up script list

We shouldn't set ctdb->current_monitor until we set destructor: that's
what cleans it up.

Also, free state->scripts on no-scripts exit path: it's not a child of
state because we need it in the destructor.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
14 years agoserver: add set_close_on_exec() on more fds
Stefan Metzmacher [Thu, 17 Dec 2009 12:04:27 +0000 (13:04 +0100)]
server: add set_close_on_exec() on more fds

metze

14 years agoserver: fix fd leaks in the new logging code
Stefan Metzmacher [Thu, 17 Dec 2009 12:03:42 +0000 (13:03 +0100)]
server: fix fd leaks in the new logging code

metze

14 years agoversion 1.0.109 ctdb-1.0.109
Ronnie Sahlberg [Thu, 17 Dec 2009 04:49:01 +0000 (15:49 +1100)]
version 1.0.109

14 years agoeventscript: remove cb_status, fix uninitialized bug when monitoring aborted
Rusty Russell [Thu, 17 Dec 2009 04:08:15 +0000 (14:38 +1030)]
eventscript: remove cb_status, fix uninitialized bug when monitoring aborted

Previously we updated cb_status a each script finished.  Since we're storing
the status anyway, we can calculate it by iterating the scripts array
itself, providing clear and uniform behavior on all code paths.

In particular, this fixes a longstanding bug when we abort monitor
scripts to run some other script: the cb_status was uninitialized.  In
this case, we need to hand *something* to the callback; 0 might make
us go healthy when we shouldn't.  So we use the last status (normally,
this will be the just-saved current status).

In addition, we make the case of failing the first fork for the script
and failing other script forks the same: the error is returned via the
callback and saved for viewing through 'ctdb scriptstatus'.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
14 years agofix a conflict in the merge from rusty
Ronnie Sahlberg [Wed, 16 Dec 2009 21:18:04 +0000 (08:18 +1100)]
fix a conflict in the merge from rusty

Merge commit 'rusty/ctdb-no-setsched'

Conflicts:

server/ctdb_vacuum.c

14 years agoctdb: use mlockall, cautiously rusty/ctdb-no-setsched
Rusty Russell [Wed, 16 Dec 2009 10:27:20 +0000 (20:57 +1030)]
ctdb: use mlockall, cautiously

We don't want ctdb stalling due to paging; this can be far worse than
scheduling delays.  But if we simply do mlockall(MCL_FUTURE), it
increases the risk that mmap (ie. tdb open) or malloc will fail,
causing us to abort.

This patch is a compromise: we mlock all current pages (including
10k of future stack for expansion) and then relock when a client
asks us to open a TDB.  We warn, but don't exit, if it fails.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
14 years agoRemove RT priority, use niceness.
Rusty Russell [Wed, 16 Dec 2009 08:56:22 +0000 (19:26 +1030)]
Remove RT priority, use niceness.

1) It's buggy.  Code needs to be carefully written (ie. no busy
   loops) to handle running with it, and we fork and run scripts.[1]

2) It makes debugging harder.  If ctdbd loops (as has happened recently)
   it can be extremely hard to get in and see what's happening.  We've already
   seen the valgrind hacks.

3) We have seen recent scheduler problems.  Perhaps they are unrelated,
   but removing this very unusual setup is unlikely to hurt.

4) It doesn't make anything faster.  Under all but the most perverse of
   circumstances, 99% of the cpu gives the same performance as 100%, and
   we will always preempt normal processes anyway.

[1] I made this worse in 0fafdcb8d353 "eventscript: fork() a child for
    each script" by removing the switch_from_server_to_client() which
    restored it, but even that was only for monitor scripts.  Others were
    run with RT priority.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
14 years agoAdd --valgringing flag instead of --nosetsched
Rusty Russell [Wed, 16 Dec 2009 10:29:15 +0000 (20:59 +1030)]
Add --valgringing flag instead of --nosetsched

The do_setsched was being tested for whether to mmap tdbs: let's make it
explicit.  We can also happily move the kill-child eventscript hack under
this flag.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
14 years agofix conflict in merge from metze
Ronnie Sahlberg [Wed, 16 Dec 2009 07:34:40 +0000 (18:34 +1100)]
fix conflict in merge from metze

Merge commit 'metze/master-tdb-check'

Conflicts:

server/ctdb_vacuum.c

14 years agoctdb: pass TDB_DISALLOW_NESTING to all tdb_open/tdb_wrap_open calls
Stefan Metzmacher [Fri, 20 Nov 2009 20:17:59 +0000 (21:17 +0100)]
ctdb: pass TDB_DISALLOW_NESTING to all tdb_open/tdb_wrap_open calls

metze

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agodoc: regenerate manpages metze/master-tdb-check
Stefan Metzmacher [Mon, 7 Dec 2009 12:02:59 +0000 (13:02 +0100)]
doc: regenerate manpages

metze

14 years agodoc: fix docbook warnings for ctdb.1 and onnode.1 manpages
Stefan Metzmacher [Tue, 8 Dec 2009 11:28:38 +0000 (12:28 +0100)]
doc: fix docbook warnings for ctdb.1 and onnode.1 manpages

metze

14 years agodoc/ctdb.1: update example "ctdb listvars" output
Stefan Metzmacher [Wed, 9 Dec 2009 10:29:52 +0000 (11:29 +0100)]
doc/ctdb.1: update example "ctdb listvars" output

metze

14 years agodoc/ctdb.1: make clear the database is specified by name for "ctdb backupdb"
Stefan Metzmacher [Tue, 8 Dec 2009 11:44:13 +0000 (12:44 +0100)]
doc/ctdb.1: make clear the database is specified by name for "ctdb backupdb"

metze

14 years agodoc/ctdb.1: document "ctdb getdbstatus <dbname>"
Stefan Metzmacher [Tue, 8 Dec 2009 11:43:33 +0000 (12:43 +0100)]
doc/ctdb.1: document "ctdb getdbstatus <dbname>"

metze

14 years agodoc/ctdb.1: add "See also" for ctdb getdbmap
Stefan Metzmacher [Mon, 7 Dec 2009 09:19:20 +0000 (10:19 +0100)]
doc/ctdb.1: add "See also" for ctdb getdbmap

metze

14 years agodoc/ctdb.1: document "ctdb dumpdbbackup <file>"
Stefan Metzmacher [Tue, 8 Dec 2009 11:08:27 +0000 (12:08 +0100)]
doc/ctdb.1: document "ctdb dumpdbbackup <file>"

metze

14 years agodoc/ctdb.1: document -Y output fot ctdb getdbmap
Stefan Metzmacher [Mon, 7 Dec 2009 09:18:39 +0000 (10:18 +0100)]
doc/ctdb.1: document -Y output fot ctdb getdbmap

metze

14 years agodoc/ctdb.1: document UNHEALTHY for "ctdb getdbmap"
Stefan Metzmacher [Mon, 7 Dec 2009 09:10:05 +0000 (10:10 +0100)]
doc/ctdb.1: document UNHEALTHY for "ctdb getdbmap"

metze

14 years agodoc/ctdb.1: document "ctdb wipedb"
Stefan Metzmacher [Mon, 7 Dec 2009 09:00:52 +0000 (10:00 +0100)]
doc/ctdb.1: document "ctdb wipedb"

metze

14 years agoconfig: add CTDB_MAX_PERSISTENT_CHECK_ERRORS option
Stefan Metzmacher [Mon, 7 Dec 2009 09:53:31 +0000 (10:53 +0100)]
config: add CTDB_MAX_PERSISTENT_CHECK_ERRORS option

metze

14 years agoconfig: try to use tdbtool <tdb> check instead of tdbdump for persistent db checks
Stefan Metzmacher [Mon, 7 Dec 2009 09:46:10 +0000 (10:46 +0100)]
config: try to use tdbtool <tdb> check instead of tdbdump for persistent db checks

metze

14 years agoctdb: print out some hints how to debug a "ctdb catdb" failure
Stefan Metzmacher [Mon, 7 Dec 2009 08:57:45 +0000 (09:57 +0100)]
ctdb: print out some hints how to debug a "ctdb catdb" failure

metze

14 years agoctdb: add machinereadable output fot "ctdb -Y getdbmap"
Stefan Metzmacher [Mon, 7 Dec 2009 08:23:02 +0000 (09:23 +0100)]
ctdb: add machinereadable output fot "ctdb -Y getdbmap"

metze

14 years agoctdb: disallow "ctdb backupdb" on unhealthy databases
Stefan Metzmacher [Mon, 7 Dec 2009 08:22:02 +0000 (09:22 +0100)]
ctdb: disallow "ctdb backupdb" on unhealthy databases

metze

14 years agoclient: add "ctdb dumpdbbackup <filename>"
Stefan Metzmacher [Fri, 4 Dec 2009 14:24:23 +0000 (15:24 +0100)]
client: add "ctdb dumpdbbackup <filename>"

metze

14 years agoclient: make ctdb_dumpdb_record() public
Stefan Metzmacher [Fri, 4 Dec 2009 14:23:56 +0000 (15:23 +0100)]
client: make ctdb_dumpdb_record() public

metze

14 years agotools/ctdb: let "ctdb restoredb" and "ctdb wipedb" mark the db as healthy on all
Stefan Metzmacher [Wed, 2 Dec 2009 11:58:03 +0000 (12:58 +0100)]
tools/ctdb: let "ctdb restoredb" and "ctdb wipedb" mark the db as healthy on all
nodes

metze

14 years agotools/ctdb: add "ctdb getdbstatus <dbname>"
Stefan Metzmacher [Wed, 2 Dec 2009 11:57:29 +0000 (12:57 +0100)]
tools/ctdb: add "ctdb getdbstatus <dbname>"

metze

14 years agotools/ctdb: display db health in "ctdb getdbmap"
Stefan Metzmacher [Wed, 2 Dec 2009 11:54:29 +0000 (12:54 +0100)]
tools/ctdb: display db health in "ctdb getdbmap"

metze

14 years agoclient: add ctdb_ctrl_getdbhealth()
Stefan Metzmacher [Wed, 2 Dec 2009 11:51:37 +0000 (12:51 +0100)]
client: add ctdb_ctrl_getdbhealth()

metze

14 years agoserver: add CTDB_CONTROL_DB_SET_HEALTHY and CTDB_CONTROL_DB_GET_HEALTH
Stefan Metzmacher [Wed, 2 Dec 2009 11:48:22 +0000 (12:48 +0100)]
server: add CTDB_CONTROL_DB_SET_HEALTHY and CTDB_CONTROL_DB_GET_HEALTH

metze

14 years agoserver: Use tdb_check to verify persistent tdbs on startup
Stefan Metzmacher [Mon, 7 Dec 2009 12:28:11 +0000 (13:28 +0100)]
server: Use tdb_check to verify persistent tdbs on startup

Depending on --max-persistent-check-errors we allow ctdb
to start with unhealthy persistent databases.

The default is 0 which means to reject a startup with
unhealthy dbs.

The health of the persistent databases is checked after each
recovery. Node monitoring and the "startup" is deferred
until all persistent databases are healthy.

Databases can become healthy automaticly by a completely
HEALTHY node joining the cluster. Or by an administrator
with "ctdb backupdb/restoredb" or "ctdb wipedb".

metze

14 years agoserver: move error handling to a 'fail' label in ctdb_control_transaction_commit()
Stefan Metzmacher [Mon, 7 Dec 2009 12:19:33 +0000 (13:19 +0100)]
server: move error handling to a 'fail' label in ctdb_control_transaction_commit()

metze

14 years agoserver/recovery: update flags on nodes before syncing dbs
Stefan Metzmacher [Fri, 27 Nov 2009 15:36:05 +0000 (16:36 +0100)]
server/recovery: update flags on nodes before syncing dbs

metze

14 years agoserver: open /var/ctdb/state/persistent_health.tdb.X on startup
Stefan Metzmacher [Sun, 29 Nov 2009 11:39:37 +0000 (12:39 +0100)]
server: open /var/ctdb/state/persistent_health.tdb.X on startup

This node internal tdb will store the HEALTH state of persistent
tdbs.

metze

14 years agoserver: create vactune.tdb.X with 0600 permissions
Stefan Metzmacher [Mon, 23 Nov 2009 14:39:19 +0000 (15:39 +0100)]
server: create vactune.tdb.X with 0600 permissions

metze

14 years agoserver: create vactun.tdb.X under /var/ctdb/state
Stefan Metzmacher [Mon, 23 Nov 2009 14:38:31 +0000 (15:38 +0100)]
server: create vactun.tdb.X under /var/ctdb/state

metze

14 years agoserver: create recdb.tdb.X in /var/ctdb/state/
Stefan Metzmacher [Mon, 23 Nov 2009 14:36:45 +0000 (15:36 +0100)]
server: create recdb.tdb.X in /var/ctdb/state/

metze

14 years agoserver: only do the mkdir() calls for db_directory* once at the start
Stefan Metzmacher [Sun, 29 Nov 2009 11:39:23 +0000 (12:39 +0100)]
server: only do the mkdir() calls for db_directory* once at the start

metze

14 years agoserver: add db_directory_state to ctdb_context
Stefan Metzmacher [Mon, 23 Nov 2009 13:38:03 +0000 (14:38 +0100)]
server: add db_directory_state to ctdb_context

metze

14 years agoserver: create tdbs with 0600 permissions in ctdb_local_attach()
Stefan Metzmacher [Mon, 23 Nov 2009 13:40:17 +0000 (14:40 +0100)]
server: create tdbs with 0600 permissions in ctdb_local_attach()

metze

14 years agoconfig: load 'ctdb' config before 'nfs' config in statd-callout
Stefan Metzmacher [Mon, 9 Nov 2009 14:06:59 +0000 (15:06 +0100)]
config: load 'ctdb' config before 'nfs' config in statd-callout

All other scripts do 'loadconfig ctdb' before any other 'loadconfig foo'
call. I think we should do the same in statd-callout.

Otherwise it's very confusing, if you have configured some Options
in /etc/sysconfig/ctdb, but /etc/ctdb/statd-callout doesn't notice
them.

metze

14 years agoctdb: pass TDB_DISALLOW_NESTING to all tdb_open/tdb_wrap_open calls metze/master-tdb
Stefan Metzmacher [Fri, 20 Nov 2009 20:17:59 +0000 (21:17 +0100)]
ctdb: pass TDB_DISALLOW_NESTING to all tdb_open/tdb_wrap_open calls

metze

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agoFix release script with newer versins of git
Simo Sorce [Mon, 7 Dec 2009 14:25:03 +0000 (09:25 -0500)]
Fix release script with newer versins of git
(cherry picked from commit 4334092cbae28181ba0d1cf2ac026961f2192972)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agotdb tools: Mostly cosmetic adaptions
Matthias Dieter Wallnöfer [Fri, 16 Oct 2009 17:02:02 +0000 (19:02 +0200)]
tdb tools: Mostly cosmetic adaptions

Signed-off-by: Stefan Metzmacher <metze@samba.org>
(cherry picked from samba commit 9776cb03450d21da5d454e683bdba29793ba3f67)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agotdb: change version to 1.2.0 after adding TDB_*ALLOW_NESTING
Stefan Metzmacher [Thu, 19 Nov 2009 08:49:03 +0000 (09:49 +0100)]
tdb: change version to 1.2.0 after adding TDB_*ALLOW_NESTING

metze
(cherry picked from samba commit 5ca0a4bfd6fdbb515835682a12f715283b46cb3e)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agotdb: add TDB_DISALLOW_NESTING and make TDB_ALLOW_NESTING the default behavior
Stefan Metzmacher [Thu, 19 Nov 2009 08:34:05 +0000 (09:34 +0100)]
tdb: add TDB_DISALLOW_NESTING and make TDB_ALLOW_NESTING the default behavior

We need to keep TDB_ALLOW_NESTING as default behavior,
so that existing code continues to work.

However we may change the default together with a major version
number change in future.

metze
(cherry picked from samba commit 3b9f19ed919fef2e88b2f92ae541e07bc7379cd1)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agotdb: always set tdb->tracefd to -1 to be safe on goto fail
Stefan Metzmacher [Thu, 19 Nov 2009 08:38:48 +0000 (09:38 +0100)]
tdb: always set tdb->tracefd to -1 to be safe on goto fail

metze
(cherry picked from samba commit 85449b7bcc4bd7948bea38b5514a02357950a002)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agotdb: Fix a C++ warning (cherry picked from samba commit be88a126ea50ea7e41583f402013c...
Volker Lendecke [Fri, 6 Nov 2009 13:04:49 +0000 (14:04 +0100)]
tdb: Fix a C++ warning (cherry picked from samba commit be88a126ea50ea7e41583f402013c63234305e48)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agotdb: update README a bit
Kirill Smelkov [Wed, 21 Oct 2009 17:18:58 +0000 (21:18 +0400)]
tdb: update README a bit

While studying tdb, I've noticed a couple of mismatches between readme
and actual code:

- tdb_open_ex changed it's log_fn argument to log_ctx
- there is now no tdb_update(), which it seems was transformed into
  non-exported tdb_update_hash()

There were other mismatches, but I don't remember them now, sorry.

Signed-off-by: Kirill Smelkov <kirr@mns.spb.ru>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
(cherry picked from samba commit 83de5c826313aa09c76131ae70550bd81b3521c5)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agotdb: add tests for double .close() in pytdb
Kirill Smelkov [Wed, 21 Oct 2009 17:18:57 +0000 (21:18 +0400)]
tdb: add tests for double .close() in pytdb

The reason I do it is that when using older python-tdb as shipped in
Debian Lenny, python interpreter crashes on this test:

    (gdb) bt
    #0  0xb7f8c424 in __kernel_vsyscall ()
    #1  0xb7df5640 in raise () from /lib/i686/cmov/libc.so.6
    #2  0xb7df7018 in abort () from /lib/i686/cmov/libc.so.6
    #3  0xb7e3234d in __libc_message () from /lib/i686/cmov/libc.so.6
    #4  0xb7e38624 in malloc_printerr () from /lib/i686/cmov/libc.so.6
    #5  0xb7e3a826 in free () from /lib/i686/cmov/libc.so.6
    #6  0xb7b39c84 in tdb_close () from /usr/lib/libtdb.so.1
    #7  0xb7b43e14 in ?? () from /var/lib/python-support/python2.5/_tdb.so
    #8  0x0a038d08 in ?? ()
    #9  0x00000000 in ?? ()

master's pytdb does not (we have a check for self->closed in obj_close()),
but still...

Signed-off-by: Kirill Smelkov <kirr@mns.spb.ru>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
(cherry picked from samba commit 71a21393dd1bb61bded82b1581ac6d5bd3b0153c)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agotdb: reset tdb->fd to -1 in tdb_close()
Kirill Smelkov [Wed, 21 Oct 2009 17:18:56 +0000 (21:18 +0400)]
tdb: reset tdb->fd to -1 in tdb_close()

So that erroneous double tdb_close() calls do not try to close() same
fd again. This is like SAFE_FREE() but for fd.

Signed-off-by: Kirill Smelkov <kirr@mns.spb.ru>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
(cherry picked from samba commit b4424f8234a78a79fb2d71d46ca208b4f12e0f9e)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agotdb: fix typo in python's Tdb.get() docstring
Kirill Smelkov [Wed, 21 Oct 2009 17:18:55 +0000 (21:18 +0400)]
tdb: fix typo in python's Tdb.get() docstring

It's Tdb.get(), not Tdb.fetch().

Signed-off-by: Kirill Smelkov <kirr@mns.spb.ru>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
(cherry picked from samba commit cfed5f946de0992a594c189ee3c19cf98e59d380)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agotdb: detect tdb store of identical records and skip
Andrew Tridgell [Fri, 23 Oct 2009 11:45:03 +0000 (22:45 +1100)]
tdb: detect tdb store of identical records and skip

This can help with ldb where we rewrite the index records
(cherry picked from samba commit d4c0e8fdf063f88032c32de7ece60d502b322089)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agotdb: rename 'struct list_struct' into 'struct tdb_record'
Stefan Metzmacher [Fri, 23 Oct 2009 11:51:03 +0000 (13:51 +0200)]
tdb: rename 'struct list_struct' into 'struct tdb_record'

metze
(cherry picked from samba commit 3b62e250c066f44d0ab08a7db037b6b4f74a914b)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agolib/tdb: make tdbtool use tdb_check() for "check" command
Rusty Russell [Thu, 19 Nov 2009 21:15:59 +0000 (22:15 +0100)]
lib/tdb: make tdbtool use tdb_check() for "check" command

Also, set logging function so we get more informative messages.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
(cherry picked from samba commit 094493115971cf3d5a3138ff10ebe02335824723)
Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agolib/tdb: add tdb_check()
Rusty Russell [Wed, 21 Oct 2009 13:40:34 +0000 (00:10 +1030)]
lib/tdb: add tdb_check()

ctdb wants a quick way to detect corrupt tdbs; particularly, tdbs with
loops in their hash chains.  tdb_check() provides this.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
(cherry picked from samba commit 022b4d4aa6861c1e3e6d76484d92555221cb6d14)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agotdb: kill last bits from swig
Kirill Smelkov [Wed, 21 Oct 2009 17:18:54 +0000 (21:18 +0400)]
tdb: kill last bits from swig

We no longer use swig for pytdb, so there is no need for swig make
rules. Also pytdb.c header should be updated.

Signed-off-by: Kirill Smelkov <kirr@mns.spb.ru>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
(cherry picked from samba commit ecbe5ebd8d1c44a478c613eb1cace0521142d0d3)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agolib/tdb: sync build files from samba master
Stefan Metzmacher [Thu, 19 Nov 2009 14:44:10 +0000 (15:44 +0100)]
lib/tdb: sync build files from samba master

metze

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agos3 build: Remove unused fstat check to fix a bunch of HAVE_FSTAT warnings (cherry...
Stefan Metzmacher [Thu, 19 Nov 2009 15:52:46 +0000 (16:52 +0100)]
s3 build: Remove unused fstat check to fix a bunch of HAVE_FSTAT warnings (cherry picked from samba commit 2c2545d45af9c7479bf032fff1263e102926a495)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agolib/tdb: include replace.h and system/filesys.h in pytdb.c
Stefan Metzmacher [Fri, 30 Jan 2009 18:38:59 +0000 (19:38 +0100)]
lib/tdb: include replace.h and system/filesys.h in pytdb.c

This fixes the build on Tru64.

metze
(cherry picked from samba commit 3718cf294ad1f3e00178cb34b2c914c9aecf2016)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agoAvoid using a utility header for Python replacements included in Samba, since this...
Stefan Metzmacher [Thu, 19 Nov 2009 15:50:50 +0000 (16:50 +0100)]
Avoid using a utility header for Python replacements included in Samba, since this will not be shipped with talloc/tdb/tevent/etc. (cherry picked from samba commit ba5d6e6d706ebf07640ee24d701255cbb4803525)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agos3/s4 build: Fix Py_RETURN_NONE to work with python versions < 2.4 (cherry picked...
Stefan Metzmacher [Thu, 19 Nov 2009 15:49:13 +0000 (16:49 +0100)]
s3/s4 build: Fix Py_RETURN_NONE to work with python versions < 2.4 (cherry picked from samba commit 61a23c5eea2203721a70a4ad41bfdc6cd1d6a2a7)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agopy: Properly increase the reference counter of Py_None. (cherry picked from samba...
Stefan Metzmacher [Thu, 19 Nov 2009 15:31:29 +0000 (16:31 +0100)]
py: Properly increase the reference counter of Py_None. (cherry picked from samba commit d2c70d24e12293d9b4272eb310a6a4c4582b2d92)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agoMake sure to not close tdb database more than once. (cherry picked from samba commit...
Jelmer Vernooij [Thu, 18 Dec 2008 20:42:50 +0000 (20:42 +0000)]
Make sure to not close tdb database more than once. (cherry picked from samba commit 6fe6983e4c960abc69d5fa80cbef534ae515209a)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agoImplement missing functions in pytdb. (cherry picked from samba commit 2da551bbcc6cab...
Jelmer Vernooij [Thu, 18 Dec 2008 19:41:02 +0000 (19:41 +0000)]
Implement missing functions in pytdb. (cherry picked from samba commit 2da551bbcc6cab296769c193b0b82aaa6256cece)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agoAdd simple manually written replacement for the tdb module. (cherry picked from samba...
Stefan Metzmacher [Thu, 19 Nov 2009 15:25:49 +0000 (16:25 +0100)]
Add simple manually written replacement for the tdb module. (cherry picked from samba commit 2a61fd41e9d4d2e3d7b47a816544c88bb369bc03)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agotdb: Add simple reimplementation of tdbdump in Python as an example of the tdb Python...
Jelmer Vernooij [Thu, 10 Jan 2008 20:44:38 +0000 (21:44 +0100)]
tdb: Add simple reimplementation of tdbdump in Python as an example of the tdb Python bindings. (This used to be commit 47d797f7885b1e7bcff724496ecb1990e8440eea) (cherry picked from samba commit 6bdd1425b75c8931965f0e5627f5a63dc6820a7c)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agoRemove unecessary msync. Jeremy. (cherry picked from samba commit 0bae1ef3de8fda5e1e2...
Jeremy Allison [Fri, 5 Sep 2008 22:32:22 +0000 (15:32 -0700)]
Remove unecessary msync. Jeremy. (cherry picked from samba commit 0bae1ef3de8fda5e1e2d641b14a408e627396912) (This used to be commit db2acaf46fdc38078b6b28b68909e289f6c9e0ec) (cherry picked from samba commit a1cf3ad5d655cf5a847df6d6299b3af1a30ec1e3)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agoThe msync manpage reports that msync *must* be called before munmap. Failure to do...
Stefan Metzmacher [Thu, 19 Nov 2009 14:35:38 +0000 (15:35 +0100)]
The msync manpage reports that msync *must* be called before munmap. Failure to do so may result in lost data. Fix an ifdef check, I really think we meant to check HAVE_MMAP here. (cherry picked from samba commit 74c8575b3f3b90ea21ae6aa7ccd95947838af956) (This used to be commit 8fd54bb55f0c23bd025d1719abcbe75c6a2ea8ac) (cherry picked from samba commit b39e332bd7803dd4ce8267f750c497b5deb837ee)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agoAttempt to fix bug 5684
Volker Lendecke [Tue, 12 Aug 2008 20:31:52 +0000 (22:31 +0200)]
Attempt to fix bug 5684

With the ctdb checkin dde9f3f006 tdb optimized out write lock checks for
write-enabled transaction. Sadly, this also removed the possibility to ever
remove dead records left over from tdb_delete calls within a transaction.

Tridge, please check this! Did dde9f3f006 have any reason beyond performance
optimizations?

Thanks,

Volker
(cherry picked from samba commit 3f884c4ae36f3260e63626bdd4989d9258ae6497)
(This used to be commit 1d85e0647e287d269b3f6b534da88f497d6f76c3)
(cherry picked from samba commit 8c88209c6f4b57b0dbe1459bd5bc583c5d321758)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agolib/tdb/tools/tdbtorture.c: fixed memory leak.
Slava Semushin [Sat, 6 Jun 2009 17:06:04 +0000 (00:06 +0700)]
lib/tdb/tools/tdbtorture.c: fixed memory leak.

Found by cppcheck:
[lib/tdb/tools/tdbtorture.c:326]: (error) Memory leak: pids
(cherry picked from samba commit 497b9e460b5defd60de89b9c5bed890f83ca86a1)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agoadded basic testing of tdb_transaction_prepare_commit() in tdbtorture (cherry picked...
Andrew Tridgell [Tue, 31 Mar 2009 02:59:03 +0000 (13:59 +1100)]
added basic testing of tdb_transaction_prepare_commit() in tdbtorture (cherry picked from samba commit 84547b8dba3c0cf4e20b3c50d9386081d475df6b)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agomake tdbbackup use transactions
Andrew Tridgell [Tue, 16 Dec 2008 03:36:56 +0000 (14:36 +1100)]
make tdbbackup use transactions

tdbbackup was originally written before we had transactions, and it
attempted to use its own fsync() calls to make it safe. Now that we
have transactions we can do it in a much safer (and faster!) fashion
(cherry picked from samba commit 2e4247782bd5812bc8e7ea24194c8436748bb2fa)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agofixed tdbbackup to give tdb error messages (cherry picked from samba commit 08be1420b...
Andrew Tridgell [Thu, 28 May 2009 07:35:12 +0000 (17:35 +1000)]
fixed tdbbackup to give tdb error messages (cherry picked from samba commit 08be1420ba52ef9bba90d0f811c7810841ee8568)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agolib/tdb: add -t (always use transactions) option to tdbtorture
Rusty Russell [Wed, 21 Oct 2009 13:40:54 +0000 (00:10 +1030)]
lib/tdb: add -t (always use transactions) option to tdbtorture

This means you can kill it at any time and expect no corruption.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
(cherry picked from samba commit 0fc6800005ffb532a5e5699c97f13f1de138d51f)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agolib/tdb: wean off TDB_ERRCODE.
Rusty Russell [Wed, 21 Oct 2009 13:39:43 +0000 (00:09 +1030)]
lib/tdb: wean off TDB_ERRCODE.

It was a regrettable hack which I used to reduce line count in tdb; in fact it caused confusion as can be seen in this patch.
In particular, ecode now needs to be set before TDB_LOG anyway, and having it exposed in
the header is useless (the struct tdb_context isn't defined, so it's doubly useless).
Also, we should never set errno, as io.c was doing.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
(cherry picked from samba commit b77f41d58b05101e02d8ac0e54cb0e30807d89c2)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agolib/tdb: TDB_TRACE support (for developers)
Rusty Russell [Tue, 20 Oct 2009 01:49:41 +0000 (12:19 +1030)]
lib/tdb: TDB_TRACE support (for developers)

When TDB_TRACE is defined (in tdb_private.h), verbose tracing of tdb operations is enabled.
This can be replayed using "replay_trace" from http://ccan.ozlabs.org/info/tdb.

The majority of this patch comes from moving internal functions to _<funcname> to
avoid double-tracing.  There should be no additional overhead for the normal (!TDB_TRACE)
case.

Note that the verbose traces compress really well with rzip.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
(cherry picked from samba commit 703004340c3e0f43f741bd368d2525cfd187d590)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agotdb: fixed the intermittent failure of tdbtorture in the build farm
Andrew Tridgell [Mon, 19 Oct 2009 23:59:40 +0000 (10:59 +1100)]
tdb: fixed the intermittent failure of tdbtorture in the build farm

There was a race condition that caused the torture.tdb to be left in a
state that needed recovery. The torture code thought that any message
from the tdb code was an error, so the "recovered" message, which is a
TDB_DEBUG_TRACE message, marked the run as being an error when it
isn't.
(cherry picked from samba commit 5dcf0069b68149575fe6166019dd90b73885926b)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agotdb:tdbtool: fix indentation.
Michael Adam [Sun, 20 Sep 2009 22:08:34 +0000 (00:08 +0200)]
tdb:tdbtool: fix indentation.

Michael
(cherry picked from samba commit e440a2e11e78a562f97971c0dfe0cf3f694996ff)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agoFix all warnings in source3 with gcc4.3. Jeremy. (cherry picked from samba commit...
Stefan Metzmacher [Thu, 19 Nov 2009 13:31:29 +0000 (14:31 +0100)]
Fix all warnings in source3 with gcc4.3. Jeremy. (cherry picked from samba commit 07e0094365e8dc360a83eec2e7cf9b1d5d8d6d00)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agos3/s4: Fix "shadows a global declaration" warning (cherry picked from samba commit...
Tim Prouty [Tue, 16 Dec 2008 16:33:58 +0000 (08:33 -0800)]
s3/s4: Fix "shadows a global declaration" warning (cherry picked from samba commit e48a5cd5d4fc2626b09af16a0ac68c638d081437)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agotdb: Fix some recently introduced warnings in tdbtool (cherry picked from samba commi...
Tim Prouty [Wed, 27 May 2009 19:52:37 +0000 (12:52 -0700)]
tdb: Fix some recently introduced warnings in tdbtool (cherry picked from samba commit c299833bf8e6506c793d6e8283743949aaac9ef4)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agoadded some more speed tests to tdbtool
Andrew Tridgell [Mon, 25 May 2009 23:24:37 +0000 (09:24 +1000)]
added some more speed tests to tdbtool

This adds 3 simple speed tests to tdbtool, for transaction store,
store and fetch.

On my laptop this shows transactions costing about 10ms
(cherry picked from samba commit e15027155d3d880abde83124e252b3dd10a9aae4)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agotdb:tdbtool: add transaction_start/_commit/_cancel commands.
Michael Adam [Sun, 20 Sep 2009 21:58:27 +0000 (23:58 +0200)]
tdb:tdbtool: add transaction_start/_commit/_cancel commands.

So one can perform tdbtool operations protected by transactions.

Michael
(cherry picked from samba commit 91e1bab2e9a3f33151061554f2dcf05bcb728312)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agotdb:tdbtool: add the "speed" command to the help text.
Michael Adam [Sun, 20 Sep 2009 21:58:05 +0000 (23:58 +0200)]
tdb:tdbtool: add the "speed" command to the help text.

Michael
(cherry picked from samba commit 817383d88d820e7be5b5dd3d2da350d4a03a94de)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agoAdded a simple tdb integrity check to tdbtool. The command "check" runs traverse...
Holger Hetterich [Sat, 1 Nov 2008 23:12:32 +0000 (00:12 +0100)]
Added a simple tdb integrity check to tdbtool. The command "check" runs traverse on the currently open tdb, and returns the number of entries if the integrity check is successful. (cherry picked from samba commit 42366bcbbdd42bb9d5821dfcc9dbe71a1eafa330)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agotdb: allow reads after prepare commit
Andrew Tridgell [Tue, 15 Sep 2009 21:04:22 +0000 (14:04 -0700)]
tdb: allow reads after prepare commit

We previously only allowed a commit to happen after a prepare
commit. It is in fact safe to allow reads between a prepare and a
commit, and the s4 replication code can make use of that, so allow it.
(cherry picked from samba commit 46c99ec2a3781d53138245182345c6c2ddd9a258)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agotdb:mksigs: allow PRINTF_ATTRIBUTE(..) macros function types as funcion args
Michael Adam [Fri, 11 Sep 2009 13:20:34 +0000 (15:20 +0200)]
tdb:mksigs: allow PRINTF_ATTRIBUTE(..) macros function types as funcion args

Michael
(cherry picked from samba commit 55dcf928eb6ce603c5e95a9a80856a4deb33d0c6)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agotdb:mksigs: normalize bool -> _Bool
Michael Adam [Fri, 11 Sep 2009 13:16:03 +0000 (15:16 +0200)]
tdb:mksigs: normalize bool -> _Bool

Michael
(cherry picked from samba commit cfa4e7ec7540d1100649839a10968303189fe929)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agotdb:mksigs: ignore symbols (like _DEPRECATED_) after closing function parentheses
Michael Adam [Fri, 11 Sep 2009 13:11:16 +0000 (15:11 +0200)]
tdb:mksigs: ignore symbols (like _DEPRECATED_) after closing function parentheses

Michael
(cherry picked from samba commit 25939a627f15b7a21110767d47be0f50f32d3943)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agotdb:mksigs: correctly ignode multiline function typedefs
Michael Adam [Fri, 11 Sep 2009 13:01:46 +0000 (15:01 +0200)]
tdb:mksigs: correctly ignode multiline function typedefs

by first concatenating multilint parentheses and removing typefes afterwards.

Michael
(cherry picked from samba commit 13bfcd5a93c47c9db8b644560a1bcc398facb136)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agotdb:mksigs: ignore struct forward declarations.
Michael Adam [Fri, 11 Sep 2009 12:55:52 +0000 (14:55 +0200)]
tdb:mksigs: ignore struct forward declarations.

Michael
(cherry picked from samba commit ecd12bfb382da072595391d5bf11a893d39a0479)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agotdb:mksyms: allow characters after closing functions parenthesis.
Michael Adam [Fri, 11 Sep 2009 12:54:30 +0000 (14:54 +0200)]
tdb:mksyms: allow characters after closing functions parenthesis.

Michael
(cherry picked from samba commit 400f08450b26f38a7dafd1d458542b4d9a8cb19e)

Signed-off-by: Stefan Metzmacher <metze@samba.org>
14 years agotdb:mksyms: allow double pointer return value of functions.
Michael Adam [Fri, 11 Sep 2009 12:54:02 +0000 (14:54 +0200)]
tdb:mksyms: allow double pointer return value of functions.

Michael
(cherry picked from samba commit 907e05595fdcc4ef77ad627bc0f3732faa59de68)

Signed-off-by: Stefan Metzmacher <metze@samba.org>