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.
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.
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).
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.
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
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
Rusty Russell [Thu, 9 Apr 2009 05:20:41 +0000 (14:50 +0930)]
Stephen: "It's portaudio, not libvorbis that needs version >= 19."
Rusty Russell [Thu, 9 Apr 2009 04:29:39 +0000 (13:59 +0930)]
Allow things without test/ dirs to be modules.
Allow versions on dependencies.
Display external dependencies on info pages.
Rusty Russell [Thu, 9 Apr 2009 01:11:53 +0000 (10:41 +0930)]
New module wwviaudio.
Also, add external depends to ogg_to_pcm.
Rusty Russell [Wed, 8 Apr 2009 05:06:39 +0000 (14:36 +0930)]
Module from smcameron@yahoo.com:
- Deleted test/ dir, since it was a noop.
Rusty Russell [Wed, 8 Apr 2009 03:14:59 +0000 (12:44 +0930)]
Delete moved file.
Rusty Russell [Tue, 7 Apr 2009 04:45:02 +0000 (14:15 +0930)]
Change arguments to crcsync code.
Rusty Russell [Tue, 7 Apr 2009 04:03:03 +0000 (13:33 +0930)]
Fix missing include in isaac's _info.c
Rusty Russell [Tue, 7 Apr 2009 03:31:30 +0000 (13:01 +0930)]
Joseph Adams updates to polynomial.
Rusty Russell [Tue, 7 Apr 2009 03:30:47 +0000 (13:00 +0930)]
Add ability for _info to specify libraries (particularly, -lm).
Rusty Russell [Tue, 7 Apr 2009 02:14:16 +0000 (11:44 +0930)]
Fix struct line spacing (opening bracked on same line is Linux standard)
Rusty Russell [Tue, 7 Apr 2009 02:11:13 +0000 (11:41 +0930)]
Change link naming to vastly prefer -with-deps download.
Rusty Russell [Tue, 7 Apr 2009 02:10:50 +0000 (11:40 +0930)]
Joey found a bug. Bad Rusty, use sentinal attribute.
Rusty Russell [Sat, 4 Apr 2009 12:19:30 +0000 (22:49 +1030)]
Enhance crcsync test suite.
Rusty Russell [Sat, 4 Apr 2009 11:35:46 +0000 (22:05 +1030)]
crcsync change: better detection of final block.
Rusty Russell [Sat, 4 Apr 2009 10:57:22 +0000 (21:27 +1030)]
Tim Post's iniparser module.
Rusty Russell [Sat, 4 Apr 2009 01:29:54 +0000 (11:59 +1030)]
New polynomial module (not quite CCAN format).
Rusty Russell [Tue, 31 Mar 2009 07:14:53 +0000 (17:44 +1030)]
Handle where _GNU_SOURCE already defined.
Reported by Tim Post.
Rusty Russell [Tue, 31 Mar 2009 05:18:59 +0000 (15:48 +1030)]
New test and fixes to crcsync.
Rusty Russell [Tue, 31 Mar 2009 04:05:04 +0000 (14:35 +1030)]
64-bit fix (reported by Alex Wulms)
Rusty Russell [Mon, 30 Mar 2009 00:08:38 +0000 (10:38 +1030)]
crcsync byte-at-a-time test reveals flaws in buffer handling.
(Reported by Alex Wulms <alex.wulms@scarlet.be>)
Rusty Russell [Sun, 29 Mar 2009 22:46:35 +0000 (09:16 +1030)]
Joey's array module.
Rusty Russell [Sun, 29 Mar 2009 11:30:35 +0000 (22:00 +1030)]
Enhance file_analysis preprocessor a little more, use in idempotent test.
Rusty Russell [Sun, 29 Mar 2009 09:46:44 +0000 (20:16 +1030)]
Somewhat decent cpp analysis for ccanlint.
Rusty Russell [Sun, 29 Mar 2009 06:01:02 +0000 (16:31 +1030)]
Another Joey fix:
(15:30:58) joeyadams: Also, ccanlint detects "trailing newlines" on empty lines. Is this a bug, or is
it policy?
(15:52:03) joeyadams: In my code, I like to keep blank lines in my routines indented to the associated
level so automatic indent will apply there
Rusty Russell [Sun, 29 Mar 2009 05:53:19 +0000 (16:23 +1030)]
Patch from Joey Adams:
(15:27:11) joeyadams: ccanlint's handle_no_tests apparently has a bug. It makes the test directory with
0600 permissions, so it can't be used. the x bit provides directory listing privilege
(15:27:25) joeyadams: this gives me Permission denied when I try to run it
(15:28:34) joeyadams: Changing the opcode to 0700 makes the creation of run.c work
Rusty Russell [Thu, 19 Mar 2009 03:45:21 +0000 (14:15 +1030)]
Handle spaces in filenames for junkcode.
Rusty Russell [Thu, 19 Mar 2009 03:36:12 +0000 (14:06 +1030)]
Add Tim's mail.
Rusty Russell [Thu, 19 Mar 2009 03:33:14 +0000 (14:03 +1030)]
New junkcode from Tim.
Rusty Russell [Thu, 19 Mar 2009 03:33:07 +0000 (14:03 +1030)]
Restore info pages.
Rusty Russell [Mon, 16 Mar 2009 06:23:53 +0000 (16:53 +1030)]
Fix warnings for isaac w/ gcc4.1.
Given the types used (uint32_t and uint64_t) many of the masks are unnecessary.
But mainly moving the bit extraction into separate inline functions means the
code is a bit clearer, and we only need to bracket one place.
But because these helpers shared the same names, I split the 32 and
64-bit tests.
Rusty Russell [Mon, 16 Mar 2009 04:48:17 +0000 (15:18 +1030)]
Fix warnings for ilog (see below) gcc 4.1, and testsuite fixes.
(1) Include ilog.h header first (checks that it doesn't need anything else)
(2) Include ilog.c (only api tests don't need this).
Here are the warnings with gcc 4.1:
Running gcc -O3 -Wall -Wundef -Wstrict-prototypes -Wold-style-definition -Wmissing-prototypes
-Wmissing-declarations -Werror -Iccan/ -I. -o ccan/ilog/test/run ccan/ilog/test/run.c ccan/tap/tap.o
In file included from ccan/ilog/test/run.c:2:
ccan/ilog/ilog.h:27:10: error: "LLONG_MAX" is not defined
cc1: warnings being treated as errors
ccan/ilog/test/run.c: In function ‘main’:
ccan/ilog/test/run.c:36: warning: suggest brackets around + or - inside shift
ccan/ilog/test/run.c:55: warning: suggest brackets around + or - inside shift
ccan/ilog/test/run.c:55: warning: suggest brackets around + or - inside shift
ccan/ilog/test/run.c:55: warning: suggest brackets around + or - in operand of &
ccan/ilog/test/run.c:63: warning: suggest brackets around + or - inside shift
ccan/ilog/test/run.c:85: warning: suggest brackets around + or - inside shift
ccan/ilog/test/run.c:85: warning: suggest brackets around + or - inside shift
ccan/ilog/test/run.c:85: warning: suggest brackets around + or - in operand of &
Rusty Russell [Fri, 13 Mar 2009 02:37:20 +0000 (13:07 +1030)]
Fix for 64-bit (thanks to Tim T)
Rusty Russell [Thu, 12 Mar 2009 22:43:46 +0000 (09:13 +1030)]
Tim's ISAAC module.
Rusty Russell [Thu, 12 Mar 2009 22:43:17 +0000 (09:13 +1030)]
Handle multiple .c files in directory properly (isaac).
Rusty Russell [Thu, 12 Mar 2009 21:57:56 +0000 (08:27 +1030)]
Tim's ilog module.
Rusty Russell [Mon, 2 Mar 2009 03:58:08 +0000 (14:28 +1030)]
From: "Timothy B. Terriberry" <tterribe@xiph.org>
Makes the idempotent header check more liberal, and
specifically allows it to also recognize
#if !defined(someheader)
#define someheader (1)
or other similar variants.
Rusty Russell [Mon, 2 Mar 2009 03:56:29 +0000 (14:26 +1030)]
From: "Timothy B. Terriberry" <tterribe@xiph.org>
Fixes the example module documentation ccanlint outputs. The
missing \n meant that it would not validate its own example as valid
documentation (with no explanation of why it was invalid... but that
would be a much larger patch).
Rusty Russell [Wed, 25 Feb 2009 04:04:57 +0000 (14:34 +1030)]
More Makefile work: fix upload target.