Skip to content

Analyze if removing a consumer chain on IBC timeout is not too severe #36

@tbruyelle

Description

@tbruyelle

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions