Browse Source

Do not strand edge sync when an event fetcher fails

pull/16044/head
Andrii Landiak 2 weeks ago
parent
commit
1ad0c481dd
  1. 7
      application/src/main/java/org/thingsboard/server/service/edge/rpc/EdgeGrpcSession.java

7
application/src/main/java/org/thingsboard/server/service/edge/rpc/EdgeGrpcSession.java

@ -269,7 +269,12 @@ public abstract class EdgeGrpcSession implements Closeable {
@Override
public void onFailure(Throwable t) {
log.error("[{}][{}] Exception during sync process", tenantId, edge.getId(), t);
log.error("[{}][{}] Exception during sync process, skipping fetcher {} and continuing",
tenantId, edge.getId(), next.getClass().getSimpleName(), t);
// Keep walking the cursor: returning here leaves syncInProgress set for the life of the
// session, so the edge never receives SyncCompletedMsg and both general downlink delivery
// and uplink processing stay gated until the session is re-established.
doSync(cursor);
}
}, ctx.getGrpcCallbackExecutorService());
} else {

Loading…
Cancel
Save