gencache: Remove transaction-based tdb
authorVolker Lendecke <vl@samba.org>
Thu, 11 Oct 2018 10:52:40 +0000 (12:52 +0200)
committerJeremy Allison <jra@samba.org>
Tue, 6 Nov 2018 17:57:26 +0000 (18:57 +0100)
commit1386200be5c583c680c3894a11688a0e0a3d2285
treee11fc6d2683e1fad611455cac8448e4c166a1dfc
parenta1e13b4a5dd98bd13790c52e5745b8d04e1bda15
gencache: Remove transaction-based tdb

At more than one large site I've seen significant problems due to
gencache_stabilize. gencache_stabilize was mainly introduced to
survive machine crashes with the cache still being in place. Given
that most installations crash rarely and this is still a cache, this
safety is overkill and causes real problems.

With the recent changes to tdb, we should be safe enough to run on
completely corrupted databases and properly detect errors. A further
commit will introduce code that wipes the gencache.tdb if such a
corruption is detected.

There is one kind of corruption that we don't properly handle:
Orphaned space in the database. I don't have a good idea yet how to
handle this in a graceful and efficient way during normal operations,
but maybe this idea pops up at some point.

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
source3/lib/gencache.c
source3/lib/gencache.h
source3/nmbd/nmbd.c
source3/smbd/server_exit.c
source3/torture/test_namemap_cache.c
source3/utils/net.c
source3/utils/net_cache.c
source3/winbindd/winbindd.c