| Branch: | Tag: | Revision:

gdp / gdp / gdp_main.c @ master

History | View | Annotate | Download (34.5 KB)

# Date Author Comment
7874f265 01/08/2020 01:29 PM Eric Allman

Stop using deprecated EP_ASSERT_TEST macro (in favor of EP_ASSERT).

9f1349ae 06/04/2019 04:40 PM Eric Allman

Add GDP_INIT_OPT_HONGDS and swarm.gdp.hongd.optional to not give an
error if HONGD is unavailable (i.e., the default has been changed to be
more restrictive); do stricter checking during initialization (and give
better error messages); bump version to 2.1.19.

5c666732 04/08/2019 05:00 PM Eric Allman

HONGD compilation glitches.

0e2c49f6 04/06/2019 04:40 PM Eric Allman

Force MariaDB/MySQL to use a TCP connection instead of a named pipe;
refactor to centralize database initialization to make this easier;
using new interfaces, make gdp-name-add easier to use (notably password

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

Don't change response code --- potential conflict with protobuf.

a1e5eca3 03/22/2019 11:59 AM Eric Allman

Fix advertising and withdrawal to actually delay between each
advertisement. Required changing handling of event loop startup and

6d19e357 01/27/2019 09:26 AM Eric Allman

Do better job of delivering "not implemented" from gdplogd to clients.

1f7050cb 01/25/2019 11:47 AM Eric Allman

Fix initialization glitch.

866c2ca2 01/23/2019 01:17 PM Eric Allman

Pass flags to GDP library initialization routines. Add flags to disable
Zeroconf and suppress initialization of HONGDS, which is unused in some

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

Update license date on all files. No functional changes.

ebd8a3b3 01/22/2019 08:25 AM Eric Allman

Change debug level on printing the external name of a program on
startup; this turns out to be more important than expected.

43a3107a 01/10/2019 03:27 PM Eric Allman

Fix problem where debugging info was printed even if debugging was off.

22f2276a 12/20/2018 02:06 PM Eric Allman

Make some fixes for name parsing to handle warning returns from
gdp_name_parse (happens when falling back to SHA256 implementation).

92adefd5 11/28/2018 09:00 AM Eric Allman

Split variable swarm.gdplogd.log.dir into (the root
of persistent data) and swarm.gdplogd.log.dir (relative to the other).
This is primarily to make container management easier.

Also, when reading parameter files, allow auto-qualification with the...

34e502ee 09/12/2018 01:41 PM Eric Allman

Second cut at sorting asynchronous data records. Currently all done with
simulation (-Dtest.gdp.chan.seqno=102 randomizes the incoming sequence
numbers), and so missing or duplicated incoming records have not been

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.

65c4a223 08/28/2018 11:30 AM Eric Allman

Return better error message to user on signature failures.

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

Pass Layer 4 network sequence number to higher layers.

b2910e9d 08/15/2018 02:06 PM Eric Allman

Additional debugging for events and PDU processing for debugging out of
order PDU problems.

6ccfea97 08/10/2018 05:05 PM Eric Allman

Debug tweaks.

4a8ff91d 08/09/2018 01:54 PM Eric Allman

Print outstanding requests when giving a state dump using T or SIGUSR1.

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

Remove vestiges of old signature implementation.

59c6c7e0 07/26/2018 10:50 AM Eric Allman

First cut at external => internal name mapping using MySQL. It is
currently not an error if the mapping doesn't exist --- it just falls
back to the old SHA256 behavior --- and there is no automated addition
of the mapping to the database when you create a log. To make this work...

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....

1a1a88c7 06/25/2018 01:55 PM Eric Allman

Avoid problems with the name of gdplogd during upgrades.

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.

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

Snapshot. Fixes in protobuf format to better deal with reads returning

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

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

31d6906f 05/25/2018 01:22 PM Eric Allman

Get basic subscriptions working again.

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

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

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

Get basic subscriptions working again.

0c27616d 02/06/2018 11:34 AM Eric Allman

Improved debugging for incoming PDUs.

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.

bfecf573 01/23/2018 05:20 PM Eric Allman

Rather non-intuitive changes to suppress "return value not used"
warning; just (void)ing the call no longer works.

d2422e31 01/23/2018 05:06 PM Eric Allman

Fixes to prevent C++ compile errors for variables that are not
initialized and not used. This isn't a problem with C, and it's not a
bug, just an annoying C++-ism.

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.

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.

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...

194715b4 11/27/2017 10:12 AM Eric Allman

Don't leak reqs when doing async read/append.

73a41934 11/17/2017 09:55 AM Eric Allman

Tentatively working on v3 network protocol.

833b2d3d 11/08/2017 12:38 PM Eric Allman

Return to compilable state after rebase. No testing.

f2bf61a4 11/08/2017 12:38 PM Eric Allman

Snapshot. Not tested.

5a73c6ad 11/08/2017 12:36 PM Eric Allman

First cut at new net protocol. Compiles, but not yet tested (not even
once --- do not try to run this!).

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...

73507217 09/18/2017 10:43 AM Eric Allman

Remember to unlock GCL if a corresponding req cannot be found for it.
Caused deadlock. It isn't clear how the error condition can happen, but
it definitely does.

95e9c871 09/18/2017 10:42 AM Eric Allman

Make ep_thr_gettid produce something useful to developers (with a
semantic change) and include EP_THR_PRItid for printing.

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.

cb4bb6f8 09/03/2017 08:16 AM Eric Allman

Routine renaming to make the names easier to remember (hopefully).

ca542acf 09/01/2017 03:52 PM Eric Allman

Merge branch 'eric/dev'.
Major changes to get lock ordering into shape. I think the remaining
complaints from helgrind are based on problems in helgrind.

d866e2b4 09/01/2017 03:50 PM Eric Allman

Remove temporary debug lines.

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.

0a168a58 09/01/2017 10:19 AM Eric Allman

Fix core dump on certain error conditions.

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

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

21d0bb38 08/30/2017 11:02 AM Eric Allman

Helgrind fixes. Still kicks out errors, but so far they all look to be
on a trylock, and hence shouldn't actually cause any deadlocks.

11029b9c 08/29/2017 01:59 PM Eric Allman

Snapshot on reliability work.

bbc2471a 08/17/2017 06:12 PM Eric Allman

Add runtime parameters "swarm.gdp.command.runinthread" and
"swarm.gdp.response.runinthread" to control whether commands and
responses (respectively) run in separate threads from the pool. Default
to true and false respectively. Running responses in threads is...

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.

f678e274 07/07/2017 02:03 PM Eric Allman

Generalize statistics printing on exit (and save gdp-reader and
gdp-writer from using internal interfaces).

f4611e29 07/07/2017 01:24 PM Eric Allman

Add allocated GCL statistics gathering and printing.

c71b5a7a 06/28/2017 11:15 AM Eric Allman

Move some of the assertion recover cleverness from gdplogd into libep so
it is more generally available. Also updates the documentation to make
it clearer (I hope).

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

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

ee6b5440 05/10/2017 01:17 PM Eric Allman

Attempt to allow GCLs to be cached in applications. This is
specifically for gdp-rest, but there may be other cases where it is

5b9035fe 05/09/2017 12:46 PM Eric Allman

Fix a possible deadlock during startup. It's surprising this hasn't
presented before.

85fd51e3 05/09/2017 12:45 PM Eric Allman

Fix reference counting on GCLs when they get responses.

9829d4ae 04/25/2017 04:56 PM Eric Allman

Clean up user messages to use ep_app_* routines (and be consistent with

c7925e19 04/25/2017 04:56 PM Eric Allman

Attempt to get gdp-log-check to run as the same user as gdplogd
(assuming it was launched as root).

6dfc87d5 04/11/2017 10:31 AM Eric Allman

Significant changes to locking to avoid problems with threaded clients.

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

for consistency with other routine names.

a6e527fb 03/10/2017 11:17 AM Eric Allman

Arrange to lock initialization so that it isn't possible for an activity
thread to continue before I/O event thread has initialized.

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

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

Subscriptions work again.

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

More work on locking issues.

1c226959 03/06/2017 01:17 PM Eric Allman

Fairly extensive locking changes to avoid races/deadlocks.

023873b3 03/06/2017 01:11 PM Eric Allman

Add swarm.gdp.debug.assert.allabort to make all assertions abort

e0adeb80 03/02/2017 03:25 PM Eric Allman

Fix some printf type disagreements.

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

Update licenses to 2017.

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

Minor debug cleanups.

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...

3f7c58cf 11/30/2016 03:33 PM Eric Allman

White space cleanup (can you say "obsessive-compulsive disorder"?)

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.

8a3b26f9 10/21/2016 02:30 PM Eric Allman

Fix a couple of locking problems: one a doublely locked mutex and one a
thread that is spawned while holding a mutex.

8204d4b2 09/28/2016 10:45 AM Eric Allman

Implement gdp_gcl_read_async. This also fixes some obscure problems
with other asynchronous operations, and tweaks debugging flags to make
it easier to pick out the operations you want to see.

4d6ff457 09/27/2016 04:52 PM Eric Allman

Fix problem that might occur if an initial response PDU to a command
such as MULTIREAD is delayed; follow-on data was treated as a response to
the initial command rather than as asynchronous events.

202d751a 08/29/2016 11:55 AM Eric Allman

Put mutex around GDP library initialization; in some cases threaded
programs (who don't call gdp_lib_init before spawning threads) can hit a
race condition without this.

b39dd5f8 08/27/2016 08:25 AM Eric Allman

Fix resource leak and locking problem in the code to handle NOROUTE
responses to a FWD_APPEND command.

53c1c228 08/26/2016 04:38 PM Eric Allman

Debugging tweaks.

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.

7309e01b 08/24/2016 02:19 PM Eric Allman

Improved error debugging output.

3ea1063d 08/19/2016 07:34 AM Eric Allman

Tweak debugging output.

197e9ea3 08/18/2016 09:36 AM Eric Allman

Finish putting gdp_buf abstraction in code (it was previously mixed with
libevent evbuffer calls).

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.

4cb13aac 08/01/2016 04:29 PM Eric Allman

Fix setting of uid/gid for parameter.

4718c9a7 08/01/2016 10:47 AM Eric Allman

Add some debugging hooks in GDP library.

5a64048e 07/15/2016 10:17 AM Eric Allman

Fix likely race condition in GCL req list handling; improved debugging.

57017993 06/23/2016 10:33 AM Eric Allman

Debugging tweaks.