Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-7325

make lf_hash_delete(), lf_hash_search(), and lf_hash_iterator() never to return OOM

    XMLWordPrintable

Details

    • Task
    • Status: Closed (View Workflow)
    • Critical
    • Resolution: Fixed
    • 10.1.3
    • OTHER
    • None

    Description

      When lf_delete() — for example — searches in the hash it may need to allocate and insert a new dummy node, the latter may fail with OOM. The caller normally doesn't expect OOM from searches or deletes and it's not always easy to handle OOM there.

      Instead lf_delete() and lf_search() can be changed never to return OOM. Indeed, when a search cannot insert a new dummy node, it simply needs to start searching from the previous dummy node, which is guaranteed to exist.

      It's even easier in lf_hash_iterate() — it only ever looks for the very first bucket, dummy node 0. If that node does not exists, the hash is most certainly empty.

      Attachments

        Activity

          People

            serg Sergei Golubchik
            serg Sergei Golubchik
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Git Integration

                Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.