summaryrefslogtreecommitdiff
path: root/lib/tdb
AgeCommit message (Collapse)AuthorFilesLines
2010-09-19pytdb: Make filename argument optional.Jelmer Vernooij2-13/+15
2010-09-19pytdb: Add support for tdb_freelist_size()Kirill Smelkov2-0/+9
Cc: 597386@bugs.debian.org Signed-off-by: Kirill Smelkov <kirr@landau.phys.spbu.ru> Signed-off-by: Jelmer Vernooij <jelmer@samba.org>
2010-09-19pytdb: Add support for tdb_transaction_prepare_commit()Kirill Smelkov2-0/+18
Cc: 597386@bugs.debian.org Signed-off-by: Kirill Smelkov <kirr@landau.phys.spbu.ru> Signed-off-by: Jelmer Vernooij <jelmer@samba.org>
2010-09-19pytdb: Add support for tdb_enable_seqnum, tdb_get_seqnum and ↵Kirill Smelkov2-0/+30
tdb_increment_seqnum_nonblock Cc: 597386@bugs.debian.org Signed-off-by: Kirill Smelkov <kirr@landau.phys.spbu.ru> Signed-off-by: Jelmer Vernooij <jelmer@samba.org>
2010-09-19pytdb: Update open flags to match those for tdb_open() in tdb.hKirill Smelkov1-0/+6
Namely TDB_NOSYNC, TDB_SEQNUM, TDB_VOLATILE, TDB_ALLOW_NESTING and TDB_DISALLOW_NESTING were missing. Cc: 597386@bugs.debian.org Signed-off-by: Kirill Smelkov <kirr@mns.spb.ru> Signed-off-by: Jelmer Vernooij <jelmer@samba.org>
2010-09-19pytdb: Fix repr segfault for internal dbKirill Smelkov2-1/+11
The problem was tdb->name is NULL for TDB_INTERNAL databases, and so it was crashing ... #0 0xb76944f3 in strlen () from /lib/i686/cmov/libc.so.6 #1 0x0809862b in PyString_FromFormatV (format=0xb72b6a26 "Tdb('%s')", vargs=0xbfc26a94 "") at ../Objects/stringobject.c:211 #2 0x08098888 in PyString_FromFormat (format=0xb72b6a26 "Tdb('%s')") at ../Objects/stringobject.c:358 #3 0xb72b65f2 in tdb_object_repr (self=0xb759e060) at ./pytdb.c:439 Cc: 597089@bugs.debian.org Signed-off-by: Kirill Smelkov <kirr@mns.spb.ru> Signed-off-by: Jelmer Vernooij <jelmer@samba.org>
2010-09-19pytdb: Add support for tdb_add_flags() & tdb_remove_flags()Kirill Smelkov2-0/+27
Note, unlike tdb_open where flags is `int', tdb_{add,remove}_flags want flags as `unsigned', so instead of "i" I used "I" in PyArg_ParseTuple. Cc: 597386@bugs.debian.org Signed-off-by: Kirill Smelkov <kirr@mns.spb.ru> Signed-off-by: Jelmer Vernooij <jelmer@samba.org>
2010-09-16tdb: added TDB_NO_FSYNC env variableAndrew Tridgell1-0/+4
this might help reduce test times and load on test machines
2010-09-14tdb: add ABI/tdb-1.2.4.sigsStefan Metzmacher1-0/+60
metze
2010-09-13lib/tdb: change version to 1.2.4 after hash checking improvmentsStefan Metzmacher2-2/+2
lib/tdb: change version to 1.2.4 after hash checking improvments metze Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2010-09-13tdb: put example hashes into header, so we notice incorrect hash_fn.Rusty Russell3-2/+65
This is Stefan Metzmacher <metze@samba.org>'s patch with minor changes: 1) Use the TDB_MAGIC constant so both hashes aren't of strings. 2) Check the hash in tdb_check (paranoia, really). 3) Additional check in the (unlikely!) case where both examples hash to 0. 4) Cosmetic changes to var names and complaint message. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2010-09-13tdb: fix tdb_check() on other-endian tdbs.Rusty Russell1-1/+1
We must not endian-convert the magic string, just the rest. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2010-09-13tdb: fix tdb_check() on read-only TDBs to actually work.Rusty Russell1-5/+17
Commit bc1c82ea137 "Fix tdb_check() to work with read-only tdb databases." claimed to do this, but tdb_lockall_read() fails on read-only databases. Also make sure we can still do tdb_check() inside a transaction (weird, but we previously allowed it so don't break the API). Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2010-09-13tdb: make check more robust against recovery failures.Rusty Russell1-5/+36
We can end up with dead areas when we die during transaction commit; tdb_check() fails on such a (valid) database. This is particularly noticable now we no longer truncate on recovery; if the recovery area was at the end of the file we used to remove it that way. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2010-08-31tdb/waf: the deps for rt are provided by libreplaceBjörn Jacke1-1/+1
2010-08-22Use DocBook DTD rather than Samba one, as no Samba-specific things areJelmer Vernooij3-3/+3
used in the tdb manpages.
2010-08-14tdb: workaround starvation problem in locking entire database.Rusty Russell4-19/+131
We saw tdb_lockall() take 71 seconds under heavy load; this is because Linux (at least) doesn't prevent new small locks being obtained while we're waiting for a big log. The workaround is to do divide and conquer using non-blocking chainlocks: if we get down to a single chain we block. Using a simple test program where children did "hold lock for 100ms, sleep for 1 second" the time to do tdb_lockall() dropped signifiantly. There are ln(hashsize) locks taken in the contended case, but that's slow anyway. More analysis is given in my blog at http://rusty.ozlabs.org/?p=120 This may also help transactions, though in that case it's the initial read lock which uses this gradual locking routine; the update-to-write-lock code is separate and still tries to update in one go. Even though ABI doesn't change, minor version bumped so behavior change can be easily detected. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2010-08-13tdb: add TDB_DEPS variable filled with required librariesBjörn Jacke3-7/+14
This is required for Solaris, which needs to link in librt to make use of fdatasync().
2010-07-29Fix tdb_check() to work with read-only tdb databases. The function ↵Jeremy Allison1-3/+3
tdb_lockall() uses F_WRLCK internally, which doesn't work on a fd opened with O_RDONLY. Use tdb_lockall_read() instead. Jeremy.
2010-07-01tdb: fix the build on mac os x 10.6.4.Günther Deschner1-0/+4
Guenther
2010-06-24s4-ldb: use CHECK_XSLTPROC_MANPAGES()Andrew Tridgell1-2/+1
2010-06-19pytdb: Cleanup formatting.Jelmer Vernooij1-3/+8
2010-06-19wafsamba: Fix typo: noextenion -> noextension.Jelmer Vernooij1-1/+1
2010-05-31tdb-waf: Don't install binaries when using system tdb.Jelmer Vernooij1-17/+17
2010-05-31tdb-waf: Simplify manpage handling.Jelmer Vernooij1-17/+4
2010-05-31s4-waf: sanitize library names like the old build system did, only addJelmer Vernooij1-1/+1
-samba4 suffix for libraries that are bundled.
2010-05-11tdb: commit ABI/tdb-1.2.2.sigsStefan Metzmacher1-0/+60
metze
2010-05-11tdb: remove unused variable in tdb_new_database().Günther Deschner1-1/+0
Guenther
2010-05-05tdb: fix short write logic in tdb_new_databaseRusty Russell3-17/+17
Commit 207a213c/24fed55d purported to fix the problem of signals during tdb_new_database (which could cause a spurious short write, hence a failure). However, the code is wrong: newdb+written is not correct. Fix this by introducing a general tdb_write_all() and using it here and in the tracing code. Cc: Stefan Metzmacher <metze@samba.org> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2010-04-21build: make python development headers not mandatory in standalone libsAndrew Tridgell1-1/+1
This needed an update to the python tool in waf thanks to Kai for spotting this
2010-04-20tdb: update tdb ABI to use hide_symbols=TrueAndrew Tridgell5-78/+67
We now use -fvisibilty=hidden to hide symbols from outside the tdb shared library. This also moved tdb_transaction_recover() into the tdb_private.h header, as it should never have been a public API. For that reason we are changing the version number. We're only doing a minor version increment as it is extremely unlikely that anyone was actually using tdb_transaction_recover() as its locking requirements were rather unusual. Pair-Programmed-With: Rusty Russell <rusty@samba.org>
2010-04-18s4-waf: rebuild signature files with the api type mapsAndrew Tridgell1-5/+5
This is not strictly necessary, as the old types would compare equal, but it is neater to use the generic type names
2010-04-18tdb-waf: added ABI checking for tdbAndrew Tridgell2-0/+97
2010-04-13s4-waf: don't try to use the system lib for the library buildAndrew Tridgell1-5/+6
when building library FOO, don't try to find the system library FOO Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2010-04-13tdb-waf: added build of manpages and config options for RPM buildAndrew Tridgell1-3/+44
Building a RPM from the fedora spec file now works with minimal changes Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2010-04-12build: use a common autogen-waf.sh for all buildsAndrew Tridgell1-22/+1
the symlink will get updated with the right target when waf dist is used in each directory
2010-04-11subunit: Support formatting compatible with upstream subunit, for consistency.Jelmer Vernooij1-1/+1
Upstream subunit makes a ":" after commands optional, so I've fixed any places where we might trigger commands accidently. I've filed a bug about this in subunit.
2010-04-06s4-waf: fixed waf distcheck for our standalone libs and s4Andrew Tridgell1-0/+4
2010-04-06s4-waf: added simple 'waf test' support for tdb, talloc and ldbAndrew Tridgell1-0/+6
2010-04-06s4-waf: autogen-waf.sh for the standalone library buildsAndrew Tridgell1-0/+22
2010-04-06s4-waf: use a common pattern for finding buildtools and libsAndrew Tridgell1-11/+7
2010-04-06s4-waf: move to a universal method of recursing into subdirsAndrew Tridgell1-3/+3
This works with both standalone lib builds and bundled builds
2010-04-06s4-waf: fixed finding of buildtools and srcdirAndrew Tridgell1-7/+6
2010-04-06s4-waf: avoid having to run waf configure before waf distAndrew Tridgell1-2/+3
This should be useful for building tarballs from a clean checkout
2010-04-06s4-waf: allow standalone tarball build of librariesAndrew Tridgell1-2/+9
2010-04-06s4-waf: added 'waf dist' to our standalone libs as wellAndrew Tridgell1-1/+3
2010-04-06s4-waf: added implied_deps for system librariesAndrew Tridgell1-1/+2
when we use a system version of a library such as talloc, then we no longer get the automtica dependency propogation of talloc implying libreplace. That means we don't get the includes for libreplace, which means things can fail to build. To fix this this change adds an implied_deps option to CHECK_BUNDLED_SYSTEM(), which tells the samba_deps module to add an implied dependency on the listed targets if the system library is chosen.
2010-04-06s4-waf: support the use of system librariesAndrew Tridgell1-5/+10
distros can set --bundled-libraries=NONE to force use of all system libraries. If the right version isn't found then configure will fail. Users may choose which libraries to use from the system, and which to use bundled libs. The default is to try system libs, and use them if their version matches the one in the source tree.
2010-04-06s4-waf: set default for bundled librariesAndrew Tridgell1-1/+2
2010-04-06s4-waf: set the bundled library extension for some libsAndrew Tridgell1-0/+1