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

mrossign
25.42.2009 34e1f4d91a079ce597a97f62c097736641e97b27
refs
author mrossign <mrossign@localhost>
Wednesday, November 25, 2009 17:42 +0100
committer mrossign <mrossign@localhost>
Wednesday, November 25, 2009 17:42 +0100
commit34e1f4d91a079ce597a97f62c097736641e97b27
tree 9d5396aabbb169eb6626f5250bc3f42a9deb4a5c tree | zip | gz
parent 9268da54b39dff6f0afbda53c9bd61deff1a8f66 view | diff
This is related to modifications done for RFE 4343.

Sometimes a message like this appears in the logs:

"Monitor data of remote servers are missing due to an error in the
retrieval process. Potentially a server is too slow to provide its
monitoring data over the protocol"

This seems to be introduced by the monitoring publisher thread which may
call the ReplicationServerDomain.completeMonitorData method at the same
time a MonitoringRequest message is being treated and is also in the
same method.

These 2 threads are concurrently running the
ReplicationServerDomain.completeMonitorData method as one of the thread
wants to execute wrkMonitorData.completeComputing() which is outside of
the syncronized section, the other thread may reset wrkMonitorData to
null just before and this leads to a NPE. So another RS waiting for the
monitor response will never receive it and display the annoying message.

The fix is to move the wrkMonitorData.completeComputing() call into the
synchronized section.
1 files modified
3 ■■■■ changed files
opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java 3 ●●●● diff | view | raw | blame | history