mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

gbellato
04.12.2007 23b1e20ff9fe938572a0b62ec5a12f12154445df
refs
author gbellato <gbellato@localhost>
Wednesday, July 4, 2007 17:12 +0200
committer gbellato <gbellato@localhost>
Wednesday, July 4, 2007 17:12 +0200
commit23b1e20ff9fe938572a0b62ec5a12f12154445df
tree 1e005137dbfe1a05b2f9f7163e7342c8289a2e79 tree | zip | gz
parent fcba34c60ad4dda4d98c7d70dcc7f34bb9bdfef8 view | diff
The problem was that the publisher thread is stuck waiting for the window
to re-open on a connection that has been closed without notifying the publisher.

Several changes were done to avoid this :

- reading the monitoring information does not acquire the lock on the PendingChanges object anymore so that we can use it to debug such problems.

- When a connection to a server goes down, the operation now never
tries to re-open the connection, but wait for the receiver thread to do it.
The operation thread wait in the post-op until the reconnection is finished or until the receiver thread has found that there are no replication server available.

- tries to make the window mechanism more robustby introducing a loop around
the sendWindow.acquire() call so that the publisher thread is never
blocked indefinitely in this call in case of bugs or other problems
that could lead to this situation.
Also add a WindowProbe message that is sent to the replication server when the publisher notice that the window has been closed for a while to check if the window is really closed.

- notify the publisher thread when the connection has been shutdown.
1 files added
12 files modified
745 ■■■■■ changed files
opends/src/server/org/opends/server/messages/ReplicationMessages.java 11 ●●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/replication/plugin/HistoricalCsnOrderingMatchingRule.java 3 ●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/replication/plugin/PendingChanges.java 2 ●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/replication/plugin/ReplicationBroker.java 510 ●●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/replication/plugin/ReplicationDomain.java 4 ●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/replication/plugin/ReplicationMonitor.java 2 ●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/replication/protocol/ReplicationMessage.java 4 ●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/replication/protocol/WindowMessage.java 12 ●●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/replication/protocol/WindowProbe.java 84 ●●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/replication/server/ServerHandler.java 31 ●●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/replication/server/ServerReader.java 8 ●●●● diff | view | raw | blame | history
opends/tests/unit-tests-testng/src/server/org/opends/server/replication/protocol/SynchronizationMsgTest.java 14 ●●●●● diff | view | raw | blame | history
opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ReplicationServerTest.java 60 ●●●●● diff | view | raw | blame | history