Closed vaikas closed 3 years ago
Forgot to mention that looking at the IMC logs, there are tons of messages about updatestatus failures due to concurrent writes.
Right and then it fails because of the default controller rate limiter (15 failures wait 163s for next retry).
Both the subscription controller and the in-memory controller are modifying the channel status. Maybe only one controller should do it.
IIUC the subscription controller shouldn't be modifying the channel status. It should only be modifying the spec.
ah yes you are right :-) Same problem though, right?
Yes :)
What I find extremely odd is that the Spec is empty for subsribers. So even if updatestatus fails, seems odd that there's no subscriptions marked despite the generation indicating that 16 updates to the spec have been done.
This issue is stale because it has been open for 90 days with no
activity. It will automatically close after 30 more days of
inactivity. Reopen the issue with /reopen
. Mark the issue as
fresh by adding the comment /remove-lifecycle stale
.
There's been a lot of flakiness as of late, and as part of tracking it down, jotting down some of the things that I've seen happen. This happens typically with the many trigger tests. Here's typically what happens in those cases, the subscription thinks it's in a good state, IMC does not have the subscription and Trigger does not come ready because subscription is actually not ok.
Here's an example object dumps:
What's peculiar is that the channel has its generation match its observedgeneration at 16. But notice the subscriber array (in spec and in status are both empty).