|
func (k Keeper) OnTimeoutPacketV2(ctx sdk.Context, sourceClientID string) error { |
|
consumerId, found := k.GetClientIdToConsumerId(ctx, sourceClientID) |
|
if !found { |
|
k.Logger(ctx).Error("packet timeout, unknown client:", "clientID", sourceClientID) |
|
return errorsmod.Wrapf( |
|
providertypes.ErrInvalidConsumerClient, |
|
"timeout on unknown client %s", sourceClientID, |
|
) |
|
} |
|
k.Logger(ctx).Info("packet timeout, deleting the consumer:", "consumerId", consumerId, "clientId", sourceClientID) |
|
return k.StopAndPrepareForConsumerRemoval(ctx, consumerId) |
|
} |
When the provider chain receives a packet timeout, it stops and removes the related consumer chain.
Given that a packet timeout can happen if the consumer chain is just not responsive (or just the RPC targeted by the relayer, if there's a single one), I wonder if this is not too severe.
Summoning @clockworkgr since it's related to relayer behavior.
vaas/x/vaas/provider/keeper/relay.go
Lines 37 to 48 in e7a3153
When the provider chain receives a packet timeout, it stops and removes the related consumer chain.
Given that a packet timeout can happen if the consumer chain is just not responsive (or just the RPC targeted by the relayer, if there's a single one), I wonder if this is not too severe.
Summoning @clockworkgr since it's related to relayer behavior.