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

gbellato
04.12.2007 e2447ca29d7539529ef05a40a26abc2f7ae35d8c
refs
author gbellato <gbellato@localhost>
Wednesday, July 4, 2007 17:12 +0200
committer gbellato <gbellato@localhost>
Wednesday, July 4, 2007 17:12 +0200
commite2447ca29d7539529ef05a40a26abc2f7ae35d8c
tree 31fb31c102264f45fa14886cfb3d0aa663b2970b tree | zip | gz
parent 499ae288b6dbc2540190c060528e4b211938a91e 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
opendj-sdk/opends/src/server/org/opends/server/messages/ReplicationMessages.java 11 ●●●●● diff | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/replication/plugin/HistoricalCsnOrderingMatchingRule.java 3 ●●●● diff | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/replication/plugin/PendingChanges.java 2 ●●● diff | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/replication/plugin/ReplicationBroker.java 510 ●●●●● diff | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/replication/plugin/ReplicationDomain.java 4 ●●●● diff | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/replication/plugin/ReplicationMonitor.java 2 ●●● diff | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/replication/protocol/ReplicationMessage.java 4 ●●●● diff | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/replication/protocol/WindowMessage.java 12 ●●●●● diff | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/replication/protocol/WindowProbe.java 84 ●●●●● diff | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/replication/server/ServerHandler.java 31 ●●●●● diff | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/replication/server/ServerReader.java 8 ●●●● diff | view | raw | blame | history
opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/protocol/SynchronizationMsgTest.java 14 ●●●●● diff | view | raw | blame | history
opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ReplicationServerTest.java 60 ●●●●● diff | view | raw | blame | history