Skip to content

Commit 9cda535

Browse files
committed
wip
Signed-off-by: Attila Mészáros <a_meszaros@apple.com>
1 parent 89ec5c3 commit 9cda535

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/ManagedInformerEventSource.java

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,7 @@ public void handleRecentResourceCreate(ResourceID resourceID, R resource) {
191191

192192
@Override
193193
public Optional<R> get(ResourceID resourceID) {
194+
// order of getting those resource from cache matters
194195
Optional<R> resource = temporaryResourceCache.getResourceFromCache(resourceID);
195196
var res = cache.get(resourceID);
196197
if (log.isDebugEnabled()) {
@@ -200,10 +201,16 @@ public Optional<R> get(ResourceID resourceID) {
200201
}
201202
if (comparableResourceVersions
202203
&& resource.isPresent()
203-
&& ReconcilerUtilsInternal.compareResourceVersions(
204-
resource.get().getMetadata().getResourceVersion(),
205-
manager().lastSyncResourceVersion(resource.get().getMetadata().getNamespace()))
206-
> 0) {
204+
// it can happen here that we receive an event after we read the resource from the informer
205+
// cache
206+
// that bumps the lastSync version, but we read the resource before. In that case we want to
207+
// return
208+
// the resource from temp cache.
209+
&& (res.isEmpty()
210+
|| ReconcilerUtilsInternal.compareResourceVersions(
211+
resource.get().getMetadata().getResourceVersion(),
212+
manager().lastSyncResourceVersion(resource.get().getMetadata().getNamespace()))
213+
> 0)) {
207214
log.debug("Latest resource found in temporary cache for Resource ID: {}", resourceID);
208215
return resource;
209216
}

0 commit comments

Comments
 (0)