| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
metze
|
|
|
|
| |
(cherry picked from commit 8cb07814bc6627fc8eba228eafd13336e3ca3758)
|
|
|
|
| |
(cherry picked from commit 6f88c41c31271fd4b634b6393dc4ca44563a88d2)
|
|
|
|
| |
Jeremy.
|
|
|
|
| |
to do so may result in lost data. Fix an ifdef check, I really think we meant to check HAVE_MMAP here.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With the ctdb checkin dde9f3f006 tdb optimized out write lock checks for
write-enabled transaction. Sadly, this also removed the possibility to ever
remove dead records left over from tdb_delete calls within a transaction.
Tridge, please check this! Did dde9f3f006 have any reason beyond performance
optimizations?
Thanks,
Volker
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit fafb8ad2b81b9a46cf8259bedc1dca5023b06115.
This fix is not valid:
1. convert_string() is not only used for key strings but also for data.
2. Some databases use string_tdb_data() i.e. non-null-terminated strings
as keynames and others (like the one I was using), use
string_term_tdb_data(), i.e. zero-terminated key strings.
After discussion with Metze, the easiest (and proper way) to
handle this is to specify key names as "keyname\0" for databases
which use string_term_tdb_data().
Sorry for the noise...
Michael
(cherry picked from commit 17c012c4645f4e9542537c15f80d9b4e74304d11)
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This prevented all commands operating on keys (all non-traverse commands)
in tdbtool to fail with a "fetch failed" or "delete failed" message.
It seems that it fixes bug #2344 ...
Apparently this bug was introduced with 94e53472666ed in 2005.
Either nobody is using tdbtool or else tdb_find() has become
more strict about the key legth in the meantime. :-)
Michael
|
|
|
|
|
| |
used for tdb_traverse() to tdb_traverse_read().
Jeremy.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Calling tdb_traverse inside a transaction led to the transaction lock being
held indefinitely. This was caused by the tdb_transaction_lock/unlock inside
tdb_traverse: The transaction code holds the global lock at offset
TRANSACTION_LOCK. The call to tdb_transaction_lock does nothing because the
transaction_lock is already being held. tdb_transaction_unlock inside tdb_wrap
resets tdb->have_transaction_lock but does not release the kernel-level fcntl
lock. transaction_commit later on does not release that fcntl lock either,
because tdb->have_transaction_lock was already reset by tdb_transaction().
This patch does fix that problem for me. An alternative would be to make
tdb->have_transaction_lock a counter that can cope with proper nesting, maybe
in other places as well.
Volker
|
|
|
|
|
|
| |
(cherry picked from parts of commit 91d7ba5202e6c375456a42c2c6861f63c7fcfc20)
Michael
|
|
|
|
|
|
| |
(cherry picked from parts of c8947fda23eb874a7694bdee1b4de605744c2769)
Michael
|
|
|
|
|
|
|
|
|
| |
metze
(cherry picked from parts of commit c179807165b84dd832ab64f794034960668e5957.
The changes to lib/replaces have already been merged.)
Michael
|
|
|
|
|
|
| |
(cherry picked from parts of commit 91133d27110ee6447dbc64f1c8d52cb90ca1a86c)
Michael
|
|
|
|
|
|
|
|
| |
that.
(cherry picked from parts of commit 228dd6830eb9c91287bb3e0233d8b3a404ff3676)
Michael
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Tridge, Jeremy, please check!
Thanks,
Volker
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
minor fix to transaction_write_existing: tridge.
Jeremy.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
this. Fixes insidious problem with order n^2 freelist merging.
Jeremy.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Jeremy.
|
|
|
|
| |
Jeremy.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Mainly this is the svn changes :
------------------------------------------------------------------------
r23238 | tridge | 2007-05-30 01:15:49 -0700 (Wed, 30 May 2007) | 6 lines
merged transaction lock changes from ctdb
this ensures that having the global lock also implies the transaction
lock
------------------------------------------------------------------------
r22832 | tridge | 2007-05-13 18:00:06 -0700 (Sun, 13 May 2007) | 3 lines
merged the latest tdb changes from ctdb to Samba4
Jeremy.
|
|
|
|
|
|
|
|
| |
an alarm sig would not terminate and could lead
to runaway smbd processes.
Thanks to Dave Daugherty @ Centrify for pointing
this out to us.
Jeremy.
|
|
|
|
|
|
| |
libreplace testing.
metze
|
| |
|
|
|
|
| |
Guenther
|
|
|
|
|
|
| |
r23977.
Michael
|
| |
|
| |
|
| |
|
|
|
|
| |
Michael
|
|
|
|
|
|
|
|
|
| |
error condition to write. This is in tdb_new_database.
Fix one call to tdb_new_database in tdb_open_ex to not
overwrite the newly propagated errno (typically ENOSPC).
Michael
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* prevent infinite loops due to 0 bytes written:
try once more. if we still get 0 as return,
set errno to ENOSPC and return -1 (error)
* replace int by correct types (ssize_t and size_t).
* print a warning log message in case "written < requested to write"
usually this means, that the next call to pwrite will fail
with return value -1 and set errno accordingly.
Note that the former error condition "written != requested to write"
is not a correct error condition of write/pwrite. If this is due
to an error, a subsequent call to (p)write will reveal the cause
(typically "no space left on device" - ENOSPC).
Michael
|
|
|
|
|
|
|
| |
The proper error condition is (ret == -1) instead of
(ret != number_of_byte_told_to_write).
Michael
|
|
|
|
| |
Michael
|
| |
|