Jeremy Allison
8eec62ebfb
Fix the "too many fcntl locks" scalability problem raised by tridge.
...
I've now tested this in daemon mode and also on xinetd and I'm pretty
sure it's working.
Jeremy.
(This used to be commit 14dee03801
)
2004-02-19 01:55:24 +00:00
Tim Potter
6d69dd9ae2
Don't log an error in tdb_brlock() if a non-blocking lock returns EAGAIN -
...
it's supposed to do that.
(This used to be commit 2423a45947
)
2004-02-01 10:55:54 +00:00
Andrew Bartlett
c69e4746d0
In tdb_allocate(), we would create a new record by writing a local variable
...
'newrec' into the tdb.
This was not initialised, so valgrind warned about it.
(Note: valgrind only makes sense on tdbs with 'mmap = no' in your smb.conf)
Andrew Bartlett
(This used to be commit c9f9d6d317
)
2004-01-08 05:37:23 +00:00
Tim Potter
11bbf14d58
Add some debugs in the error paths for tdb_brlock() to help track down
...
a locking problem on HPUX.
(This used to be commit 2d03d81f75
)
2003-10-24 05:44:19 +00:00
Andrew Tridgell
f4d9600e68
fixed spinlocks in tdb
...
I still wouldn't recommend them, but at least they now work
(This used to be commit 76992e7d16
)
2003-10-18 08:52:16 +00:00
Jeremy Allison
6007eae339
Change some internal interfaces to cause the hash (which is *expensive*)
...
to be calculated less often. No change to external interface.
Jeremy.
(This used to be commit 155c9ce666
)
2003-09-06 19:59:12 +00:00
Andrew Tridgell
85cc64731c
fixed a bug found by volker
...
when we are traversing a readonly dababase we should not try to
cleanup the pending-delete records
(This used to be commit f327c06108
)
2003-06-20 14:48:36 +00:00
Tim Potter
844cac578e
Comment syncup.
...
(This used to be commit 72e7290daa
)
2003-04-14 03:49:03 +00:00
Tim Potter
14672bed8f
Merge of tdb_unlockeys() crash fix.
...
(This used to be commit 0eee7a4b1e
)
2003-03-13 06:54:10 +00:00
Martin Pool
d606f8cb1e
When opening an existing DB, don't require the hash_size specified to
...
the open call to be the same as that of the existing tdb. The
specified hash_size is only used if the tdb needs to be (re)created.
With this patch in place, tdbtool can open the printing tdbs, which
are created with a hash_size of 5000. Before it would fail with EIO.
(This used to be commit 7090d9f693
)
2003-03-11 04:41:22 +00:00
Jeremy Allison
7308d1574e
Ensure tdb error code is set for corrupt and i/o errors before calling
...
the log function. This allows the log function to take action.
Jeremy.
(This used to be commit fcaacb5fab
)
2003-02-20 19:03:11 +00:00
Jeremy Allison
2e45eda386
Ensure we overwrite a tdb if the hash size changes.
...
Jeremy.
(This used to be commit b300696cb5
)
2003-02-04 23:40:43 +00:00
Jeremy Allison
01fca9e10e
Added tdb_append() call. Efficiently adds to an entry. Used by new messaging
...
code. Also added torture tests for it.
Jeremy.
(This used to be commit 724cefabb0
)
2003-01-11 00:07:44 +00:00
Jeremy Allison
0c2f84dfd0
Add chainlock_read functions to get a read lock. Used in *massively*
...
contended tdb's (and I've got one :-).
Jeremy.
(This used to be commit d4b795e6a4
)
2002-11-09 03:36:47 +00:00
Jeremy Allison
9304248788
Merge of scalable printing code fix... Needs testing.
...
Jeremy.
(This used to be commit d030df7643
)
2002-11-07 02:15:35 +00:00
Jeremy Allison
3665777a5b
Add a timeout to tdb_lock_bystring(). Ensure we never have more than
...
MAX_PRINT_JOBS in a queue.
Jeremy.
(This used to be commit 9fe3c0b90d
)
2002-10-04 22:53:18 +00:00
Jeremy Allison
b0686fe821
Make explicit the difference between a tdb key with no data attached, and
...
a non existent entry. Stop a malloc(0) being called in the first case.
Jeremy.
(This used to be commit 7b841247bd
)
2002-09-26 21:02:47 +00:00
Gerald Carter
a834a73e34
sync'ing up for 3.0alpha20 release
...
(This used to be commit 65e7b5273b
)
2002-09-25 15:19:00 +00:00
Andrew Tridgell
e90b652848
updated the 3.0 branch from the head branch - ready for alpha18
...
(This used to be commit 03ac082dcb
)
2002-07-15 10:35:28 +00:00
Jeremy Allison
4ad0ff29bf
Added Shirish's client side caching policy change.
...
Jeremy.
(This used to be commit 16015c07ea
)
2002-04-10 01:04:13 +00:00
Simo Sorce
4f80466480
better check of called function's return
...
tdbtorture say it's ok
(This used to be commit af0fa4cf7c
)
2002-04-07 22:02:09 +00:00
Andrew Bartlett
d79e11ad6d
Various comment fixes from Rafal Szczesniak <mimir@diament.ists.pwr.wroc.pl>
...
(This used to be commit 3bf4b42771
)
2002-03-01 01:24:30 +00:00
Jeremy Allison
b06749d73c
Memory leak on error condition fixed by Kian Win <codegrunt@rubbercookie.com>.
...
Jeremy.
(This used to be commit 9dae1398b4
)
2002-02-27 17:48:45 +00:00
Tim Potter
cd68afe312
Removed version number from file header.
...
Changed "SMB/Netbios" to "SMB/CIFS" in file header.
(This used to be commit 6a58c9bd06
)
2002-01-30 06:08:46 +00:00
Tim Potter
a4bd608b48
Raise log level of warning produced when the open() of the tdb fails.
...
Sometimes an open error is OK.
(This used to be commit 5fb3be6291
)
2002-01-22 00:38:36 +00:00
Jeremy Allison
d3e9213af7
Move SAFE_FREE into tdb.c to stop exporting it into tdb.h namespace.
...
Jeremy.
(This used to be commit 4f703b84cd
)
2002-01-09 18:26:39 +00:00
Jeremy Allison
4178f211d1
debug statement fixups.
...
Merge SAFE_FREE fix in tdb from 2.2, and IRIX fix.
Jeremy.
(This used to be commit eb66074665
)
2002-01-02 23:28:55 +00:00
Andrew Tridgell
84ecd95dba
more irix -64 portability fixes
...
(This used to be commit 65e857b36e
)
2001-12-31 14:05:22 +00:00
Jeremy Allison
e0d3a9e443
Must check against -1 for fcntl error check.
...
Jeremy
(This used to be commit 1d2504b5c7
)
2001-12-13 02:34:43 +00:00
Jeremy Allison
9bb0a964bf
Fix up warnings. Make tdb_openXX() names const.
...
Jeremy.
(This used to be commit 9e3581827d
)
2001-12-11 08:31:58 +00:00
Martin Pool
6f151481da
Doc.
...
(This used to be commit 6c684c89a4
)
2001-12-10 07:29:34 +00:00
Martin Pool
ebc1f6fda3
Allow for internal databases which may have no name.
...
(This used to be commit caa08bb56e
)
2001-12-10 07:27:20 +00:00
Martin Pool
dd9bdec3aa
Log more error messages.
...
(This used to be commit 8118676f78
)
2001-12-10 07:02:58 +00:00
Martin Pool
98d6d8cf9c
Log more error messages.
...
(This used to be commit b50e566ab9
)
2001-12-10 07:02:24 +00:00
Martin Pool
8c31fd48c8
Allocate tdb name up front in case log functions want to use it.
...
(This used to be commit a228c7efcc
)
2001-12-10 06:09:42 +00:00
Martin Pool
ddeecec1f8
tdb_open_ex: More cleanups: just dynamically allocate the TDB_CONTEXT
...
up front, rather than working on the stack and then copying across.
(This used to be commit b1d7d80068
)
2001-12-10 05:29:47 +00:00
Martin Pool
dddef5d5b2
Refactor code to check whether already open into its own function.
...
(This used to be commit 52ef112e10
)
2001-12-10 05:22:04 +00:00
Martin Pool
77d800fb3e
tdb_open_ex should always "goto fail" in case of error, rather than
...
just returning. I don't think this would leak at the moment, but it's
an accident waiting to happen.
(This used to be commit fe901ec194
)
2001-12-10 05:12:52 +00:00
Martin Pool
70f27f1b52
Doc.
...
(This used to be commit bb6c0df4bc
)
2001-12-10 05:08:22 +00:00
Martin Pool
5fea33ab58
tdb_open_ex: Continue previous refactoring so that we consistently
...
just say "tdb" not "&tdb".
(This used to be commit fac685d30f
)
2001-12-10 05:05:21 +00:00
Martin Pool
ce654f5e55
tdb_open_ex: Refactor to use a pointer to tdb, rather than an auto
...
tdb, to be consistent with the rest of the code.
(This used to be commit d159415049
)
2001-12-10 05:00:36 +00:00
Martin Pool
84c19504d0
Put back changes to set errno, which seem to do no harm.
...
(This used to be commit 3dbb5dfcfb
)
2001-12-04 13:21:15 +00:00
Martin Pool
84503c81f0
undo
...
(This used to be commit fc176f15f2
)
2001-12-04 11:41:12 +00:00
Martin Pool
28e676d9c3
Implement suggestion from tridge to leave the old tdb_open interface
...
as it was, and add tdb_open_ex() which takes a log callback. I guess
this makes more sense since it's a public interface.
(This used to be commit 391a65395e
)
2001-12-04 11:25:44 +00:00
Martin Pool
7d9e09f527
Better error handling:
...
- tdb_open api changed so that you now pass an error handling
callback when opening the file, so that errors detected during
opening have somewhere to go. (All calls from the body of Samba to
this function go through a wrapper in tdbutil, which has been
updated.)
- Clean up logic for deciding how to open tdb. Emit log messages if
something goes wrong (e.g. bad magic.)
- tdbtool now logs errors to stderr.
(This used to be commit 0aa800618e
)
2001-12-04 07:40:25 +00:00
Martin Pool
6c3163cc97
Set errno in tdb_open in cases where we detect an error in opening the
...
database, but no underlying system call sets errno.
The particular case I had was a mangled .tdb, but there are others.
For this one, set EIO. It's a shame Unix messages aren't more
detailed -- "bad data format" would be better.
(This used to be commit 5630a988be
)
2001-12-04 02:58:42 +00:00
Tim Potter
e91226daea
Removed #ifdef TDB_DEBUG around tdb_dump_all() and tdb_printfreelist()
...
so that tdbtool can be compiled without having to make clean.
(This used to be commit dad688d8c6
)
2001-11-09 01:26:13 +00:00
Jeremy Allison
d96f052603
Don't core dump when using spinlocks on a read-only tdb. Unfortunately this
...
means that a read-write opener and a read-only opener are using different
locking mechanisms - this needs to be addressed, but it's hard as the
read-write opener using the spinlocks is usually first, so there's no
way to force them to change down to the fcntl method.
Read only access is less important anyway and can never corrupt the
tdb anyway, so errors in read-only record reads are more tolerable.
Jeremy
(This used to be commit 21f776df59
)
2001-10-16 22:10:23 +00:00
Jeremy Allison
754c2feee7
Fix for tdb_oob() on TDB_INTERNAL databases.
...
Jeremy.
(This used to be commit 2b135fba62
)
2001-10-12 00:01:35 +00:00
Jeremy Allison
3a17bab00f
Ensure accessing NT member servers works with a Samba PDC. Don't
...
change these timestamp settings without good reason.
Remove CLEAR_IF_FIRST flag is tdb is read-only.
Jeremy.
(This used to be commit a71d9d98b0
)
2001-10-03 22:58:37 +00:00