diff --git a/src/sample.c b/src/sample.c index 10749c0e2..4253dd15e 100644 --- a/src/sample.c +++ b/src/sample.c @@ -839,9 +839,6 @@ struct sample *sample_process(struct proxy *px, struct session *l4, void *l7, if (!expr->fetch->process(px, l4, l7, opt, expr->arg_p, p, expr->fetch->kw)) return NULL; - if ((p->flags & SMP_F_MAY_CHANGE) && !(opt & SMP_OPT_FINAL)) - return NULL; /* we can only use stable samples */ - list_for_each_entry(conv_expr, &expr->conv_exprs, list) { /* we want to ensure that p->type can be casted into * conv_expr->conv->in_type. We have 3 possibilities : diff --git a/src/stick_table.c b/src/stick_table.c index 45e6118fe..9a3e855a1 100644 --- a/src/stick_table.c +++ b/src/stick_table.c @@ -615,6 +615,9 @@ struct stktable_key *stktable_fetch_key(struct stktable *t, struct proxy *px, st if (!smp) return NULL; + if ((smp->flags & SMP_F_MAY_CHANGE) && !(opt & SMP_OPT_FINAL)) + return NULL; /* we can only use stable samples */ + if (!sample_to_key[smp->type][t->type]) return NULL;