controller.git
3 years agoBug 5740: Configure control-aware mailbox 19/57819/5
Tom Pantelis [Thu, 25 May 2017 14:18:02 +0000 (10:18 -0400)]
Bug 5740: Configure control-aware mailbox

Configured unit tests and production to use a control-aware mailbox
for Shard actors. The current code allows for a "shard-dispatcher"
to be defined so I added a section in the .conf that specifies the
mailbox-type appropriately (ie UnboundedDequeBasedControlAwareMailbox).

Change-Id: Ibdb404e1dfcc699471a8e899c491a09500ee04c0
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
3 years agoBUG-8494: fix throttling during reconnect 14/58214/2
Robert Varga [Mon, 29 May 2017 21:58:07 +0000 (23:58 +0200)]
BUG-8494: fix throttling during reconnect

ReconnectForwarder is called from differing code-paths: the one is
during replay when we are dealing with late requests (those which have
been waiting while we replaying), the other is subsequent user requests.

The first one should not be waiting on the queue, as the requests have
already entered it, hence have payed the cost of entry. The latter needs
to pay for entering the queue, as otherwise we do not exert backpressure.

This patch differentiates the two code paths, so they behave as they
should. Also add more debug information in timer paths.

Change-Id: I609be2332b13868ef1b9511399e2827d7f3d5b7d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 851fb56fba015c9fee3f0f9235c5c631a492ce59)

3 years agoBUG-8403: propagate DONE state to successor 13/58213/2
Robert Varga [Mon, 29 May 2017 20:53:53 +0000 (22:53 +0200)]
BUG-8403: propagate DONE state to successor

We need correct accounting for DONE non-standalone local transactions,
as such transactions do not interact with open/closed semantics.

Propagate DONE via a simple flag, which we check in local ProxyHistory
a create a proxy without a backing modification.

Change-Id: Ie921db8c9e40f30934c119b74c31ca5418b61548
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 59ffaa4e95ffc8f8f04d1ca8d4f45f2ac1ef23b6)

3 years agoBUG 8318: Add section for remoting transport-failure-detector 43/57943/2
Tomas Cere [Thu, 18 May 2017 14:00:54 +0000 (16:00 +0200)]
BUG 8318: Add section for remoting transport-failure-detector

Similar to separate dispatcher for cluster we might also
trip a false positive in remoting so add this in so we can modify
the parameter in csit.

Change-Id: I751fec044e2bf0f0d82badb2ea7d581b3374ac4a
Signed-off-by: Tomas Cere <tcere@cisco.com>
(cherry picked from commit 7ea291d0c0d183755795e33881fd040c368f57a7)

3 years agoBUG-8403: go through the DONE transition 12/58212/1
Robert Varga [Wed, 31 May 2017 17:49:52 +0000 (19:49 +0200)]
BUG-8403: go through the DONE transition

Third step of the fix: make make AbstractProxyTransaction go through
the DONE state before retiring. This ends up also fixing breakage
in local chain transactions, which could end up leaking because we
never go back to just using the base data tree.

Change-Id: I97ac1687eaf3ecd8f46a68c6170891ea06703e95
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 9b4c07ca27b2c3c7ca5d5e790aa1f121ce4857f3)

3 years agoBUG-8403: add state documentation and DONE state 11/58211/1
Robert Varga [Tue, 30 May 2017 17:19:42 +0000 (19:19 +0200)]
BUG-8403: add state documentation and DONE state

Second step of the fix: clarify AbstractProxyTransaction states and
their transitions. Introduce a DONE state which we will use to close
the replay state race window.

Change-Id: I82e47103f2cd9b8ec496b72803b5d5e56d33c0f5
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 720292646a403e3fa4f33d12dcecbd059486b871)

3 years agoBUG-8403: move successor allocation to AbstractProxyTransaction 10/58210/1
Robert Varga [Tue, 30 May 2017 17:35:17 +0000 (19:35 +0200)]
BUG-8403: move successor allocation to AbstractProxyTransaction

We still have a tiny race window where we do not correctly handle
reconnection, leading to an ISE splat -- this time if the final
stage of transaction completion.

The problem is that a reconnect attempt is happening while we are
waiting for the transaction purge to complete. At this point the
transaction has been completely resolved and the only remaining
task is to inform the backend that we have received all of the
state and hence it can throw it out (we will remove our state once
purge completes).

We are still allocating a live transaction in the local history
and the purge request replay does not logically close it, leading
to the splat.

To fix this, we really need to allocate a non-open tx successor,
which will not trip the successor local history. All the required
knowledge already resides in AbstractProxyHistory, except we do
not have a dedicated 'purging' state.

This makes the first step of moving the allocation caller to the
appropriate place.

Change-Id: If82957019b478f4d5132edda4d38e6bc026aa0ab
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit cc5009b8f3ea91f64ee48cda815c6a5e73a8a1af)

3 years agoBUG-8494: Cap queue sleep time 09/58209/1
Robert Varga [Tue, 30 May 2017 09:41:58 +0000 (11:41 +0200)]
BUG-8494: Cap queue sleep time

Inconsistency in transmit queue backpressure has caused an observed
delay of over 44 minutes in CSIT. Thile this is an artefact of a bug,
we should not delay application thread for large periods of time, as
that can cause failures in the application (if it has other
time-bound duties like BGP keepalive messages and similar).

Restrict the sleep time to 5 seconds, emitting an INFO-level messages
when we reach this level of sleeping. This should not typically not
occur, as the backpressure should be kicking in much sooner, smooting
out the delay curve.

Change-Id: Ie5f148248caa71791bdda71ddd7e33e5733aa7f8
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 15a67bd103c2dc32f28139a7295ac84143c20d0c)

3 years agoBug 8446 - Increase timeout in leadership transfer 79/57679/3
Jakub Morvay [Tue, 23 May 2017 12:06:48 +0000 (14:06 +0200)]
Bug 8446 - Increase timeout in leadership transfer

Change-Id: Iffd66ef2c771b797b236f23c39b1fb87b5a27c89
Signed-off-by: Jakub Morvay <jmorvay@cisco.com>
(cherry picked from commit ea6ba66600c4f2f143cbb13279ded184ce6d3fcc)

3 years agoCleanup time access 08/58208/1
Robert Varga [Wed, 24 May 2017 09:44:30 +0000 (11:44 +0200)]
Cleanup time access

ShardDataTree does not need to expose the ticker, just a readTime()
method. This makes the users slightly more readable.

Change-Id: I9aa72a2d3625f40a2a44b0838ff344437293e1e3
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit a0f85a19ba36f71288c7b45575befd98d7d77ed4)

3 years agoBUG-8515: make sure we retry connection on NotLeaderException 07/58207/1
Robert Varga [Mon, 29 May 2017 08:40:06 +0000 (10:40 +0200)]
BUG-8515: make sure we retry connection on NotLeaderException

There is a race window when we are establishing connection to the
backend:

When we received the pointer to shard leader, we send a connect
request, but during that time window the leader may move, resulting
in a NotLeaderException response to ConnectClientRequest. Since
we are in reconnection mode, this will result in hard abort of
connection.

Fix this by wrapping NotLeaderException and akka failures in a
TimeoutException -- hence we will retry connecting.

Change-Id: Ia5d1915d59e80a70c54302c1790121d0767ff08a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 51a85b6c8fce1d9808285a6ad81dc7068afbf7c7)

3 years agoBUG-8403: do not throttle purge requests 06/58206/1
Robert Varga [Thu, 25 May 2017 16:10:57 +0000 (18:10 +0200)]
BUG-8403: do not throttle purge requests

It seems we are getting stuck after replay on purge requests,
which are dispatched internally.

Make sure we do not use sendRequest() in obvious replay places,
nor for purge requests. Also add a debug upcall if we happen to
sleep for more than 100msec.

Change-Id: Iec667f2039610f3f036e6b88c7c7e7b773cdfc19
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 20ece8c549211d1c453f1763132bb0a0ca7be0e0)

3 years agoBUG-8538: rework transaction abort paths 05/58205/1
Robert Varga [Wed, 24 May 2017 12:42:04 +0000 (14:42 +0200)]
BUG-8538: rework transaction abort paths

Direct transaction abort path can end up touching proxy history's
maps, which it should not, as that happens only after purge. This
inconsistency has cropped up when purge was introduced.

Refactor the methods so that cohorts are removed only after purge,
and fix abort request routing such that it always enqueues a purge
request (possibly via successor). This also addresses a FIXME, as
we now have an enqueueAbort() request, which is not waiting on the
queue.

Change-Id: Ie291da70ace772274f33505db376a915b38e37c0
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 8fca604f2312ef365ce05343c2378cf36f2e31af)

3 years agoBUG-8538: do not invoke read callbacks during replay. 04/58204/1
Robert Varga [Wed, 24 May 2017 10:01:20 +0000 (12:01 +0200)]
BUG-8538: do not invoke read callbacks during replay.

As evidenced by a ConcurrentModificationException happening reliably
in face of aborted read-only transactions, there are avenues how
our state can be modified eventhough we hold the locks.

One such avenue is listeners hanging on read operations, which
can enqueue further requests in the context of calling thread. That
thread must not be performing replay, hence delay request completion
into a separate actor message by using executeInActor().

Change-Id: Ibcd0ac788156011ec3a4cc573dc7fb249ebf93a2
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 8123d0fc56a28324fed48e3027edf090e8149b9b)

3 years agoBUG-8371: Respond to CreateLocalHistoryRequest after replication 50/57950/2
Robert Varga [Wed, 24 May 2017 09:36:18 +0000 (11:36 +0200)]
BUG-8371: Respond to CreateLocalHistoryRequest after replication

CreateLocalHistoryRequest needs to be replicated to followers before
we respond to the frontend, as logically this request has to be
persisted before any subsequent transactions.

While the frontend could replay the request on reconnect, it would
also have to track the implied persistence (via child transactions),
which we do not want because it really is a backend detail and it
would lead to a lot of complexity in the frontend.

Change-Id: Icdfad59d3c2bab3d4125186c6a9b3c901d3934f6
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 8f18717f60e58eebf726fe0611859311fa83df44)

3 years agoBUG-8540: suppress ConnectingClientConnection backend timeout 03/58203/1
Robert Varga [Tue, 23 May 2017 17:42:57 +0000 (19:42 +0200)]
BUG-8540: suppress ConnectingClientConnection backend timeout

While a ClientConnection is in initial connect state we do not want
the timer to attempt to reconnect it, as it we are already trying
hard to connect it. Suppress that attempt by faking backend silent
ticks to be 0.

Change-Id: Iaf554632a56fd5be1d417d6806462edf3c746526
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit a3b2c1a05f66523561a10ac898723ffdf7e68798)

3 years agoBUG-8452: make NoShardLeaderException retriable 92/57092/2
Robert Varga [Mon, 15 May 2017 14:56:14 +0000 (16:56 +0200)]
BUG-8452: make NoShardLeaderException retriable

We can recover from this exception by retrying the connection to
the backend. Wrap it in a TimeoutException, which will cause a new
connection attempt.

Change-Id: I1d5c771fdb89cbdd7723e0425542154a1ed85853
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit c74608b67d88d809ebec51c0e84add37a0b98711)

3 years agoBug 8568: Removed deprecated HydrogenNotificationBrokerImpl 80/58180/1
Tom Pantelis [Wed, 31 May 2017 18:47:23 +0000 (14:47 -0400)]
Bug 8568: Removed deprecated HydrogenNotificationBrokerImpl

Change-Id: I707a787b3e705fb9959056e50f06b2207933bcd3
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
3 years agoBug 8568: Remove deprecated MountProviderService APIs 74/58074/2
Tom Pantelis [Wed, 31 May 2017 17:48:34 +0000 (13:48 -0400)]
Bug 8568: Remove deprecated MountProviderService APIs

Removed the MountProviderService and associated APIs and implementations.

Change-Id: I0cfde4f9d6204c4bcee1b1fc7028402b9290c6e4
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
3 years agoBug 8568: Remove deprecated MountProviderService from RootBindingAwareBroker 72/58072/3
Tom Pantelis [Wed, 31 May 2017 17:17:30 +0000 (13:17 -0400)]
Bug 8568: Remove deprecated MountProviderService from RootBindingAwareBroker

The MountProviderService API has been deprecated since Helium so it should be
safe to remove it from the RootBindingAwareBroker.

Change-Id: I7dc7b05feaafb08004f104da8495adc87e5078b1
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
3 years agoBug 8568: Remove DataProviderService/DataBrokerService APIs 43/58043/3
Tom Pantelis [Wed, 31 May 2017 11:53:30 +0000 (07:53 -0400)]
Bug 8568: Remove DataProviderService/DataBrokerService APIs

Change-Id: If9b8bc26c3f4d1c5eea09c1c5ad993732fbc5f6c
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
3 years agoBug 8568: Remove deprecated HydrogenDataBrokerAdapter 25/58025/3
Tom Pantelis [Wed, 31 May 2017 00:55:24 +0000 (20:55 -0400)]
Bug 8568: Remove deprecated HydrogenDataBrokerAdapter

Removed the deprecated DataProviderService implementation
class HydrogenDataBrokerAdapter and the corresponding
config yang and ForwardedCompatibleDataBrokerImplModule.

Change-Id: Ie18e6e1ae6a9e68b97e39b278618a4a0c1c9219d
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
3 years agoBug 8568: Remove DataProviderService from RootBindingAwareBroker 23/58023/3
Tom Pantelis [Tue, 30 May 2017 23:07:28 +0000 (19:07 -0400)]
Bug 8568: Remove DataProviderService from RootBindingAwareBroker

Change-Id: Ib5e4f70ef72819103544cd6388558dc4a05b55d2
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
3 years agoReplace logger and log by LOG 18/58018/3
David Suarez [Tue, 30 May 2017 19:11:21 +0000 (21:11 +0200)]
Replace logger and log by LOG

Replace logger and log by LOG to follow the
OpenDaylight recommendations [1].

[1]
https://wiki.opendaylight.org/view/BestPractices/Logging_Best_Practices

Change-Id: I63787ccee5950bebbc8c3769885574593a666809
Signed-off-by: David Suarez <david.suarez.fuentes@ericsson.com>
3 years agoBug 8568: Convert sal-binding-dom-it tests to use DataBroker 22/58022/4
Tom Pantelis [Tue, 30 May 2017 22:41:49 +0000 (18:41 -0400)]
Bug 8568: Convert sal-binding-dom-it tests to use DataBroker

Converted the tests in sal-binding-dom-it to use the DataBroker API
instead of the deprecated DataProviderService.

Change-Id: I6d4a3442d3c5cf5ddf34806b6a71454c48e3b54a
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
3 years agoRemove deprecated Snapshot and related code 11/58011/3
Tom Pantelis [Tue, 30 May 2017 12:15:18 +0000 (08:15 -0400)]
Remove deprecated Snapshot and related code

Carbon will create a new snapshot when it encounters a pre-Carbon
Snapshot so we can remove the pre-Carbon Snapshot and related code.

Change-Id: Iae5f140aadb458eaa59ea4cc8be6054bbde090e4
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
3 years agoFix checkstyle problems not detected by the current version 21/58021/1
David Suarez [Tue, 30 May 2017 22:40:36 +0000 (00:40 +0200)]
Fix checkstyle problems not detected by the current version

This change is required for overall move to new Checkstyle version, see
https://git.opendaylight.org/gerrit/#/q/topic:bumpCheckstyle

Change-Id: I9755c1964a7ffa4f6b7d188b5b746e2c9246ad45
Signed-off-by: David Suarez <david.suarez.fuentes@ericsson.com>
3 years agoRemove deprecated PreBoronShardDataTreeSnapshot 99/57999/2
Tom Pantelis [Tue, 30 May 2017 00:27:33 +0000 (20:27 -0400)]
Remove deprecated PreBoronShardDataTreeSnapshot

Since Carbon will migrate all pre-Carbon snapshots, we can remove
support for pre-Boron snaphot compatibility.

Change-Id: I74ee98f013e15c5abf24412671e4ac20bcdda66e
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
3 years agoRemove deprecated ShardManagerSnapshot 95/57995/1
Tom Pantelis [Mon, 29 May 2017 22:38:07 +0000 (18:38 -0400)]
Remove deprecated ShardManagerSnapshot

The original ShardManagerSnapshot was deprecated in Boron and thus should
be safe to remove now.

Change-Id: I643dcf6e06ad4842b69bf1ab1992b028786c83f8
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
3 years agoReplace LOGGER by LOG 54/57954/2
David Suarez [Mon, 29 May 2017 10:03:08 +0000 (12:03 +0200)]
Replace LOGGER by LOG

Replace LOGGER by LOG to follow the
OpenDaylight recommendations [1].

[1]
https://wiki.opendaylight.org/view/BestPractices/Logging_Best_Practices

Change-Id: I024bcd5f23a5bdcc177440b175578694c6c471a4
Signed-off-by: David Suarez <david.suarez.fuentes@ericsson.com>
3 years agoBUG-8402: correctly propagate read-only bit 49/57949/3
Robert Varga [Tue, 23 May 2017 12:56:37 +0000 (14:56 +0200)]
BUG-8402: correctly propagate read-only bit

During replay we substitute read requests with an IncrementSequence
request, but that does not indicate whether the transaction state
should be read-only.

This leads to transaction chains allocating a full-blown transaction
instead of a snapshot, hence follow-up transactions fail to allocate,
leading to OutOfOrderRequestException.

Fix this by making IncrementTransactionSequenceRequest a subclass
of AbstractReadTransactionRequest so it carries isSnapshotOnly().

Change-Id: Ifdb6214478aa7548d3bc1f06b532e06c93b3dd0b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit b24517538beb4f44e6a9a96e68e4bf48156b480f)

3 years agoBug 5740: Add Deque-based control-aware mailbox 18/57818/3
Tom Pantelis [Thu, 25 May 2017 13:39:40 +0000 (09:39 -0400)]
Bug 5740: Add Deque-based control-aware mailbox

Since akka persistence uses stashing, it requires a mailbox to be
Deque-based to provide the enqueueFirst method. However, the
control-aware mailboxes provided by akka are not Deque-based so we
need one that is.

Change-Id: I74f214c725eff16aba093aad3f2f6eed80948ee4
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
3 years agoBug 5740: Add ControlMessage interface to raft messages 76/57776/3
Tom Pantelis [Wed, 24 May 2017 14:58:57 +0000 (10:58 -0400)]
Bug 5740: Add ControlMessage interface to raft messages

Added 'implements ControlMessage' for all RaftRPCs and other messages
related to raft that should have higher priority.

Change-Id: Ie699531ef67d9cbcf7cbdec0422dd2e6faafebaa
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
3 years agoBUG-8371: raise unknown history log to warn 40/57940/2
Robert Varga [Mon, 22 May 2017 08:11:51 +0000 (10:11 +0200)]
BUG-8371: raise unknown history log to warn

This error seems to be happening quite often, raise it to a warning
so we understand what request is triggering it.

Change-Id: If357325787f5c859a46af9286c86c0e9934909cb
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit f336a5c159ed94fb63d588b934727d8149248273)

3 years agoBUG-8403: raise misordered request log message 41/57941/2
Robert Varga [Mon, 22 May 2017 08:17:15 +0000 (10:17 +0200)]
BUG-8403: raise misordered request log message

This error seems to occur intermittently, raise the message to
a warning.

Change-Id: Ia749a9ac17fa75ef26fe7a2963fa9ea3a0b35731
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 956797bba2da2db6de3f1e8877d6825aa4c1f159)

3 years agoBUG 8403 Timeout writetransactions on initial ensure 42/57942/1
Tomas Cere [Fri, 19 May 2017 12:29:33 +0000 (14:29 +0200)]
BUG 8403 Timeout writetransactions on initial ensure

This stage can get stuck aswell and if the submit is never timed out
from the backend as a result of a bug it will never complete.

Change-Id: Ia424d009cd201e3f03a13af88c35b1390b40cbee
Signed-off-by: Tomas Cere <tcere@cisco.com>
(cherry picked from commit bf9e4dc047d4899f76cd95a1f1f4106f3c5bb4a3)

3 years agoBUG 8402: Close readonly tx 82/57682/3
Tomas Cere [Tue, 23 May 2017 12:09:34 +0000 (14:09 +0200)]
BUG 8402: Close readonly tx

This transaction is only used for an exist check of
default prefix shard configuration and needs to be closed
once we are done with it.

Change-Id: I8d7c06e7e3ce58cb91713dac14744c411ec1bf5f
Signed-off-by: Tomas Cere <tcere@cisco.com>
3 years agoBUG 8525 Listeners not getting triggered from followers 64/57764/2
Tomas Cere [Wed, 24 May 2017 12:09:53 +0000 (14:09 +0200)]
BUG 8525 Listeners not getting triggered from followers

This is an oversight in the dtcl implementation of the lowlevel
model. However we also need to change the proxy listener thats
registered from the new sharding apis as there is no way
for the user to specify this cluster interface since the mdsal
api's are required.

Change-Id: I41c02a45d1db9eb9ed8c6e63dff99da567829d2f
Signed-off-by: Tomas Cere <tcere@cisco.com>
3 years agoBug 5740: Remove Serializable where not necessary 74/57774/1
Tom Pantelis [Wed, 24 May 2017 13:40:52 +0000 (09:40 -0400)]
Bug 5740: Remove Serializable where not necessary

Some raft message classes are Serializable but they don't need to
be as they're only sent locally.

Change-Id: Ibd052b9a4589dd2476b30c51e301b3dd609df750
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
3 years agoBug 5740: Change TimeoutNow and Shutdown to externalizable proxy 66/57766/2
Tom Pantelis [Wed, 24 May 2017 12:13:34 +0000 (08:13 -0400)]
Bug 5740: Change TimeoutNow and Shutdown to externalizable proxy

Change-Id: I3b2289c258ffab288901b5cbf4e5032bc143dfc7
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
3 years agoBug 5740: Change RequestVote(Reply) to externalizable proxy 65/57765/1
Tom Pantelis [Wed, 24 May 2017 12:02:00 +0000 (08:02 -0400)]
Bug 5740: Change RequestVote(Reply) to externalizable proxy

The other RaftRPC classes havwe been converted to use the
externalizable proxy pattern so we shoild convert RequestVote(Reply)
as well.

Change-Id: I0a2054d8426f66480f37061d1a9fc51464f705da
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
3 years agoFix test warnings 23/57623/4
Robert Varga [Mon, 22 May 2017 11:14:05 +0000 (13:14 +0200)]
Fix test warnings

This fixes most raw type warnings.

Change-Id: Iaec02aa9f40df6d04b9f1bfa7045c84b6cc40a53
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoBUG 8525: Prevent NPE in test-app listeners 27/57627/2
Tomas Cere [Mon, 22 May 2017 11:22:46 +0000 (13:22 +0200)]
BUG 8525: Prevent NPE in test-app listeners

Prevents the NPE thrown when the listeners didn't
receive any notifications.

Change-Id: I0d774913a15b4341abce779c64d6ee8f75d6a0e1
Signed-off-by: Tomas Cere <tcere@cisco.com>
3 years agoMigrate to yang-data-codec-xml 82/57582/1
Robert Varga [Sat, 20 May 2017 11:26:08 +0000 (13:26 +0200)]
Migrate to yang-data-codec-xml

The codecs in yang-data-impl are going away, use their new place.
Also optimize serialization by sharing XMLOutputFactory, as it is
thread-safe after having been configured.

Change-Id: If6d3b348fa8568e4e84199d4c23ec910c9fc6343
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoSimplify code with new Map features 34/57334/4
Stephen Kitt [Thu, 18 May 2017 09:29:32 +0000 (11:29 +0200)]
Simplify code with new Map features

This is mostly computeIfAbsent to replace the “get, if null,
initialise and put” pattern.

Change-Id: Ie866025c3a6d5099f6f5494ab9d4437d7e9d2320
Signed-off-by: Stephen Kitt <skitt@redhat.com>
3 years agoDeprecate legacy EOS API classes 16/57416/4
Tom Pantelis [Fri, 19 May 2017 10:58:24 +0000 (06:58 -0400)]
Deprecate legacy EOS API classes

Deprecate the legacy API in favor of the new APIs in mdsal.

Change-Id: I819fe7e7006694a5912e4c324055df10d4a33d3d
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
3 years agoBUG-8507: Fix replayed directCommit() on reconnect 71/57571/1
Robert Varga [Thu, 18 May 2017 21:24:15 +0000 (23:24 +0200)]
BUG-8507: Fix replayed directCommit() on reconnect

After remote shard reconnect of a brief isolation, we have observed
a NPE indicating that we encounter a NPE when faced with a direct
commit.

Assuming state engine correctness, this can happen during the time
when we have completed preCommit and before we have recorded the
request result (i.e. after commit completes).

At any rate, this flushes out the need for transaction transitions
to be idempotent, which is something ShardDataTreeTransaction and
ShardDataTreeCohort do not provide.

Encapsulate FrontendReadWriteTransaction state into distinct state
objects. This allows us to accurately track the internal transaction
state and detect when a canCommit, directCommit, preCommit and
doCommit are no-ops because the request is being already handled.

Change-Id: Ib533ec9a4882f51f7914c5b11865ac093c6d6ad0
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 59fab9a9bc6dbf9ad538b3df4460eff146c63ce2)

3 years agoBUG-8511: add more explicit messages 70/57570/1
Robert Varga [Fri, 19 May 2017 13:32:13 +0000 (15:32 +0200)]
BUG-8511: add more explicit messages

This adds more defensive handling of connections and locking,
even if it should not strictly be necessary, as we are using
atomic operations and run on the actor thread. This makes the
transitions work even in fact of actor context leakage.

Change-Id: I26df0f208d63b861a0f3d3dc3c0f1959bbc79e90
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 90a377ec4fe7c1aa4df6d4fde74bfc8189e95b08)

3 years agoBUG-8403: guard against ConcurrentModificationException 69/57569/1
Robert Varga [Fri, 19 May 2017 15:21:42 +0000 (17:21 +0200)]
BUG-8403: guard against ConcurrentModificationException

Using TransmitQueue.asIterable() offers slight advantage of not
dealing with a big list, but exposes us to the risk of the Iterable
being changed.

The point missed by the fix to BUG 8491 is that there is an avenue
for the old connection to be touched during replay, as we are
completing entries, for example reads when we are switching from
remote to local connection. In this case the callback will be invoked
in the actor thread, with all the locks being reentrant and held,
hence it can break through to the old connection's queue.

If that happens we will see a ConcurrentModificationException and
enter a buggy territory, where the client fails to work properly.

Document this caveat and turn asIterable() into drain(), which
removes all the entries in the queue, allowing new entries to be
enqueued. The late-comer entries are accounted for when we set the
forwarder.

Change-Id: Idf29c1e565e12aaed917ac94c21c552daf169d4d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 930747a6ba5d888d2fbe54473132680e4621d858)

3 years agoBUG-8491: Remove requests as they are replayed 68/57568/1
Robert Varga [Wed, 17 May 2017 21:39:55 +0000 (23:39 +0200)]
BUG-8491: Remove requests as they are replayed

We should not be seeing any messages just after we have finished
message replay, as the queue is still locked and we should have
accounted for all messages by removing them from the queue.

Change-Id: I47396b4705e048460934538acc470468a0a6285d
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Signed-off-by: Tomas Cere <tcere@cisco.com>
(cherry picked from commit 585e116247f9b616579ffad1785a972621d928e7)

3 years agoBUG 8462: Switch to using cds-client in usubscribe-ddtl 67/57567/1
Tomas Cere [Thu, 18 May 2017 08:34:25 +0000 (10:34 +0200)]
BUG 8462: Switch to using cds-client in usubscribe-ddtl

The initial notification seemed iffy when the leader was moving,
so switch the final data consitency check to cds-clients read
which also makes this more consistent with unsubscribe-dtcl.

Change-Id: Ia23da11a5bda33925ee6ba911d2794f666a17a94
Signed-off-by: Tomas Cere <tcere@cisco.com>
(cherry picked from commit 5daa19c25730a83fa5d0eb510b47ff159fe734fb)

3 years agoDo not retain initial SchemaContext 24/57424/1
Robert Varga [Thu, 4 May 2017 21:52:57 +0000 (23:52 +0200)]
Do not retain initial SchemaContext

While looking over a memory dump I have noticed that we retain
SchemaContext inside Shard$Builder, which is being retained via
Props (which are used to restart the actor).

This reference is not updated as the SchemaContext is updated, which
means we are wasting memory and are causing Shard to come up with
an ancient SchemaContext after a failure.

Fix this by having an AtomicReference holder for SchemaContext
and have Shard have a Supplier<SchemaContext>.

Change-Id: I73fcae46f249d3679522eb7dbbb059e43c5af6c7
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoyang-jmx-generator: use lambdas 89/57189/3
Stephen Kitt [Tue, 16 May 2017 15:49:19 +0000 (17:49 +0200)]
yang-jmx-generator: use lambdas

This series of patches uses lambdas instead of anonymous classes for
functional interfaces when possible. Lambdas are replaced with method
references when appropriate.

Change-Id: Ica1ba9d37edbd25421b8fabac5cb1567608e1fb6
Signed-off-by: Stephen Kitt <skitt@redhat.com>
3 years agoyang-jmx-generator-plugin: use lambdas 90/57190/3
Stephen Kitt [Tue, 16 May 2017 15:49:08 +0000 (17:49 +0200)]
yang-jmx-generator-plugin: use lambdas

This series of patches uses lambdas instead of anonymous classes for
functional interfaces when possible. Lambdas are replaced with method
references when appropriate.

Change-Id: Ic44563e54557fb678c23c7bd79121419303ef153
Signed-off-by: Stephen Kitt <skitt@redhat.com>
3 years agoBUG-8402: fix sequencing with read/exists requests 78/57378/1
Robert Varga [Sun, 14 May 2017 18:36:09 +0000 (20:36 +0200)]
BUG-8402: fix sequencing with read/exists requests

When replaying successful requests, we do not issue read and exists
requests, as they have already been satisfied, but account for their
sequence numbers.

This does not work in the case where we have a remote connection,
the first request on a transaction is a read and after it is
satisfied subsequent requests are replayed to a different backend
leader.

Since the initial request is not replayed, but subsequent requests
account for it and the backend has no prior knowledge of the
transaction, it sees an initial request with sequence != 0, and
rejects all requests with an OutOfOrderRequestException.

Fix this by introducing IncrementTransactionSequenceRequest, which
the frontend enqueues as the first request instead of the initial
read/exist request -- introducing the transaction to backend.

Change-Id: Ia0f048e33d417e1fdc8d15bf319d6b8b33c2b1b1
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 7f15e81c52f2efda779c670580f0697227557404)

3 years agoBUG-8402: Separate out OutOfOrderRequestException 77/57377/1
Robert Varga [Wed, 17 May 2017 14:19:04 +0000 (16:19 +0200)]
BUG-8402: Separate out OutOfOrderRequestException

OutOfOrderRequestException is used for two distinct cases, which is
a mixup during refactor.

The first case is when an envelope's sequence does not match the
sequence we are expecting on a connection. This is a retriable
exception and happens due to mailbox queueing during leadership
changes:
- a FE sees us as a leader, sends requests
- we become a follower, we reject a few requests
- we become a leader, at which point we must not process requests
  until the FE reconnects, as we would not be processing them in
  the correct order.

The second case is when we receive a Request with an unexpected
sequence. This is a hard error, as it indicates that the client
has made a mistake and lost a request (like the case fixed in
fe69101801085580f2fe72762abea5c5fa83d978).

Separate these two cases out by introducing
OutOfSequenceEnvelopeException and handle it by initiating a session
reconnect.

Change-Id: Ifb0bac41ff2efd6385455fd9c77b8b39054dd4a0
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit d02d60083ee163cf465c265364c21c0df9cdc3c7)

3 years agoBUG-8402: Record modification failures 76/57376/1
Robert Varga [Wed, 17 May 2017 14:56:57 +0000 (16:56 +0200)]
BUG-8402: Record modification failures

When a modification fails to apply, we must record the resulting
failure, as we have partially applied the state and hence should
never attempt to try to do it again even if the client retransmits
the request.

Furthermore we should stop responding to any subsequent requests
including reads, as our responses are not accurate anyway (and the
requests may have been enqueued before the client saw the failure).

Enqueue the failure and respond to all subsequent requests with it,
forcing the transaction to fail the canCommit() phase.

Change-Id: I1d25f1b3a688e02f8a69f54f22a5d6d2dd43339c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 63e6ab3f36e57954baf391855541cf3d42d38a0f)

3 years agoBUG-8422: separate retry and request timeouts 75/57375/1
Robert Varga [Thu, 11 May 2017 14:54:22 +0000 (16:54 +0200)]
BUG-8422: separate retry and request timeouts

This patch corrects a thinko around request timeouts, where we
reconnect the connection based on request timeout, not based on
the 'try' timeout.

The difference between the two is that the 'try' timeout is the
period we allow the backend to respond to our request and when
it does not, we reconnect the connection.

Change-Id: I8c00a80e5c26c5b829056c43fe78a0567041bc5e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Signed-off-by: Tomas Cere <tcere@cisco.com>
(cherry picked from commit f32b44f6e2dac23938a2c01638872c65ba1237f5)

3 years agoFix logging format/argument mismatch 94/57094/2
Robert Varga [Mon, 15 May 2017 13:10:26 +0000 (15:10 +0200)]
Fix logging format/argument mismatch

Two debug sites fail to pass down shardName, leading to mal-formatted
log messages.

Change-Id: I5521539c54c2e1f7ef5ef25d9a47fbc6d6d0a27c
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 2fdecf33df3d9ca653fb8730116c54c67c6740ed)

3 years agoFix read-only abort message mismatch 74/57374/1
Robert Varga [Wed, 26 Apr 2017 12:39:23 +0000 (14:39 +0200)]
Fix read-only abort message mismatch

Testing has revealed:

WARN  | FrontendReadOnlyTransaction | Rejecting unsupported request ModifyTransactionRequest{target=member-2-datastore-config-fe-0-txn-2-0, sequence=1, replyTo=Actor[akka.tcp://opendaylight-cluster-data@10.29.15.184:2550/user/$a#585956314], operations=[], protocol=ABORT}

This is a thinko on the part of which message does what:

TransactionAbortRequest is dedicated for 3PC doAbort phase, hence
it is never seen for read-only transactions.

The message corresponding to an abort is either
AbortLocalTransactionRequest or ModifyTransactionRequest with protocol
set to ABORT.

Change-Id: I3238ade7b9f7933e6538742354888d182f599412
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit da06e5075869af81d46b861691f2e95d22a96bbc)

3 years agoPropagate shard name to FrontendClientMetadataBuilder 73/57373/1
Robert Varga [Wed, 26 Apr 2017 13:24:37 +0000 (15:24 +0200)]
Propagate shard name to FrontendClientMetadataBuilder

Prefixing log message with shard name is useful to track things
down. Pass the shard name down from FrontendMetadata, so we can
emit such messages.

Change-Id: Ie6a2cd218e1a2686f8cc14f67574f245e3de914b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit cd6996f873c6d98b642a0f6f725babed67e211f1)

3 years agoHandle AbortLocalTransactionRequest 70/57370/1
Robert Varga [Tue, 25 Apr 2017 14:58:47 +0000 (16:58 +0200)]
Handle AbortLocalTransactionRequest

When local transactions are aborted from the frontend, it is done
via a dedicated message which we failed to account for. This can
happen only as an alternative to CommitLocalTransactionRequest,
hence needs to be handled only in FrontendReadWriteTransaction.

Change-Id: I350a103f132da473d397a7d5f7de7e45850911f3
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 79418d81cd6accb12ee52d33d5add6f495d7db3c)

3 years agoAdd ClientBackedTransaction allocation recording 69/57369/2
Robert Varga [Tue, 25 Apr 2017 10:55:44 +0000 (12:55 +0200)]
Add ClientBackedTransaction allocation recording

This patch adds a very simple recording of where a transaction
was allocated, aiding identification of callers who fail to close
transactions.

Change-Id: I9a8743c7a38e83c855102a3a25adecfea8599dfe
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 52c35c0e63343d0009a689c970cafed5d005e337)

3 years agoRelax visibility on FrontendReadWriteTransaction methods 67/57367/2
Robert Varga [Fri, 21 Apr 2017 13:38:03 +0000 (15:38 +0200)]
Relax visibility on FrontendReadWriteTransaction methods

We are invoking these methods from anonymous subclasses, hence
keeping them private forces redirection via synthetic accessors:

 at org.opendaylight.controller.cluster.datastore.FrontendReadWriteTransaction.successfulDirectCanCommit
 at org.opendaylight.controller.cluster.datastore.FrontendReadWriteTransaction.access$300
 at org.opendaylight.controller.cluster.datastore.FrontendReadWriteTransaction$5.onSuccess

This patch makes the methods package-private, which will eliminate
the accessor, improving the stack trace.

Change-Id: Idbd803c43d7ed7333fc392a17edaf61c9721d76f
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit abe229278329771993cc6ae09eef2a0a7afc2598)

3 years agoBUG-5280: update transaction statistics 66/57366/1
Robert Varga [Tue, 18 Apr 2017 10:50:20 +0000 (12:50 +0200)]
BUG-5280: update transaction statistics

This patch adds statistics-keeping to tell-based protocol code.

Change-Id: I377cd4d9075f96dc69dd74011458fdcf53a65add
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit a21acd04ac162c1eb84a997ae0c9ac9df185422c)

3 years agoUse try-with-resources 82/57082/3
Stephen Kitt [Mon, 15 May 2017 15:56:02 +0000 (17:56 +0200)]
Use try-with-resources

This automatically-generated patch replaces explicit Closeable
handling with try-with-resources.

Change-Id: Ib707d30dd9730fed5dacefa60d7f61c9010e2909
Signed-off-by: Stephen Kitt <skitt@redhat.com>
3 years agoFix typo in README.OPENDAYLIGHT 45/51545/2
lijingjing [Wed, 8 Feb 2017 06:09:39 +0000 (14:09 +0800)]
Fix typo in README.OPENDAYLIGHT

Change-Id: Icd88e11fab2e082d24448a2f1443e8fe51a2a284
Signed-off-by: lijingjing <li.jingjing3@zte.com.cn>
3 years agoStringBuffer cleanup 63/57063/4
Stephen Kitt [Mon, 15 May 2017 13:15:08 +0000 (15:15 +0200)]
StringBuffer cleanup

This patch cleans up StringBuffer use, mostly replacing StringBuffer
with StringBuilder or plain String concatenation for short sequences
(or constants).

* HexEncode: additionally, avoid using a separate return variable,
  drop the useless ":" handling in bytesToHexString(), and add the
  test class from l2switch.
* HardcodedModuleFactoriesResolver: rework the conflicting module
  handling.

Change-Id: Id76e91bba9ce40bd8ed5947c2d40e3a7baf0a949
Signed-off-by: Stephen Kitt <skitt@redhat.com>
3 years agosal-distributed-datastore: use lambdas 85/57185/2
Stephen Kitt [Tue, 16 May 2017 15:51:25 +0000 (17:51 +0200)]
sal-distributed-datastore: use lambdas

This series of patches uses lambdas instead of anonymous classes for
functional interfaces when possible. Lambdas are replaced with method
references when appropriate.

Change-Id: Ib397cbe0e0179f2f47ef10f13301b604dc6db88b
Signed-off-by: Stephen Kitt <skitt@redhat.com>
3 years agosal-binding-it: use lambdas 80/57180/3
Stephen Kitt [Tue, 16 May 2017 15:50:58 +0000 (17:50 +0200)]
sal-binding-it: use lambdas

This series of patches uses lambdas instead of anonymous classes for
functional interfaces when possible. Lambdas are replaced with method
references when appropriate.

Change-Id: I714b8b5499f6fe5d6f2b2172b59bfba10678bae4
Signed-off-by: Stephen Kitt <skitt@redhat.com>
3 years agosal-binding-broker: use lambdas 78/57178/2
Stephen Kitt [Tue, 16 May 2017 15:50:43 +0000 (17:50 +0200)]
sal-binding-broker: use lambdas

This series of patches uses lambdas instead of anonymous classes for
functional interfaces when possible. Lambdas are replaced with method
references when appropriate.

Change-Id: I17f1fd2a8964cec80d35888f437ea098caa9430a
Signed-off-by: Stephen Kitt <skitt@redhat.com>
3 years agoprotocol-framework: use lambdas 73/57173/2
Stephen Kitt [Tue, 16 May 2017 15:47:17 +0000 (17:47 +0200)]
protocol-framework: use lambdas

This series of patches uses lambdas instead of anonymous classes for
functional interfaces when possible. Lambdas are replaced with method
references when appropriate.

Change-Id: Ife557068a519c0b2822b9ee5dc4b5150373e0cf8
Signed-off-by: Stephen Kitt <skitt@redhat.com>
3 years agoBUG-8402: fix transmit accounting 16/57216/2
Robert Varga [Tue, 16 May 2017 14:49:42 +0000 (16:49 +0200)]
BUG-8402: fix transmit accounting

CSIT has shown that during burst activity and leader movement
we can lose track of messages and the requests can arrive misordered.

As it turns out TransmitQueue.complete() transmit-on-response code
path fails to properly move the request to the in-flight queue.

Furthermore, opportunistic sending TransmitQueue.enqueue() could cause
message reordering if for some reason we have pending requests and
available transmit slot.

Fix this sharing the codepaths and making the TransmitQueue.enqueue()
check pending queue emptiness.

Change-Id: I2daf3d8b198e83c6f50f4a2f43b9e4c3cc091187
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoLower debugging in sal-clustering-commons 41/57141/2
Robert Varga [Tue, 16 May 2017 11:54:24 +0000 (13:54 +0200)]
Lower debugging in sal-clustering-commons

Since this component is under controller.cluster.datastore,
it floods logs with serialization details when we really just
want to understand what the data store is doing. Lower the logs
to TRACE.

Change-Id: Ib9a4735bc439a726452fb98fb5f79d2b7dea2047
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoChange to binding-parent in toaster-provider pom 58/57058/4
Tom Pantelis [Mon, 15 May 2017 12:22:18 +0000 (08:22 -0400)]
Change to binding-parent in toaster-provider pom

It no longer uses the CSS so no need for config-parent.

Change-Id: I79c1c5693da08a5bbf14b7145fd73c51f4ef5be7
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
3 years agoconfig-persister-directory-xml: use lambdas 67/57167/2
Stephen Kitt [Tue, 16 May 2017 15:48:35 +0000 (17:48 +0200)]
config-persister-directory-xml: use lambdas

This series of patches uses lambdas instead of anonymous classes for
functional interfaces when possible. Lambdas are replaced with method
references when appropriate.

Change-Id: I007db062e0b4cabcf56ddbe31039a548e6426017
Signed-off-by: Stephen Kitt <skitt@redhat.com>
3 years agoconfig-persister-feature4-adapter: use lambdas 69/57169/2
Stephen Kitt [Tue, 16 May 2017 15:48:43 +0000 (17:48 +0200)]
config-persister-feature4-adapter: use lambdas

This series of patches uses lambdas instead of anonymous classes for
functional interfaces when possible. Lambdas are replaced with method
references when appropriate.

Change-Id: I0bf3614763eadd55e40753a02b121c103a400228
Signed-off-by: Stephen Kitt <skitt@redhat.com>
3 years agoconfig-persister-feature-adapter: use lambdas 68/57168/2
Stephen Kitt [Tue, 16 May 2017 15:48:50 +0000 (17:48 +0200)]
config-persister-feature-adapter: use lambdas

This series of patches uses lambdas instead of anonymous classes for
functional interfaces when possible. Lambdas are replaced with method
references when appropriate.

Change-Id: Ie1c0dda47a741196de89c95cec49fff572904153
Signed-off-by: Stephen Kitt <skitt@redhat.com>
3 years agosal-akka-raft: use lambdas 76/57176/2
Stephen Kitt [Tue, 16 May 2017 15:49:25 +0000 (17:49 +0200)]
sal-akka-raft: use lambdas

This series of patches uses lambdas instead of anonymous classes for
functional interfaces when possible. Lambdas are replaced with method
references when appropriate.

Change-Id: I1c48105a90efa73c1cb7ae2fba9111f74951fe11
Signed-off-by: Stephen Kitt <skitt@redhat.com>
3 years agofilter-valve: use lambdas 72/57172/2
Stephen Kitt [Tue, 16 May 2017 15:47:09 +0000 (17:47 +0200)]
filter-valve: use lambdas

This series of patches uses lambdas instead of anonymous classes for
functional interfaces when possible. Lambdas are replaced with method
references when appropriate.

Change-Id: I1d754b40d7a0b5b75e8069522f4d5278f08938cd
Signed-off-by: Stephen Kitt <skitt@redhat.com>
3 years agosal-clustering-commons: use lambdas 82/57182/2
Stephen Kitt [Tue, 16 May 2017 15:51:11 +0000 (17:51 +0200)]
sal-clustering-commons: use lambdas

This series of patches uses lambdas instead of anonymous classes for
functional interfaces when possible. Lambdas are replaced with method
references when appropriate.

Change-Id: I2a4a800267cd00e9564dfa8b3af069fc14542f61
Signed-off-by: Stephen Kitt <skitt@redhat.com>
3 years agosal-common-impl: use lambdas 84/57184/2
Stephen Kitt [Tue, 16 May 2017 15:51:21 +0000 (17:51 +0200)]
sal-common-impl: use lambdas

This series of patches uses lambdas instead of anonymous classes for
functional interfaces when possible. Lambdas are replaced with method
references when appropriate.

Change-Id: Ideb92bfb1504831895558607a7591eb8c00bc570
Signed-off-by: Stephen Kitt <skitt@redhat.com>
3 years agoblueprint: use lambdas 63/57163/2
Stephen Kitt [Tue, 16 May 2017 15:46:54 +0000 (17:46 +0200)]
blueprint: use lambdas

This series of patches uses lambdas instead of anonymous classes for
functional interfaces when possible. Lambdas are replaced with method
references when appropriate.

Change-Id: If4e75a86d29643a06f218892e5cf88f72f71da2a
Signed-off-by: Stephen Kitt <skitt@redhat.com>
3 years agoconfig-util: use lambdas 71/57171/2
Stephen Kitt [Tue, 16 May 2017 15:49:03 +0000 (17:49 +0200)]
config-util: use lambdas

This series of patches uses lambdas instead of anonymous classes for
functional interfaces when possible. Lambdas are replaced with method
references when appropriate.

Change-Id: Iac5970f81ff50b5b9358eecfc1529d8102f1b22e
Signed-off-by: Stephen Kitt <skitt@redhat.com>
3 years agosal-cluster-admin-impl: use lambdas 81/57181/2
Stephen Kitt [Tue, 16 May 2017 15:51:03 +0000 (17:51 +0200)]
sal-cluster-admin-impl: use lambdas

This series of patches uses lambdas instead of anonymous classes for
functional interfaces when possible. Lambdas are replaced with method
references when appropriate.

Change-Id: I4efbae3b891eef993bf8692acd3aa979f44d30f5
Signed-off-by: Stephen Kitt <skitt@redhat.com>
3 years agosal-common-api: use lambdas 83/57183/2
Stephen Kitt [Tue, 16 May 2017 15:51:16 +0000 (17:51 +0200)]
sal-common-api: use lambdas

This series of patches uses lambdas instead of anonymous classes for
functional interfaces when possible. Lambdas are replaced with method
references when appropriate.

Change-Id: Id73e97d756b267aa70e8648f41aaa4e40df50fda
Signed-off-by: Stephen Kitt <skitt@redhat.com>
3 years agoconfig-manager: use lambdas 65/57165/2
Stephen Kitt [Tue, 16 May 2017 15:48:27 +0000 (17:48 +0200)]
config-manager: use lambdas

This series of patches uses lambdas instead of anonymous classes for
functional interfaces when possible. Lambdas are replaced with method
references when appropriate.

Change-Id: I7a6f08ed63c251a5a2097321e17ab734bab0c73c
Signed-off-by: Stephen Kitt <skitt@redhat.com>
3 years agoclustering-test-app: use lambdas 74/57174/2
Stephen Kitt [Tue, 16 May 2017 15:51:47 +0000 (17:51 +0200)]
clustering-test-app: use lambdas

This series of patches uses lambdas instead of anonymous classes for
functional interfaces when possible. Lambdas are replaced with method
references when appropriate.

Change-Id: I32a6ac8e58d3f4b2820c3ee52eedb9e108c1a632
Signed-off-by: Stephen Kitt <skitt@redhat.com>
3 years agoconfig-api: use lambdas 64/57164/2
Stephen Kitt [Tue, 16 May 2017 15:48:01 +0000 (17:48 +0200)]
config-api: use lambdas

This series of patches uses lambdas instead of anonymous classes for
functional interfaces when possible. Lambdas are replaced with method
references when appropriate.

Change-Id: I77f590e1e5b5548cb472268fb469b5bbf7cd268d
Signed-off-by: Stephen Kitt <skitt@redhat.com>
3 years agorpcbenchmark: use lambdas 75/57175/2
Stephen Kitt [Tue, 16 May 2017 15:45:54 +0000 (17:45 +0200)]
rpcbenchmark: use lambdas

This series of patches uses lambdas instead of anonymous classes for
functional interfaces when possible. Lambdas are replaced with method
references when appropriate.

Change-Id: Ib75e49cf502ee5c646525ebaef09697cdf1dcff0
Signed-off-by: Stephen Kitt <skitt@redhat.com>
3 years agosal-dom-broker: use lambdas 86/57186/2
Stephen Kitt [Tue, 16 May 2017 15:51:37 +0000 (17:51 +0200)]
sal-dom-broker: use lambdas

This series of patches uses lambdas instead of anonymous classes for
functional interfaces when possible. Lambdas are replaced with method
references when appropriate.

Change-Id: I99d0a505511aa0deaf675ff3c149fdce40bfb552
Signed-off-by: Stephen Kitt <skitt@redhat.com>
3 years agosal-inmemory-datastore: use lambdas 88/57188/2
Stephen Kitt [Tue, 16 May 2017 15:51:42 +0000 (17:51 +0200)]
sal-inmemory-datastore: use lambdas

This series of patches uses lambdas instead of anonymous classes for
functional interfaces when possible. Lambdas are replaced with method
references when appropriate.

Change-Id: I3ed4fecf12d64254a3f3ec701ea22037e52149cc
Signed-off-by: Stephen Kitt <skitt@redhat.com>
3 years agoFix a FB warning 48/57048/2
Robert Varga [Mon, 15 May 2017 09:47:22 +0000 (11:47 +0200)]
Fix a FB warning

There is no need to keep the ticker static, just make it a normal
field.

Change-Id: Ibcc623a82f72aad1af4f88c7c5d2181f01e60710
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoBUG 8422: Change tx handlers hard timeout 34/57134/2
Tomas Cere [Tue, 16 May 2017 10:40:35 +0000 (12:40 +0200)]
BUG 8422: Change tx handlers hard timeout

This makes write-transactions/produce-transactions return an
RpcError upon reaching 2 minutes of waiting after the last
transaction is submitted in case the transactions arent timed out
from the frontend.

Change-Id: I20abbd02ed14e16d9e9a49f935113c0044e7c6d8
Signed-off-by: Tomas Cere <tcere@cisco.com>
3 years agoBUG 8447: Add shard getRole rpcs 33/57133/2
Tomas Cere [Tue, 16 May 2017 10:30:48 +0000 (12:30 +0200)]
BUG 8447: Add shard getRole rpcs

These are added to get around jolokia which seems
to sometimes take a very long time to produce a response,
so we have a way to find out the current shard role via
talking directly to the ShardManager.

Change-Id: I18b98988fc9fab26513544c129e5063e87affede
Signed-off-by: Tomas Cere <tcere@cisco.com>
3 years agoBUG-8159: apply object lifecycle to metadata 40/57140/2
Robert Varga [Tue, 16 May 2017 11:20:41 +0000 (13:20 +0200)]
BUG-8159: apply object lifecycle to metadata

In leader role ShardDataTree needs to maintain its own view of
the metadata that is present in the journal, otherwise snapshots
do not contain accurate view nor can the shard transition to follower
while retaining correct state.

The initial idea was that this would be maintained in the replication
callbacks, but that is not really feasible, as it would spread the
code to different codepaths with the possibility of missed updates.

This patch centralizes metadata updates in payloadReplicationComplete(),
performing them unconditionally. Callbacks registered with
replicatePayload() are then used only for hooking in further events,
like sending messages to the frontend.

Change-Id: I2b3de068589f03fe988f11138436a4ec225e357e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
3 years agoAdd explicit init/close methods to OpendaylightToaster 57/57057/3
Tom Pantelis [Mon, 15 May 2017 12:21:34 +0000 (08:21 -0400)]
Add explicit init/close methods to OpendaylightToaster

The blueprint XML specifies the "register" and "unregister" methods
for init/destroy however this bypasses the "close" method. Add
explicit init/close methods and call register/unregister.

I also moved the initialization code that was in setDataBroker to the
new init method. The former is a setter and should have code logic side
effects.

Change-Id: Idf46f76913c4400aaef61ff78ad8f57e3db4c4b9
Signed-off-by: Tom Pantelis <tompantelis@gmail.com>
3 years agoBug 8444 - Persistent prefix-based shard cannot load its snapshot 76/57076/4
Jakub Morvay [Mon, 15 May 2017 15:13:53 +0000 (17:13 +0200)]
Bug 8444 - Persistent prefix-based shard cannot load its snapshot

Since the name is URL-encoded, we have to make sure it does not get
double-encoded -- hence we need to make a pass of URL-decoding before
we use the result.

Change-Id: I20fe8702ad7e405a8b68d8bda2f9ce4522f2dfd0
Signed-off-by: Jakub Morvay <jmorvay@cisco.com>
3 years agoprotocol-framework: final parameters 12/56912/2
Stephen Kitt [Thu, 11 May 2017 16:55:38 +0000 (18:55 +0200)]
protocol-framework: final parameters

This automatically-generated patch flags all appropriate parameters as
final (including caught exceptions).

Change-Id: I48aac237ca7730845935e53adbbe2ce314f7c564
Signed-off-by: Stephen Kitt <skitt@redhat.com>
3 years agoliblldp: final parameters 11/56911/2
Stephen Kitt [Thu, 11 May 2017 16:54:05 +0000 (18:54 +0200)]
liblldp: final parameters

This automatically-generated patch flags all appropriate parameters as
final (including caught exceptions).

Change-Id: If4e0f5e379b1c4f00970e862a775db372cc191fe
Signed-off-by: Stephen Kitt <skitt@redhat.com>

©2013 OpenDaylight, A Linux Foundation Collaborative Project. All Rights Reserved.
OpenDaylight is a registered trademark of The OpenDaylight Project, Inc.
Linux Foundation and OpenDaylight are registered trademarks of the Linux Foundation.
Linux is a registered trademark of Linus Torvalds.