Revision 9f6d52e1a8886f7ba792dee9dc2b933c7dddafce authored by Lorenz Bauer on 11 June 2024, 15:23:53 UTC, committed by André Martins on 13 June 2024, 12:03:41 UTC
The logic to allocate SNAT mapping contains a race condition.
At a high level it does the following:

    if (!revsnat_exists(port)) {
        if (!create_revsnat(port)
            return error;

        ...
    }

Two concurrent executions of the datapath may succeed the
revsnat_exists check, which then leads to one of them bailing
out since create_revsnat fails.

Instead simply try to create the RevSNAT entry. If that fails we
retry with another port.

Signed-off-by: Lorenz Bauer <lmb@isovalent.com>
1 parent dc52072
Raw File
CONTRIBUTING.md
# How to Contribute

## To Cilium/Hubble

See the [Developer / Contributor
Guide](https://docs.cilium.io/en/stable/contributing/development/contributing_guide/) for detailed information on
how to contribute, get started and find good first issues.

## To the cilium.io website

Please see the [cilium.io website contributing guide](https://github.com/cilium/cilium.io/blob/main/CONTRIBUTING.md) for detailed
information on how to add blogs, trainings, and other resources.

## To the Cilium documentation

Please see the [Cilium documentation contributing guide](https://docs.cilium.io/en/stable/contributing/docs/) for detailed
information on how to contribute to the Cilium documentation.
back to top