summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2012-06-19ntdb: inline oob checkRusty Russell6-14/+24
The simple "is it in range" check can be inline; complex cases can be handed through to the normal or transaction handler. NTDB speed: Adding 10000 records: 4111-9983(9149) ns (815528 bytes) Finding 10000 records: 1667-4464(3810) ns (815528 bytes) Missing 10000 records: 1511-3992(3546) ns (815528 bytes) Traversing 10000 records: 1698-4254(3724) ns (815528 bytes) Deleting 10000 records: 3608-7998(7358) ns (815528 bytes) Re-adding 10000 records: 3259-8504(7805) ns (815528 bytes) Appending 10000 records: 5393-13579(12356) ns (1274312 bytes) Churning 10000 records: 6966-17813(16136) ns (1274312 bytes) NTDB speed in transaction: Adding 10000 records: 916-2230(2004) ns (815528 bytes) Finding 10000 records: 330-866(770) ns (815528 bytes) Missing 10000 records: 196-520(471) ns (815528 bytes) Traversing 10000 records: 356-879(800) ns (815528 bytes) Deleting 10000 records: 505-1267(1108) ns (815528 bytes) Re-adding 10000 records: 658-1681(1477) ns (815528 bytes) Appending 10000 records: 1088-2827(2498) ns (1274312 bytes) Churning 10000 records: 1636-4267(3785) ns (1274312 bytes) smbtorture results: ntdb speed 85588-189430(157110) ops/sec
2012-06-19ntdb: allocator attribute.Rusty Russell15-92/+311
This is designed to allow us to make ntdb_context (and NTDB_DATA returned from ntdb_fetch) a talloc pointer. But it can also be used for any other alternate allocator. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2012-06-19ntdb: still prepare recovery area with NTDB_NOSYNC.Rusty Russell1-10/+8
NTDB_NOSYNC now just prevents the fsync/msync calls, which speeds testing while still providing full coverage. It also provides safety against processes dying during transaction commit (though obviously, not against the machine dying). Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2012-06-19ntdb: simply disallow NULL names.Rusty Russell3-10/+5
TDB allows this for internal databases, but it's a bad idea, since the name is useful for logging. They're a hassle to deal with, and we'd just end up putting "unnamed" in there, so let the user deal with it. If they don't, they get an informative core dump. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2012-06-19ntdb: reduce transaction pagesize from 64k to 16k.Rusty Russell1-1/+1
The performance numbers for transaction pagesize are indeterminate: larger pagesizes means a smaller transaction array, and a better chance of having a contiguous record (more efficient for ntdb_parse_record and some internal operations inside a transaction). On the other hand, large pagesize means more I/O even if we change a few bytes. But it also controls the multiple by which we will enlarge the file, and hence the minimum db size. It's 4k for tdb1, but 16k seems reasonable in these modern times. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2012-06-19ntdb: remove last block transactoin logic.Rusty Russell1-44/+1
Now our database is always a multiple of NTDB_PGSIZE, we can remove the special handling for the last block. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2012-06-19ntdb: create initial database to be multiple of NTDB_PGSIZE.Rusty Russell8-88/+138
As copied from tdb1, there is logic in the transaction code to handle a non-PGSIZE multiple db, but in fact this only happens for a completely unused database: as soon as we add anything to it, it is expanded to a NTDB_PGSIZE multiple. If we create the database with a free record which pads it out to NTDB_PGSIZE, we can remove this last-page-is-different logic. Of course, the fake ntdbs we create in our tests now also need to be multiples of NTDB_PGSIZE, so we change some numbers there too. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2012-06-19ntdb: make sure file is always a multiple of PAGESIZE (now NTDB_PGSIZE)Rusty Russell6-46/+73
ntdb uses tdb's transaction code, and it has an undocumented but implicit assumption: that the transaction recovery area is always aligned to the transaction pagesize. This means that no block will overlap the recovery area. This is maintained by rounding the size of the database up, so do the same for ntdb. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2012-06-19ntdb: fix recovery data write.Rusty Russell2-9/+36
We were missing the last few bytes. Found by 100 runs of ntdbtorture -t -k. The transaction test code didn't catch this, because usually those last few bytes are irrelevant to the actual contents of the database. We fix the test. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2012-06-19ntdb: enhance external-helper test code.Rusty Russell6-18/+36
Our external test helper is a bit primitive when it comes to doing STORE or FETCH commands: let us specify the data we expect, instead of assuming it's the same as the key. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2012-06-19ntdb: use NTDB_LOG_WARNING level for failed open() without O_CREAT.Rusty Russell2-1/+11
This is a fairly common pattern in Samba, and if we log an error on every open it spams the logs. On the other hand, other errors are potentially more serious, so we still use NTDB_LOG_ERROR on them. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2012-06-19ccan: remove bogus debug print.Rusty Russell1-1/+0
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2012-06-19ntdb: make fork test more thorough.Rusty Russell2-9/+29
We document that the child of a fork() can do a brunlock() if the parent does a brlock: we should not log an error when they do this. Also, test the case where we fork() and return inside a parse function (which is allowed). Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2012-06-19ntdb: print \n at end of log messages in tests.Rusty Russell1-1/+1
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2012-06-19ntdb: reduce race between creating file and getting open lock.Rusty Russell1-23/+30
In tdb, we grab the open lock immediately after we open the file. In ntdb, we usually did some work first. tdbtorture managed to get in before the creator grabbed the lock: testing with 3 processes, 5000 loops, seed=1338246020 ntdb:torture.ntdb:IO Error:ntdb_open: torture.ntdb is not a ntdb file 29023:torture.ntdb:db open failed At cost of a little duplicated code, we can reduce the race. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2012-06-19ntdb: catch any valgrind errors in testRusty Russell1-2/+2
Make --valgrind and --valgrind-log options work! Amitay figured this out! Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2012-06-19ntdb: catch any valgrind errors in testRusty Russell1-1/+1
We need --error-exitcode=, otherwise valgrind errors don't cause the test to fail. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2012-06-19ntdb: remove ntdb_error()Rusty Russell14-190/+144
It was a hack to make compatibility easier. Since we're not doing that, it can go away: all callers must use the return value now. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2012-06-19TDB2: Goodbye TDB2, Hello NTDB.Rusty Russell148-13728/+13586
This renames everything from tdb2 to ntdb: importantly, we no longer use the tdb_ namespace, so you can link against both ntdb and tdb if you want to. This also enables building of standalone ntdb by the autobuild script. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2012-06-19tdb2: Fix typo in TDB1_porting.txtKirill Smelkov1-1/+1
Judging by code it's tdb1, where you needed to free old key's dptr manually. Signed-off-by: Kirill Smelkov <kirr@mns.spb.ru> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2012-06-19TDB2: more internal cleanups after TDB1 compatibility removal.Rusty Russell13-263/+239
This eliminates the separate tdb2 substructure, and makes some tdb1-required functions static. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2012-06-19TDB2: remove TDB1 compatibility.Rusty Russell95-8164/+160
This rips out all the TDB1 compatibility from tdb2. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2012-06-19TDB2: make SAMBA use tdb1 again for the moment.Rusty Russell17-535/+10
Otherwise the following surgery will break the SAMBA build and testsuite. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2012-06-19ccan: check for err.h ourselvesRusty Russell2-0/+3
Heimdal does this, but that doesn't help the autoconf build or the standalone libntdb build. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2012-06-19WHATSNEW: Fix typo.Jelmer Vernooij1-1/+1
"dcerpc endpoint services" -> "dcerpc endpoint servers" Autobuild-User(master): Jelmer Vernooij <jelmer@samba.org> Autobuild-Date(master): Tue Jun 19 04:40:12 CEST 2012 on sn-devel-104
2012-06-19tdb/wscript: Remove unecessary semicolons.Jelmer Vernooij1-4/+4
2012-06-19wafsamba/irixcc: add '-c99' option to ccStefan Metzmacher1-1/+3
Lets see if this fixes the build on IRIX. metze Autobuild-User(master): Stefan Metzmacher <metze@samba.org> Autobuild-Date(master): Tue Jun 19 02:42:21 CEST 2012 on sn-devel-104
2012-06-18Revert "s3: temporary hack to make the waf build work withouth autotools ↵Björn Jacke1-1/+0
being required" This reverts commit f1becfa27b6b4e35541e6df0cafdec0ad47d2e3f. The hack was actually only required due to a configuration issue in our buildfarm scripts. Autobuild-User(master): Björn Jacke <bj@sernet.de> Autobuild-Date(master): Mon Jun 18 20:07:08 CEST 2012 on sn-devel-104
2012-06-18selftest/flapping: samba4.nss.test is also flakey for s3memberStefan Metzmacher1-1/+1
[1426/1518 in 1h24m58s] samba4.nss.test using winbind(s3member) UNEXPECTED(failure): samba4.nss.test using winbind(s3member).run nsstest(s3member) REASON: _StringException: _StringException: ERROR setpwent: NSS_STATUS=-1 1 (nss_errno=0) ERROR getpwent: NSS_STATUS=-1 1 (nss_errno=0) ERROR endpwent: NSS_STATUS=-1 1 (nss_errno=0) ERROR setgrent: NSS_STATUS=-1 1 (nss_errno=0) ERROR getgrent: NSS_STATUS=-1 1 (nss_errno=0) ERROR endgrent: NSS_STATUS=-1 1 (nss_errno=0) ERROR Non existent user gave error -1 ERROR Non existent uid gave error -1 ERROR Non existent group gave error -1 ERROR Non existent gid gave error -1 total_errors=10 metze Autobuild-User(master): Stefan Metzmacher <metze@samba.org> Autobuild-Date(master): Mon Jun 18 17:59:25 CEST 2012 on sn-devel-104
2012-06-18s3:autoconf: add -Iautoconf -Iautoconf/source3 at configure stageStefan Metzmacher2-3/+2
There're some configure tests which require this. metze
2012-06-18s3:Makefile.in: remove pidl generated files with 'make realdistclean'Stefan Metzmacher1-0/+1
metze
2012-06-18s3:Makefile.in: fix 'make realdistclean' after moving generated files to ↵Stefan Metzmacher1-1/+1
autoconf/ metze
2012-06-18s3:Makefile.in: fix 'make clean' after moving generated files to autoconf/Stefan Metzmacher1-6/+5
metze
2012-06-18s3:autogen.sh: fix autoconf/lib/param/param_proto.h locationStefan Metzmacher1-1/+1
metze
2012-06-18lib/param: add missing prototype of lpcfg_parm_long()Stefan Metzmacher1-0/+3
metze
2012-06-18s3:autoconf-build: build the idmap backends tdb2, rid, and hash by default ↵Michael Adam1-0/+3
(shared) Autobuild-User(master): Michael Adam <obnox@samba.org> Autobuild-Date(master): Mon Jun 18 13:38:50 CEST 2012 on sn-devel-104
2012-06-18s3:waf-build: build the idmap backends tdb2, rid, and hash by default (shared)Michael Adam1-1/+2
2012-06-18s3:idmap_tdb: fix miss in rename of dbwrap_trans_store_uint32() to ↵Michael Adam1-4/+4
dbwrap_trans_store_uint32_bystring()
2012-06-18dbwrap: Rename dbwrap_fetch_uint32->dbwrap_fetch_uint32_bystringAmitay Isaacs1-2/+2
Signed-off-by: Michael Adam <obnox@samba.org>
2012-06-18s3:configure: check for SPLICE_F_MOVE at configure stageStefan Metzmacher2-2/+2
This should fix the waf build on AIX, which has a splice symbol. metze Autobuild-User(master): Stefan Metzmacher <metze@samba.org> Autobuild-Date(master): Mon Jun 18 11:43:01 CEST 2012 on sn-devel-104
2012-06-17heimdal:lib/wind: include <stdlib.h> at the endStefan Metzmacher3-3/+3
This makes sure config.h gets includes first. This should fix the build on AIX. metze Autobuild-User(master): Stefan Metzmacher <metze@samba.org> Autobuild-Date(master): Sun Jun 17 16:16:24 CEST 2012 on sn-devel-104
2012-06-16heimdal:lib/wind: make sure errorlist_table.c includes config.h as first headerStefan Metzmacher1-1/+1
This should fix the build on AIX. metze Autobuild-User(master): Stefan Metzmacher <metze@samba.org> Autobuild-Date(master): Sat Jun 16 23:59:07 CEST 2012 on sn-devel-104
2012-06-16attr: Look for attr/attributes.h too.Jelmer Vernooij3-2/+4
Fixes finding of ATTR_ROOT on GNU/kFreeBSD. Autobuild-User(master): Jelmer Vernooij <jelmer@samba.org> Autobuild-Date(master): Sat Jun 16 18:54:27 CEST 2012 on sn-devel-104
2012-06-16heimdal:lib/krb5: don't name a struct 'token'Stefan Metzmacher1-1/+1
This is a static const struct and the name is never used, so just make it an anonymous struct. This hopefully fixes the build on AIX: "../source4/heimdal/lib/roken/roken-common.h", line 276.9: 1506-236 (W) Macro name __attribute__ has been redefined. "../source4/heimdal/lib/roken/roken-common.h", line 276.9: 1506-358 (I) "__attribute__" is defined on line 45 of ../source4/heimdal/lib/com_err/com_err.h. "../source4/heimdal/lib/krb5/expand_path.c", line 331.21: 1506-334 (S) Identifier token has already been defined on line 98 of "/usr/include/net/if_arp.h". "../source4/heimdal/lib/krb5/expand_path.c", line 390.43: 1506-019 (S) Expecting an array or a pointer to object type. "../source4/heimdal/lib/krb5/expand_path.c", line 391.31: 1506-019 (S) Expecting an array or a pointer to object type. "../source4/heimdal/lib/krb5/expand_path.c", line 392.20: 1506-019 (S) Expecting an array or a pointer to object type. "../source4/heimdal/lib/krb5/expand_path.c", line 392.48: 1506-019 (S) Expecting an array or a pointer to object type. "../source4/heimdal/lib/krb5/expand_path.c", line 393.39: 1506-019 (S) Expecting an array or a pointer to object type. Waf: Leaving directory `/opt/home/build/build_farm/samba_4_0_test/bin' Build failed: -> task failed (err #1): {task: cc expand_path.c -> expand_path_52.o} gmake: *** [all] Error 1 metze Autobuild-User(master): Stefan Metzmacher <metze@samba.org> Autobuild-Date(master): Sat Jun 16 15:20:59 CEST 2012 on sn-devel-104
2012-06-16s3-auth: Remove auth_netlogondAndrew Bartlett6-467/+1
auth_netlogond was an important module in the development of the combined Samba 4.0, and was the first module to link smbd with the AD authentication store, showing that it was possible for NTLM authentication to be offloaded to the AD server components. We now have auth_samba4, which provides the full GENSEC stack to smbd, which also matches exactly the group membership and privileges assignment and which is supported and tested as part of the official Samba 4.0 release configuration. Andrew Bartlett Autobuild-User(master): Andrew Bartlett <abartlet@samba.org> Autobuild-Date(master): Sat Jun 16 10:13:20 CEST 2012 on sn-devel-104
2012-06-16s3-passdb: Remove pdb_adsAndrew Bartlett5-2709/+1
pdb_ads was an important module in the development of the combined Samba 4.0, and was the first module to show that standard samba3 tools such as smbpasswd can be made to operate on the sam.ldb. We now have pdb_samba4, which operates directly on the sam.ldb, rather than via ldapi://, which uses transactions and which is supported and tested as part of the official Samba 4.0 release configuration. This module is not as complete (for example, it does not honour the idmap configuration) and requires that the samba binary be running to operate. Andrew Bartlett
2012-06-16s4-classicupgrade: Also ask testparm for 'smb passwd file'Andrew Bartlett1-0/+2
2012-06-16WHATSNEW: Bump the version and announce the s3fs defaultAndrew Bartlett1-23/+28
2012-06-16s4-classicupgrade: Use "samba classic" description for samba3 NT4-like ↵Andrew Bartlett2-11/+13
domains in samba3upgrade
2012-06-16s4-lib/param: FLAG DAY for the default FILE SERVERAndrew Bartlett3-7/+8
This commit changes the default file server to be s3fs. Existing installs wishing to keep the ntvfs file server need to set this in their smb.conf: server services = +smb -s3fs dcerpc endpoint services = +winreg +srvsvc Andrew Bartlett