Details
-
Type:
Bug
-
Status: Closed
-
Priority:
Major
-
Resolution: Won't Fix
-
Affects Version/s: None
-
Fix Version/s: None
-
Component/s: Repository Health Check
-
Labels:None
Description
Index data should track 2 timestamps (last modified / last revalidated)
The file that end up as:
sonatype-work/nexus/indexer/repository-ctx/nexus-maven-repository-index-updater.properties
This currently contains the data: nexus.index.timestamp
A remote repository should track 2 timestamps independantly:
The Last Modified timestamp, that is the last time a write operation on the index that caused the incremental index version number to increase/change.
The Last Revalidated timestamp, the last time the remote repository checked all the data in the index is current and still valid, with no need to make any modification. This will often be the same timestamp as the Last Modified timestamp, when a change was made at the last index rebuild.
With these two timestamps it is possible for a subordinate Nexus to know if the upstream index is being refreshed and updated, even if there where no changed made to it at the time.
With these two timestamps it is then possible for nexus to automatically DISABLE and IGNORE index data, where the revalidation timestamp is older than some number of seconds/hours/days.
Then when the timestamp is updated it can auto-ENABLE the previous index version.
This matter has been a major problem for me over the 5 years I have been battling with index issues, the problem is the copy I have locally is out of date, because it can not be downloaded, or the upstream stopped publishing an index, or the upstreams index is broken and out of date.
See my other recent but NEXUS-7574 concerning how to provide the status of this information in the Remote Browsing, but maybe the Repository Health Check is a better tab for it?