1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-12 09:18:10 +03:00
samba-mirror/lib
Rusty Russell ec96ea690e tdb: handle processes dying during transaction commit.
tdb transactions were designed to be robust against the machine
powering off, but interestingly were never designed to handle the case
where an administrator kill -9's a process during commit.  Because
recovery is only done on tdb_open, processes with the tdb already
mapped will simply use it despite it being corrupt and needing
recovery.

The solution to this is to check for recovery every time we grab a
data lock: we could have gained the lock because a process just died.
This has no measurable cost: here is the time for tdbtorture -s 0 -n 1
-l 10000:

Before:
	2.75 2.50 2.81 3.19 2.91 2.53 2.72 2.50 2.78 2.77 = Avg 2.75

After:
	2.81 2.57 3.42 2.49 3.02 2.49 2.84 2.48 2.80 2.43 = Avg 2.74

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2010-02-24 13:23:58 +10:30
..
async_req async_sock: return -1/EPIPE if we're getting an end of file on read. 2009-09-21 06:04:53 +02:00
compression Spelling fixes for lib/compression. 2010-02-22 21:45:33 +01:00
crypto Change uint_t to unsigned int in lib/crypto 2010-02-02 07:18:16 +01:00
nss_wrapper Spelling fixes for nss_wrapper. 2010-02-22 21:45:33 +01:00
popt Spelling fixes for popt API documentation. 2010-02-22 21:45:32 +01:00
replace libreplace: Remove the obsolete signal type cast. 2010-02-23 12:23:45 +01:00
smbconf s3:smbconf: move smbconf_share_exists checks into backend 2009-03-04 22:49:24 +01:00
socket_wrapper socket_wrapper: also ignore AF_INET6 in swrap_setsockopt() 2010-02-17 14:13:55 +01:00
subunit subunit/testtools: Include newer version. 2010-01-16 19:56:21 +13:00
talloc release-scripts: parametrize scripts 2010-02-08 10:29:06 -05:00
tdb tdb: handle processes dying during transaction commit. 2010-02-24 13:23:58 +10:30
tdr tdr-test: Fix 'push_charset' test 2009-12-08 12:39:10 +11:00
tevent Spelling fixes for tevent. 2010-02-22 21:45:32 +01:00
torture fixed the build 2009-11-18 12:46:45 +11:00
tsocket Spelling fixes for tsocket API documentation. 2010-02-22 21:45:33 +01:00
uid_wrapper s4:UID wrapper - Make it work on older distributions 2010-02-05 19:47:26 +01:00
util libutil: Remove obsolete signal type cast. 2010-02-23 12:23:44 +01:00
zlib Spelling fixes in lib/zlib. 2010-02-22 21:45:35 +01:00
README Remove unused init function in subunit code. 2008-11-16 01:36:17 +01:00

compression - Various compression algorithms (MSZIP, lzxpress)
nss_wrapper - Wrapper for the user and group NSS API allowing the use 
              of other data sources.
popt - Command-line option parsing library
replace - Provides replacements for standard (POSIX, C99) functions 
          not provided by the host platform.
socket_wrapper - Wrapper library allowing TCP/IP traffic to be redirected 
                 over Unix domain sockets.
talloc - Hierarchical pool based memory allocator 
tdb - Simple but fast key/value database library, supporting multiple writers
torture - Simple unit testing helper library