Rusty Russell [Wed, 29 Jul 2009 22:49:27 +0000 (08:19 +0930)]
Don't fail mysteriously on existing trace file.
Rusty Russell [Wed, 29 Jul 2009 12:52:31 +0000 (22:22 +0930)]
Import from SAMBA tdb:
commit
4b4fec65db4e202afa13b2d15867f4d8a54d154e
Author: Andrew Tridgell <tridge@samba.org>
Date: Thu May 28 16:08:28 2009 +1000
make TDB_NOSYNC affect all the fsync/msync calls in transactions
During a transaction commit tdb normally uses fsync/msync calls to
make it crash safe. This can be disabled using the TDB_NOSYNC flag,
but it wasn't disabling all the code paths that caused a fsync/msync.
Rusty Russell [Wed, 29 Jul 2009 12:51:34 +0000 (22:21 +0930)]
Import from SAMBA's tdb:
commit
a91bcbccf8a2243dac57cacec6fdfc9907580f69
Author: Jim McDonough <jmcd@samba.org>
Date: Thu May 21 16:26:26 2009 -0400
Detect tight loop in tdb_find()
Rusty Russell [Wed, 29 Jul 2009 12:36:44 +0000 (22:06 +0930)]
Import from SAMBA's tdb:
commit
b90863c0b7b860b006ac49c9396711ff351f777f
Author: Howard Chu <hyc@highlandsun.com>
Date: Tue Mar 31 13:15:54 2009 +1100
Add tdb_transaction_prepare_commit()
Using tdb_transaction_prepare_commit() gives us 2-phase commits. This
allows us to safely commit across multiple tdb databases at once, with
reasonable transaction semantics
Signed-off-by: tridge@samba.org
Rusty Russell [Sat, 25 Jul 2009 12:32:50 +0000 (22:02 +0930)]
merge
Rusty Russell [Tue, 21 Jul 2009 07:24:48 +0000 (16:54 +0930)]
Neaten tdb to sync with samba version of locking fix.
Also, actually test locking, rather than just lock count (bit me in samba fix)
Joey Adams [Tue, 21 Jul 2009 06:32:36 +0000 (02:32 -0400)]
stringmap: Flipped bit order to match sorted string order and added traversal test
Rusty Russell [Mon, 20 Jul 2009 12:55:46 +0000 (22:25 +0930)]
Speed up tracing by factor of 4-6, by writing less stupid code.
Rusty Russell [Sun, 19 Jul 2009 01:44:41 +0000 (11:14 +0930)]
merge
Rusty Russell [Sat, 18 Jul 2009 08:38:05 +0000 (18:08 +0930)]
Short types
Rusty Russell [Sat, 18 Jul 2009 08:29:57 +0000 (17:59 +0930)]
talloc_link; a replacement for talloc's references.
Rusty Russell [Sat, 18 Jul 2009 08:28:58 +0000 (17:58 +0930)]
_info files are no longer to be ignored, since we renamed them from _info.c
Rusty Russell [Sat, 18 Jul 2009 08:26:54 +0000 (17:56 +0930)]
License for talloc is actually LGPL.
Rusty Russell [Sat, 18 Jul 2009 08:13:33 +0000 (17:43 +0930)]
talloc_free() should take a const void *, a-la free().
Joey Adams [Sat, 18 Jul 2009 07:52:53 +0000 (03:52 -0400)]
Improved stringmap to support strings with null characters
Rusty Russell [Sat, 18 Jul 2009 05:57:40 +0000 (15:27 +0930)]
Merge.
Rusty Russell [Sat, 18 Jul 2009 04:45:28 +0000 (14:15 +0930)]
Automate rerunning when we have to back off: gives accurate(ish) timings.
Rusty Russell [Fri, 17 Jul 2009 07:29:58 +0000 (16:59 +0930)]
Cleanup variable names.
struct op: serial -> seqnum (and drop use of term "serial" everywhere).
struct op: op -> type
struct op_desc: general replacement for file/op_num pair.
Change add_dependency to take two const op_desc *: means reshuffle since we can't adjust the args any more.
Rusty Russell [Fri, 17 Jul 2009 05:21:55 +0000 (14:51 +0930)]
Add handling of reduced test cases (traverse lines trimmed), and add all the test cases I've been using.
Rusty Russell [Fri, 17 Jul 2009 05:21:44 +0000 (14:51 +0930)]
Completely unhobble tdbtorture.
Rusty Russell [Fri, 17 Jul 2009 04:49:03 +0000 (14:19 +0930)]
Oops, forgot to check in new keywords files :(
Rusty Russell [Fri, 17 Jul 2009 04:38:12 +0000 (14:08 +0930)]
YA corner case: help assumption by putting cancelled transactions first.
Rusty Russell [Fri, 17 Jul 2009 03:43:58 +0000 (13:13 +0930)]
Leave groups of chainlock inside traverse.
Rusty Russell [Fri, 17 Jul 2009 03:31:52 +0000 (13:01 +0930)]
tdb_chainlock/tdb_chainunlock et. al. support.
Joey Adams [Thu, 16 Jul 2009 21:32:38 +0000 (17:32 -0400)]
Rusty's cleanup to ciniparser.c's strstrip and strlwc
Rusty Russell [Thu, 16 Jul 2009 08:37:14 +0000 (18:07 +0930)]
Handle global_lock properly in tdb_transaction_lock/unlock.
Rusty Russell [Thu, 16 Jul 2009 08:36:10 +0000 (18:06 +0930)]
Fix tracing for tdb_chainunlock.
Rusty Russell [Thu, 16 Jul 2009 07:19:23 +0000 (16:49 +0930)]
Minor optimization: don't make a dependency between two traverse_reads.
Rusty Russell [Thu, 16 Jul 2009 06:10:43 +0000 (15:40 +0930)]
Cleanup: rename is_* to starts_*, move functions together, factor out start finding code.
Rusty Russell [Thu, 16 Jul 2009 04:19:25 +0000 (13:49 +0930)]
Clean up traverse keyword handling.
Rusty Russell [Thu, 16 Jul 2009 03:26:07 +0000 (12:56 +0930)]
Partial ordering of traverses: reduces number of deadlocks by factor of 10.
Rusty Russell [Thu, 16 Jul 2009 01:59:16 +0000 (11:29 +0930)]
Fix logic bug; we weren't checking last requirement in sort_deps.
Rusty Russell [Thu, 16 Jul 2009 01:58:33 +0000 (11:28 +0930)]
Implement timeout for the deadlock of traverse & transactions.
This has proven to be intractible: various attempts to eliminate have failed, so detect at runtime and cease the traversal (and do the remaining ops outside a traverse).
Rusty Russell [Thu, 16 Jul 2009 01:03:52 +0000 (10:33 +0930)]
Open database with TDB_NOSYNC to speed it up a little.
Joey Adams [Wed, 15 Jul 2009 21:48:32 +0000 (17:48 -0400)]
Added run-dictionary.c test to ciniparser
Joey Adams [Wed, 15 Jul 2009 21:29:38 +0000 (17:29 -0400)]
Tiny fix to stringmap's run.c
Rusty Russell [Wed, 15 Jul 2009 13:43:55 +0000 (23:13 +0930)]
Fix sequence logic bug, and satisfies() logic fix/cleanup.
Rusty Russell [Wed, 15 Jul 2009 05:27:49 +0000 (14:57 +0930)]
Handle transactions!
Note: we can still deadlock on traversal vs transaction corner cases.
We handle transactions as single operation, which it logically is.
Joey Adams [Wed, 15 Jul 2009 05:19:52 +0000 (01:19 -0400)]
Added module stringmap
Rusty Russell [Wed, 15 Jul 2009 05:16:30 +0000 (14:46 +0930)]
Fix sequence numbers when tracing transaction.
If we do the trace inside the lock, we show the actual sequence number when the transaction started.
Rusty Russell [Wed, 15 Jul 2009 03:49:35 +0000 (13:19 +0930)]
Insert (implied) transaction cancel on tdb_close/EOF.
Also changes first member of transaction to have valid start_group field,
and fix outdated comment.
Rusty Russell [Wed, 15 Jul 2009 01:37:32 +0000 (11:07 +0930)]
Print seq numbers on timeout dump
(Invasive: means passing full op array all the way through).
Joey Adams [Wed, 15 Jul 2009 01:36:37 +0000 (21:36 -0400)]
Added module block_pool
Rusty Russell [Tue, 14 Jul 2009 12:34:36 +0000 (22:04 +0930)]
Fix early transaction unlock when traverse done inside transaction.
Generalizes traverse in traverse fix from rusty@rustcorp.com.au-
20090629073630-3eduhyypx2tp6u80
Rusty Russell [Tue, 14 Jul 2009 12:15:52 +0000 (21:45 +0930)]
Fix null ptr deref on TDB_TRACE with internal db.
Rusty Russell [Tue, 14 Jul 2009 09:33:43 +0000 (19:03 +0930)]
Remove trivial traverse code, simplify.
We now use the "group_len" field for both transactions and traversals.
Rusty Russell [Tue, 14 Jul 2009 05:51:23 +0000 (15:21 +0930)]
Fix logic bug in optimizer, and fix up DEBUG_DEPS compile.
Rusty Russell [Tue, 14 Jul 2009 02:20:26 +0000 (11:50 +0930)]
More dependency optimization: seems to happen with transactions enabled.
Rusty Russell [Mon, 13 Jul 2009 06:19:52 +0000 (15:49 +0930)]
More general solution for serial number misorders.
Make sort_deps more efficient, and also only alter order when necessary. This means by default we run in serial number order, only going outside when we detect a dependency.
Maintain trace file order in original sort, so sort_deps doesn't mess it up.
We still need serial numbers: sort_deps can have multiple solutions for a single key, but these may deadlock with the ordering requirements of other keys. By sticking close to the actual order (ie. serial order), we minimize the chance of this happening.
Rusty Russell [Mon, 13 Jul 2009 02:14:40 +0000 (11:44 +0930)]
Optimize to reduce extraneous dependencies.
In my tdbtorture -n 4 example trace, this reduces from 14493 to 3210 dependencies, but doesn't make any measurable improvement in the time. Still, it's simple to do and might make a difference for larger sets.
Rusty Russell [Mon, 13 Jul 2009 02:06:50 +0000 (11:36 +0930)]
Belated checkin of keywords.
Rusty Russell [Mon, 13 Jul 2009 01:48:05 +0000 (11:18 +0930)]
Simplify dependencies by passing pointers over the pipe: avoid O(n^2) behaviour for searching.
Also, using a single structure makes talloc_free convenient for when we do optimization.
Rusty Russell [Mon, 13 Jul 2009 01:25:39 +0000 (10:55 +0930)]
Slightly more sophisticated dependency generation: fixes traverse interaction.
Rusty Russell [Sun, 12 Jul 2009 12:51:52 +0000 (22:21 +0930)]
Missed part of patch.
Rusty Russell [Sun, 12 Jul 2009 12:48:09 +0000 (22:18 +0930)]
Get more sophisticated with resolving duplicate serial numbers.
Still deadlocks in one case, due to spurious dependencies inside traversals. See next commit.
Joey Adams [Sun, 12 Jul 2009 03:10:39 +0000 (23:10 -0400)]
Make tokenizer throw error on empty char literal, along with some slight cleanups in ccan_tokenizer.h
Joey Adams [Thu, 9 Jul 2009 07:53:20 +0000 (03:53 -0400)]
Make ccanlint core objects depend on generated-init-tests to fix build error
Joey Adams [Thu, 9 Jul 2009 07:19:13 +0000 (03:19 -0400)]
Small fix to read_cstring for reading \? .
Rusty Russell [Wed, 8 Jul 2009 05:47:53 +0000 (15:17 +0930)]
Traverses seem to work now. Also, much better reporting of deadlocks.
Rusty Russell [Wed, 8 Jul 2009 00:55:27 +0000 (10:25 +0930)]
First attempt at transactions & traverse (deadlocks still).
Rusty Russell [Tue, 7 Jul 2009 22:19:58 +0000 (07:49 +0930)]
Fix uninitialized var.
Rusty Russell [Tue, 7 Jul 2009 13:03:44 +0000 (22:33 +0930)]
... and fix up keyword list.
Rusty Russell [Tue, 7 Jul 2009 13:02:24 +0000 (22:32 +0930)]
Fix last minute warning "fix" in replay_trace.c, remove seqnum inc tracing.
Rusty Russell [Tue, 7 Jul 2009 11:04:44 +0000 (20:34 +0930)]
Better tdb tracing, start of decent replay_trace.
Rusty Russell [Tue, 7 Jul 2009 03:45:49 +0000 (13:15 +0930)]
const addition changes from brian, awfulhak.org
Joey Adams [Fri, 3 Jul 2009 05:46:46 +0000 (01:46 -0400)]
Added module ccan_tokenizer from snapshot at:
http://www.funsitelots.com/ccan/ccan_tokenizer-
20090703.tar.bz2
Rusty Russell [Thu, 2 Jul 2009 03:32:39 +0000 (13:02 +0930)]
More junkcode!
Rusty Russell [Thu, 2 Jul 2009 03:26:25 +0000 (12:56 +0930)]
New junkcode.
Rusty Russell [Mon, 29 Jun 2009 11:40:35 +0000 (21:10 +0930)]
Torture harder: random ops inside traverses.
Rusty Russell [Mon, 29 Jun 2009 09:23:23 +0000 (18:53 +0930)]
Don't make assumptions about traverse order, and prove it by using a different hash.
Rusty Russell [Mon, 29 Jun 2009 09:23:04 +0000 (18:53 +0930)]
Handle tracing on internal dbs.
Rusty Russell [Mon, 29 Jun 2009 07:36:30 +0000 (17:06 +0930)]
Fix traverse nesting unlock bug.
Rusty Russell [Mon, 29 Jun 2009 02:28:44 +0000 (11:58 +0930)]
zero-append test for tdb.
Rusty Russell [Mon, 29 Jun 2009 02:17:52 +0000 (11:47 +0930)]
Fix append of zero-length records to zero-length records.
realloc() has that horrible overloaded free semantics.
Rusty Russell [Mon, 29 Jun 2009 02:17:20 +0000 (11:47 +0930)]
Fix theoretical problem with 0-length records.
By faking them out to length 1, we might go oob. Just fake the malloc.
Rusty Russell [Sun, 28 Jun 2009 01:21:57 +0000 (10:51 +0930)]
First cut of replay_trace for tdb.
Rusty Russell [Tue, 23 Jun 2009 13:21:49 +0000 (22:51 +0930)]
Tracing for tdb operations.
Rusty Russell [Mon, 22 Jun 2009 11:17:39 +0000 (20:47 +0930)]
ccanize tdb further, and add simple test.
Rusty Russell [Thu, 18 Jun 2009 09:08:03 +0000 (18:38 +0930)]
First step to ccanizing TDB.
Rusty Russell [Tue, 16 Jun 2009 06:14:44 +0000 (15:44 +0930)]
Initial TDB import.
Rusty Russell [Sun, 7 Jun 2009 03:10:47 +0000 (12:40 +0930)]
Convert to 64 bit crcs: change semantics of crcbits field to be *upper* not *lower* bits.
Rusty Russell [Sun, 7 Jun 2009 03:03:19 +0000 (12:33 +0930)]
Implement a (poor?) 64-bit CRC.
Rusty Russell [Sun, 7 Jun 2009 02:18:37 +0000 (11:48 +0930)]
64-bit CRC code.
Rusty Russell [Fri, 5 Jun 2009 07:36:24 +0000 (17:06 +0930)]
Fix ubuntu "ignoring return value" warnings.
Rusty Russell [Fri, 5 Jun 2009 07:32:24 +0000 (17:02 +0930)]
Implementation of auto-depends, based on Idris's start.
Rusty Russell [Fri, 5 Jun 2009 07:24:04 +0000 (16:54 +0930)]
Many list funcs should work with constant lists.
Rusty Russell [Sun, 31 May 2009 03:08:03 +0000 (12:38 +0930)]
merge
Rusty Russell [Sun, 31 May 2009 03:00:07 +0000 (12:30 +0930)]
New junkcode.
Joey Adams [Fri, 29 May 2009 05:35:07 +0000 (01:35 -0400)]
Updated array module to version 0.1.1 .
Important change: array_pop no longer checks if the array has elements; use array_pop_check in its place.
Rusty Russell [Thu, 28 May 2009 04:54:10 +0000 (14:24 +0930)]
Rename _info.c to _info: this means we can simple compile *.c.
Rusty Russell [Thu, 28 May 2009 04:14:35 +0000 (13:44 +0930)]
Move ccanlint tests into subdirectories.
Rusty Russell [Thu, 28 May 2009 04:04:27 +0000 (13:34 +0930)]
Make ccanlint tests all positive: ie. "has _info.c file: FAILED".
Rusty Russell [Thu, 28 May 2009 03:56:51 +0000 (13:26 +0930)]
From: Joseph Adams <joeyadams3.14159@gmail.com>
I have given my array module a makeover (see attached
array-0.1.tar.bz2 ). Major changes are:
* All the macros have been renamed to flat array_* names. Instead of
Array, AInit, AAppend, etc., it is now array, array_init,
array_append, etc.. This will obviously break any applications
already using the array module (if any); 'renames' is the list of sed
commands I used to make the name changes.
* array (by default) now uses talloc functions instead of regular
malloc/realloc/free.
* All of the array macros have tests now.
Rusty Russell [Thu, 28 May 2009 03:54:24 +0000 (13:24 +0930)]
Joey's patch to ignore ccan/ lines in #include.
Rusty Russell [Thu, 28 May 2009 03:51:42 +0000 (13:21 +0930)]
Joey's template fixes.
Rusty Russell [Thu, 28 May 2009 03:49:33 +0000 (13:19 +0930)]
Store pristine contents of files: based on Joey's patch.
Rusty Russell [Thu, 23 Apr 2009 06:18:49 +0000 (15:48 +0930)]
More junkcode!
Rusty Russell [Thu, 23 Apr 2009 05:10:03 +0000 (14:40 +0930)]
New junkcode!
Rusty Russell [Wed, 15 Apr 2009 03:11:12 +0000 (12:41 +0930)]
Daemonize test.
Rusty Russell [Wed, 15 Apr 2009 02:47:28 +0000 (12:17 +0930)]
daemonize module