telstra / open-kilda

OpenKilda is an open-source OpenFlow controller initially designed for use in a global network with high control-plane latency and a heavy emphasis on latency-centric data path optimisation.
Apache License 2.0
78 stars 53 forks source link

Constraint violation errors observed when amount of flows in the system is close to maximum #4224

Open rtretyak opened 3 years ago

rtretyak commented 3 years ago
  1. Create a lot of flows (transit_vlan). Get close to 4094 flows or 2097 protected flows. During the test I created flows sequentially in 1 thread, with a 1 minute pause after each 500 requests.
  2. When getting closer to max amount, observe flow creation sometimes failing with errors:
    {
    "correlation_id" : "1d50a657-189a-47ed-a44f-218c69ff3c94 : fn-tests-16afee71-5d35-48fe-acc1-ef38a3fdc950",
    "timestamp" : 1619427900682,
    "error-type" : "Internal service error",
    "error-message" : "Could not create flow",
    "error-description" : "Failure in transaction"
    }

    image Failure in resource allocation.txt Failure in transaction.txt

rtretyak commented 3 years ago

tests available: org.openkilda.performancetests.spec.EnduranceSpec."Create 4094 flows"(), org.openkilda.performancetests.spec.EnduranceSpec."Create 2047 protected flows"()

rtretyak commented 3 years ago

Tried adding 5s delays after each flow create operation for last 5% of flows. Tried waiting for flow UP status for last 5% of flows. In both cases still received errors, so it looks like it does not depend on the speed or concurrency