Project

General

Profile

Statistics
| Branch: | Tag: | Revision:

gdp / gdp / gdp_subscr.c @ master

History | View | Annotate | Download (9.8 KB)

# Date Author Comment
9b4c4283 05/07/2019 04:33 PM Eric Allman

Version 2.1.18 --- fix problem with subscription renewals; be more
aggressive about printing non-default parameter settings to make it
easier to see a customer configuration.

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.

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

Update license date on all files. No functional changes.

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.

10125206 02/27/2018 06:02 PM Eric Allman

First step at adding QoS information to subscriptions.

5aae0d62 02/07/2018 01:32 PM Eric Allman

pdu->msg might be null in gdp_pdufree()

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.

a55f0509 02/06/2018 12:09 PM Eric Allman

Get rid of unnecessary double initialization of cpdu->src and cpdu->dst
in subscriptions --- gdp_req_new has already done this.

44a5b0ef 01/24/2018 09:57 AM Eric Allman

Other fixes necessary to compile with a C++ compiler:
* Subtlety different semantics for extern keyword.
* Inability to do a forward declaration of a static variable.
* Structs must be initialized in the same order as declared.
* Cannot initialize a fixed size character array with a quoted string....

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.

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

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

Snapshot. Compiles but doesn't work.

d92b6c0d 11/08/2017 12:56 PM Eric Allman

Merge branch 'eric/net4' of repo.eecs.berkeley.edu:projects/swarmlab/gdp into eric/net4

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

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

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

SNAPSHOT: fewer race conditions; still need more testing.

e97eeee0 07/29/2017 10:49 AM Eric Allman

Avoid an NULL pointer reference that only occurs on a very unlikely
error.

55987b4d 07/28/2017 04:54 PM Eric Allman

Clean up parameters for subscription refreshing/expiry to make it harder
to make stupid mistakes.

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

Initial implementation of unsubscribe.

b28f9bd6 07/14/2017 01:33 PM Eric Allman

Snapshot. Not tested.

3bc20136 07/14/2017 01:33 PM Eric Allman

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

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.

6414f1e7 06/22/2017 02:42 PM Eric Allman

Terminate subscriptions to a given client when it closes a GCL.

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

Significant changes to locking to avoid problems with threaded clients.

b068acef 03/18/2017 07:46 PM Eric Allman

Rationalize swarm.gdp.subscr.deadintvl and swarm.gdplogd.subscr.timeout.
Rename deadintvl to be timeout and swarm.gdp.subscr.pokeintvl to
swarm.gdp.subscr.refresh for consistency.

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.

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

Subscriptions work again.

47d57c57 03/02/2017 03:26 PM Eric Allman

Move GDP_ASSERT_MUTEX_IS[UN]LOCKED into EP library; this implementation
is much less portable and relies on peeking into the secret mutex data,
but has the advantage that it seems to work. Also improves some of the
lock debugging output to add more information.

e6c7e812 02/27/2017 10:40 AM Eric Allman

Minor tweak to debugging output.

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

Update licenses to 2017.

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

91b7142f 11/25/2016 05:04 PM Eric Allman

Avoid extraneous error messages when renewing subscription. Needs more
work (as noted in code).

795b9a94 10/22/2016 09:21 PM Nitesh Mor

Fix for deadlock caused by multiple subscriptions.

See #81

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.

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.

786df979 09/02/2016 03:57 PM Eric Allman

Fix some glitches in subscriptions and event handling that break
multiple subscriptions to the same log in different threads. This is
improved, but it still doesn't work.

be668eac 08/21/2016 09:21 AM Eric Allman

Fix subscriptions: poker thread was never started.

d2647d1f 07/26/2016 07:34 PM Eric Allman

Next take on read-by-timestamp. This version works for read, multiread,
and subscribe. There are still some glitches (e.g., you can't have a
starting timestamp in the future) but fixing these would require major
code restructuring, and besides, you can't specify a starting record...

a257266f 06/23/2016 10:56 AM Eric Allman

Cleanup for convenience macros for ep_time_nanosleep.
Add debugging to force parallelism in gdplogd.

527e9dbb 06/21/2016 03:39 PM Eric Allman

Don't start subscription poking thread for multiread.

8cc28925 05/26/2016 05:10 PM Eric Allman

First cut on implementing FWD_APPEND command. Still not working for all
cases.

283110f2 05/15/2016 11:06 AM Eric Allman

Additional debugging for request locking. Change _gdp_req_free API so
it can NULL-out the pointer to the request.

4a7d784f 05/12/2016 07:32 PM Eric Allman

Change _gdp_gcl_decref API to automatically null out the pointer ---
this makes it less prone to error.

18624361 04/28/2016 10:37 AM Eric Allman

Fix a race condition where _gdp_req_lock could return a pointer to a
free req. This could only happen if thread T1 got a pointer to the req,
then T2 locked the req, then T1 blocked on the lock, T2 freed the req
and unlocked the req, allowing T1 to continue with the now freed req....

971c69e5 04/28/2016 10:36 AM Eric Allman

Decrement reference count when a subscription ends because of reaching
the number of records requested.

d834af48 04/28/2016 10:21 AM Eric Allman

Release subscriptions when a log is closed.

6bd5476b 12/01/2015 01:22 PM Eric Allman

Update license. No code changes.

52792e40 11/25/2015 11:55 AM Eric Allman

Minor edits to avoid gcc warnings

055d3009 11/21/2015 01:20 PM Eric Allman

Include copyright in all files. There are scripts to do bulk
replacement of the copyright if desired.

02de7463 10/27/2015 04:53 PM Eric Allman

Implement subscription renewals. This causes clients who have open
subscriptions to re-issue the subscription every
swarm.gdp.subscr.pokeintvl seconds. It's not complete yet: gdplogd
still needs to expire subscriptions after a timeout.

e87e0a1a 10/27/2015 10:46 AM Eric Allman

Work-in-Progress: automatic subscription renewals. Incomplete.

728e4394 05/28/2015 10:48 AM Eric Allman

Make callback function naming consistent: use gdp_event_cbfunc_t.

e2682ba9 05/28/2015 10:36 AM Eric Allman

Implement asynchronous writes. Adds new interfaces:
* gdp_gcl_append_async -- initiate an asynchronous write.
* gdp_event_getstat -- get the status code from an event.
Asynchronous reads can be done using multiread.
Note that asynchronous writes do not attempt retransmissions, unlike...

932f745e 03/02/2015 02:28 PM Eric Allman

Cleanup prior to code review: chiefly comments, a bit of code reordering
for better flow.

bb2f93da 02/20/2015 02:18 PM Eric Allman

Minor locking fix to as yet unused code (by inspection).

7c79c6bc 02/20/2015 02:08 PM Eric Allman

Significant changes to locking and subscriptions:
* Locks on gdp_req_t are now more extensive to avoid data races.
* Care is given to prevent subscription data being processed before
the subscription itself is in place.
Minor changes:
* Move channel pointer into gdp_pdu_t purely as a convenience when...

81defd94 02/16/2015 08:46 AM Eric Allman

Back out broad request locks since that ended up passing locks between
threads; the request state does this now.

bf6ddfe3 02/08/2015 05:54 PM Eric Allman

Finish conversion of "packet" to "PDU". Mostly comments.

0d975e56 02/08/2015 03:06 PM Eric Allman

Significant changes to extend request locking to avoid clashing; this
introduces a state variable into requests to allow passing what amounts
to a locked data structure between threads. I'm not really wild about
keeping reqs locked longer, so I hope to revisit this commit.

6aa10a68 02/08/2015 11:13 AM Eric Allman

Back out changes carrying over req to event --- it's important that they
be decoupled.

1440421a 02/04/2015 05:43 PM Eric Allman

Snapshot: working on timing out subscriptions.