Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • Kea Kea
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 508
    • Issues 508
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 50
    • Merge requests 50
  • Deployments
    • Deployments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • Value stream
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • ISC Open Source Projects
  • KeaKea
  • Issues
  • #1260

Closed
Open
Created May 28, 2020 by Razvan Becheriu@razvanDeveloper

avoid more race conditions

it seems that addLease, updateLease and deleteLease are called in several other places. we should lock the resource there as well:

Dhcpv4Srv::processRelease
Dhcpv4Srv::declineLease

Dhcpv6Srv::releaseIA_NA
Dhcpv6Srv::releaseIA_PD
Dhcpv6Srv::declineLease
Dhcpv6Srv::generateFqdn

LeaseCmdsImpl::lease6BulkApplyHandler - there is a leaseDelete which can cause other races.
LeaseCmdsImpl::lease4DelHandler - will cause race
LeaseCmdsImpl::lease6DelHandler - will cause race

AllocEngine::allocateReservedLeases6
    from AllocEngine::allocateLeases6
        from Dhcpv6Srv::assignIA_NA
        from Dhcpv6Srv::assignIA_PD
    from AllocEngine::renewLeases6
        from Dhcpv6Srv::extendIA_NA
        from Dhcpv6Srv::extendIA_PD

AllocEngine::allocateGlobalReservedLeases6
    from AllocEngine::allocateReservedLeases6

AllocEngine::removeNonmatchingReservedLeases6
    from AllocEngine::allocateLeases6
        from Dhcpv6Srv::assignIA_NA
        from Dhcpv6Srv::assignIA_PD
    from AllocEngine::renewLeases6
        from Dhcpv6Srv::extendIA_NA
        from Dhcpv6Srv::extendIA_PD

AllocEngine::removeNonmatchingReservedNoHostLeases6
    from AllocEngine::removeNonmatchingReservedLeases6
        from AllocEngine::allocateLeases6
            from Dhcpv6Srv::assignIA_NA
            from Dhcpv6Srv::assignIA_PD
        from AllocEngine::renewLeases6
            from Dhcpv6Srv::extendIA_NA
            from Dhcpv6Srv::extendIA_PD

AllocEngine::removeNonreservedLeases6
    from AllocEngine::allocateLeases6
        from Dhcpv6Srv::assignIA_NA
        from Dhcpv6Srv::assignIA_PD
    from AllocEngine::renewLeases6
        from Dhcpv6Srv::extendIA_NA
        from Dhcpv6Srv::extendIA_PD

AllocEngine::reuseExpiredLease
    from AllocEngine::allocateUnreservedLeases6
        from AllocEngine::allocateLeases6
            from Dhcpv6Srv::assignIA_NA
            from Dhcpv6Srv::assignIA_PD
        from AllocEngine::renewLeases6
            from Dhcpv6Srv::extendIA_NA
            from Dhcpv6Srv::extendIA_PD

AllocEngine::createLease6
    from AllocEngine::allocateUnreservedLeases6
        from AllocEngine::allocateLeases6
            from Dhcpv6Srv::assignIA_NA
            from Dhcpv6Srv::assignIA_PD
        from AllocEngine::renewLeases6
            from Dhcpv6Srv::extendIA_NA
            from Dhcpv6Srv::extendIA_PD
    from AllocEngine::allocateReservedLeases6
        from AllocEngine::allocateLeases6
            from Dhcpv6Srv::assignIA_NA
            from Dhcpv6Srv::assignIA_PD
        from AllocEngine::renewLeases6
            from Dhcpv6Srv::extendIA_NA
            from Dhcpv6Srv::extendIA_PD
    from AllocEngine::allocateGlobalReservedLeases6
        from AllocEngine::allocateLeases6
            from Dhcpv6Srv::assignIA_NA
            from Dhcpv6Srv::assignIA_PD
        from AllocEngine::renewLeases6
            from Dhcpv6Srv::extendIA_NA
            from Dhcpv6Srv::extendIA_PD

AllocEngine::extendLease6
    from AllocEngine::renewLeases6
        from Dhcpv6Srv::extendIA_NA
        from Dhcpv6Srv::extendIA_PD

AllocEngine::updateLeaseData
    from AllocEngine::allocateLeases6
        from Dhcpv6Srv::assignIA_NA
        from Dhcpv6Srv::assignIA_PD

AllocEngine::deleteExpiredReclaimedLeases6 - will cause race
AllocEngine::deleteExpiredReclaimedLeases4 - will cause race

AllocEngine::reclaimLeaseInDatabase
    from AllocEngine::reclaimExpiredLease Lease4Ptr
    from AllocEngine::reclaimExpiredLease Lease6Ptr

AllocEngine::reclaimExpiredLease Lease4Ptr
    from AllocEngine::reclaimExpiredLeases4 - safe
    from AllocEngine::renewLease4
    from AllocEngine::reuseExpiredLease4

AllocEngine::reclaimExpiredLease Lease6Ptr
    from AllocEngine::reuseExpiredLease
    from AllocEngine::extendLease6
    from AllocEngine::reclaimExpiredLeases6 - safe

AllocEngine::createLease4
    from AllocEngine::allocateOrReuseLease4
        from AllocEngine::discoverLease4
        from AllocEngine::requestLease4

AllocEngine::requestLease4
    from AllocEngine::allocateLease4
        from Dhcpv4Srv::assignLease

AllocEngine::renewLease4
    from AllocEngine::discoverLease4
        from AllocEngine::allocateLease4
            from Dhcpv4Srv::assignLease
    from AllocEngine::requestLease4
        from AllocEngine::allocateLease4
            from Dhcpv4Srv::assignLease

AllocEngine::reuseExpiredLease4
    from AllocEngine::allocateOrReuseLease4
        from AllocEngine::discoverLease4
        from AllocEngine::requestLease4
    from AllocEngine::allocateUnreservedLease4
        from AllocEngine::discoverLease4
        from AllocEngine::requestLease4
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking