Project

General

Profile

Statistics
| Branch: | Tag: | Revision:

gdp / gdplogd / logd_proto.c @ master

History | View | Annotate | Download (34.6 KB)

# Date Author Comment
94e663bc 05/07/2019 01:40 PM Eric Allman

Fix subscription renewal to avoid having gaps. It isn't clear that
req->act_ts is still useful, but we'll keep it around for a bit longer.

302a6a86 04/25/2019 06:42 AM Eric Allman

Improve some debugging in gdplogd commands.

e1c055ad 04/02/2019 05:51 PM Eric Allman

First cut at getting signature checking working again. This is just a
partial fix --- more to come.

51937aa6 01/26/2019 08:53 PM Eric Allman

Do a better job of communicating failure status from gdplogd to the
client.

c87dd166 01/23/2019 07:56 AM Eric Allman

Update license date on all files. No functional changes.

e6319882 09/04/2018 09:09 AM Eric Allman

First pass at ordering results of asynchronous reads. Works if the
reads come in pre-sorted, but so far untested for out-of-order delivery.

5edf4ad2 08/23/2018 12:43 PM Eric Allman

Pass Layer 4 network sequence number to higher layers.

80b79281 07/31/2018 01:07 PM Eric Allman

Remove vestiges of old signature implementation.

caef25cd 07/31/2018 11:08 AM Eric Allman

Restructure signature verification code to move it from gdplogd into
libgdp in preparation for verifying signatures on reads. Version number
bumped to 2.0.4.

c9f4745b 07/27/2018 10:52 AM Eric Allman

Begin implementation of signature checking by readers.

e95fef13 07/20/2018 11:59 AM Eric Allman

First cut at fixing bug that sometimes caused an "End of Results" PDU to
be delivered before some of the results themselves. This involves
passing a "number of results sent" field in the "End of Results" PDU and
saving that PDU until the indicated number of results are processed....

c3cba586 07/12/2018 02:33 PM Eric Allman

First cut at allowing gdp_gin_append_async take multiple datums in one
call. It isn't clear the semantics are right yet.

4964758b 07/06/2018 04:59 PM Eric Allman

Return EX_CANTCREAT from gdp-create when a log exists even when the -S
flag is given; this also makes it easier for lower level functions in
gdplogd to customize the NAK code.

2bd9199f 06/27/2018 11:28 AM Eric Allman

Don't throw an assertion failure if an unimplemented command comes in.

a537f186 06/24/2018 12:45 PM Eric Allman

Fix GOB reference counts on DELETE commands.

33e053a2 06/23/2018 05:34 PM Eric Allman

Add debugging flag gdplogd.sig.override which assumes all signatures
validate if that flag is set to 101. Just a stop-gap until
verify_req_signature is written.

1a0b31ed 06/20/2018 08:38 AM Eric Allman

Fix some compiler warnings.

1c4fea03 06/20/2018 07:14 AM Eric Allman

Fix problems with hash chains on logs that did not have have crypto
keys.

58b43678 06/18/2018 06:14 PM Eric Allman

Fix or expand on FIXME comments.

2da682ef 06/18/2018 02:51 PM Eric Allman

Get signatures on APPEND working again. Still incomplete, but handles
the single datum in a request case.

9f6be413 06/15/2018 03:26 PM Eric Allman

Cleanup signature and hash type handling. There's no point in storing
the MD algorithm with each datum since it is fixed per GOB, nor in
passing it over the wire since it is just a blob unless you have either
the secret or public key, either of which contain that information...

ed429d31 06/09/2018 04:58 AM Eric Allman

Fix problem where re-subscriptions would re-send old data.

bd278f2e 06/08/2018 11:45 AM Eric Allman

Snapshot: change physical interface to make more efficient use of SQLite
when retrieving sets. Use this for asynchronous reads.

b27895fb 05/25/2018 01:22 PM Eric Allman

Checkpoint, mostly locking issues.

8cfe4117 05/25/2018 01:22 PM Eric Allman

It turns out that including a GOB pointer in the datum causes too many
locking problems. Just pass the gob in as needed.

eae1d3ec 05/25/2018 01:22 PM Eric Allman

The grand renaming: GCL is (mostly) gone in favor of GOB and GIN.

2e65953f 05/25/2018 01:22 PM Eric Allman

Simplify the datum interface back to what it was before. Basic
subscriptions and subscription timeout seems to work now.

9852be60 05/25/2018 01:22 PM Eric Allman

Snapshot: several problems with timestamps and metadata.

72871cfc 05/25/2018 01:22 PM Eric Allman

Checkpoint: basic create, write, read all work. Subscriptions, async
commands, and multireads untested.

b6423859 05/25/2018 01:22 PM Eric Allman

Snapshot: some things working, but more things (notably datum lists)
need more work, including at the protocol level.

fa7cfdb9 05/25/2018 01:22 PM Eric Allman

Snapshot: compiles cleanly with updated protocol and crypto
support, but completely untested.

92243bf4 05/25/2018 01:22 PM Eric Allman

Snapshot in on-disk format conversion from ad hoc files to SQLite
databases. Compiles but is completely untested.

8bebf0e3 02/26/2018 11:11 AM Eric Allman

Get basic subscriptions working again.

53393e9c 02/20/2018 03:26 PM Eric Allman

Snapshot of work on getting subscriptions working under Net4. Still
has several problems.

c1a14cd8 02/08/2018 03:57 PM Eric Allman

Fix re-subscriptions, which were being treated as new subscriptions.

f3b89a60 02/06/2018 02:29 PM Eric Allman

Fix re-subscriptions.
Reference counting on subscriptions is still off, but the code does
eventually recover.

f67d0170 01/24/2018 09:45 AM Eric Allman

Be more careful with enums, which are not just aliases for integers in
C++. Most importantly, use gdp_cmd_t instead of various int types for
commands and acks.

58292089 01/24/2018 09:35 AM Eric Allman

Changes for adding "const" qualifiers. These are mostly good things and
not C++ specific.

328ab6a8 01/23/2018 05:34 PM Eric Allman

Changes for signed/unsigned conflicts and other type nits. C++ is much
more picky about these than C, but this is probably justified. Sadly,
some of the changes are pretty ugly.

2b555b8a 01/23/2018 04:26 PM Eric Allman

Change GdplogdForgive from a struct to a bitmask. Simplified C++
compilation.

fc0cbc23 01/23/2018 04:09 PM Eric Allman

Changes necessary to compile under C++ because it doesn't understand
that (void *) is compatible with other pointer types. This adds a lot
of explicit casts that are not needed in C.

7f74c3b3 01/18/2018 04:09 PM Eric Allman

Fix signature generation and checking.

4a89fdda 01/17/2018 11:34 AM Eric Allman

First cut at flattening out protobuf definition. Some changes to data
structure printing (e.g., _gdp_pdu_dump) to get indenting more rational
so as to make reading the output easier.

a34bb9a0 01/10/2018 01:28 PM Eric Allman

Get basic subscriptions working.

d65c01e2 01/09/2018 11:18 AM Eric Allman

First cut at running Layer 5 network protocol version 4 over old
(version 3) Layer 4 stack. Substantial parts are unimplemented,
including signature generation and checking, read or subscribe by
timestamp or hash, and others. No asynchronous operations including...

cc4a7f8a 11/09/2017 09:08 AM Eric Allman

Snapshot. Compiles but doesn't work.

4a6db795 10/27/2017 07:35 PM Eric Allman

First cut at "delete log" command (lightly tested).

fec93aac 10/24/2017 02:38 PM Eric Allman

First cut at separating GCL instances (GINs) from GDP Objects (GOBs).
This is intended to fix some semantic problems with subscriptions. End
users always use GINs (aliased to gdp_gcl_t for now for compatibility),
and there is one GIN for each call to gdp_gcl_open (i.e., no returning...

f6eedc78 09/15/2017 12:44 PM Eric Allman

Move req/gcl lock ordering fix into get_open_handle to reduce redundancy
and assure consistency.

7bfc0663 09/04/2017 04:34 PM Eric Allman

Changes to handle certain error conditions with log creation. This
still isn't right: see the comments in gdp/gdp_main.c.

4a8e6d63 09/04/2017 11:36 AM Eric Allman

More lock ordering tweaks.

1ca7751e 09/01/2017 03:45 PM Eric Allman

More work on making helgrind happy. This seems to be pretty close,
maybe worth a try in production.

7f174460 09/01/2017 10:15 AM Eric Allman

Snapshot.

f2bf1027 08/31/2017 03:55 PM Eric Allman

Snapshot. Basic things still seem OK, create still seems iffy.

9cacb7ea 08/29/2017 04:43 PM Eric Allman
  • Fix resource leak on some subscriptions.
  • Fix bogus assertion failure on gdplogd shutdown.
11029b9c 08/29/2017 01:59 PM Eric Allman

Snapshot on reliability work.

ee75004c 08/10/2017 09:47 AM Eric Allman

Delete some debugging cruft.

b8f93c05 08/09/2017 01:33 PM Eric Allman

Basic things seems to work, including passing helgrind race condition
tests. Still more testing needed.

42443eab 08/09/2017 07:46 AM Eric Allman

SNAPSHOT: still with some locking problems.

1b7c480e 08/05/2017 02:17 PM Eric Allman

SNAPSHOT: fewer race conditions; still need more testing.

9c515e64 07/26/2017 06:21 PM Eric Allman

Initial implementation of unsubscribe.

083b5fd9 07/05/2017 12:21 PM Eric Allman

Tweak previous change to distinguish between 404 and 410 style errors.

0139cddd 07/05/2017 12:01 PM Eric Allman

Fix error status when attempting to read a record that doesn't exist.
Previously returned an internal server error, now returns "410" client
error.

2a8cda22 06/24/2017 02:50 PM Eric Allman

Cleanup (and hopefully simplification) of assertion subsystem. Lots of
changes, but nothing particularly obtuse.

cf05aa39 06/22/2017 02:46 PM Eric Allman

Some code cleanup for previous commit.

526e50e0 05/03/2017 01:13 PM Eric Allman

Arrange for client to be able to see the timestamp after gdp_gcl_append
returns.

6f52b2b7 04/14/2017 03:16 PM Eric Allman

Implement a way to deliver "record missing" back to client.

db973e44 04/12/2017 05:38 PM Eric Allman

Avoid making log entries for innocuous errors.

d3d12aad 03/28/2017 04:03 PM Eric Allman

Fix unnecessary locking issues in gdplogd.

7816b117 03/13/2017 05:17 PM Eric Allman

Implement extreme list checking in an attempt to find circular loops in
linked lists.

951b6fb6 03/10/2017 05:05 PM Eric Allman

Change EP_ASSERT_MUTEX_IS(UN)?LOCKED to EP_THR_MUTEX_ASSERT_IS(UN)LOCKED
for consistency with other routine names.

e6b0a042 03/09/2017 02:54 PM Eric Allman

Subscriptions seem to get expired now, but only when another record is
written (should happen spontaneously in order to mop up file
descriptors).

65f23ae5 03/08/2017 04:20 PM Eric Allman

Subscriptions work again.

8d764351 03/07/2017 04:57 PM Eric Allman

Fix locking problem when creating a new GCL.

d15adf12 03/07/2017 12:55 PM Eric Allman

More work on locking issues.

bc4b6ea4 03/06/2017 01:12 PM Eric Allman

Lock debug output file so messages can be read.

ec4099d1 03/03/2017 01:43 PM Eric Allman

Add some tracing to gdplogd command processing.

897accec 02/06/2017 10:41 AM Eric Allman

Update licenses to 2017.

1d6925ca 02/06/2017 10:36 AM Eric Allman

Debug level tweaks to make gdplogd log output more coherent. -D10 logs
less than before (use -D11 to get more-or-less what existed previously).
Some level 10s have been dropped to 9s (if they indicate error
conditions).

6c41bcf1 02/06/2017 10:36 AM Eric Allman

Minor debug cleanups.

f173c902 02/06/2017 10:36 AM Eric Allman

_gdp_gcl_incref should be called when locked, not when unlocked.

a104a10f 02/06/2017 10:36 AM Eric Allman

Split req->pdu into two: cpdu holds the PDU for the command and rpdu
holds the PDU for the response. This makes it easier to make restart
work and the code to understand. However, it also means more copying of
data and a general lack of elegance. It also means that the datum in...

a977e6aa 12/11/2016 09:56 AM Eric Allman

Snapshot: basic operations seem to be working (no stress tests yet).

7bc0e2cf 12/11/2016 08:51 AM Eric Allman

Snapshot: get basic reading working again with new lock changes.

a551d4ba 12/09/2016 08:55 AM Eric Allman

Delete unused code.

98c86f4f 11/30/2016 11:27 AM Eric Allman

Use GDP_NAME_SAME macro consistently.

e7b2a80c 11/22/2016 02:22 PM Eric Allman

Extensive work on reliability, notably sharing a datum between threads.
Increases reliability, but still not fully tested. Basic things seem to
work though. Note: this may disrupt the replication code.

1435867a 11/10/2016 06:02 PM Eric Allman

Include rid in duplicate comparison when processing a SUBSCRIBE command.

7bf6e9b2 10/15/2016 10:32 PM Nitesh Mor

Bug-fix for stuck subscriptions after renewal

See #75

81af2bc3 10/14/2016 12:59 PM Eric Allman

Attempt to deal more gracefully with records that are written
out-of-order (as a result of asynchronous writes). The hard point is
telling the difference between one writer with out-of-order appends
versus two writers that are actually overwriting the same record. Only...

56f047d8 10/08/2016 11:59 AM Eric Allman

Yet more debug tweaking.

195530a2 10/08/2016 08:04 AM Eric Allman

Default swarm.gdplogd.sequencing.allowdups to true. Improved debugging.

931d824e 09/30/2016 08:24 AM Eric Allman

Default to allowing gaps on (necessary for asynchronous appends to work
with a thread pool); change debug message to make out of order writes
look less like an error condition.

e4377db2 08/31/2016 12:59 PM Eric Allman

Clarify error messages.

d9914def 08/26/2016 10:35 AM Eric Allman

Try to match a NOROUTE error to a GCL in the case of FWD_APPEND. This
requires a complete scan of the channel work list. Also, back out an
"efficiency" change with buffering that broke FWD_APPEND.

c102736d 08/23/2016 06:09 PM Eric Allman

Try to improve the "allow gaps" and "allow dups" functionality for
replication research.

49ae7ef9 08/18/2016 04:47 PM Eric Allman

More tweaking on re-synchronizing recno conflicts.

6ea74122 08/18/2016 11:56 AM Eric Allman

Add swarm.gdp.sequencing.allow(dups|gaps) options. Fix
resynchronization mechanism (hopefully).

f7fbf16f 08/18/2016 07:41 AM Eric Allman

Fix problem with inconsistent signatures. Might this be better done by
just eliminating the datum->siglen field? It's implied by the size of
the datum->sig buffer.

32a97acb 08/03/2016 11:56 AM Eric Allman

Avoid dereferencing a GCL that isn't cached. Only happens in
gdp_gcl_create, and only on unusual errors.