[Bug 2085389] [NEW] File descriptor leak on /var/lib/sss/pipes/nss socket

Launchpad Bug Tracker 2085389 at bugs.launchpad.net
Thu Oct 24 20:09:52 UTC 2024


You have been subscribed to a public bug by Bryce Harrington (bryce):

[Impact]

When running in a multithreaded environment each pthread that opens the
/var/lib/sss/pipes/nss socket retains the file descriptor in a thread
specific structure. This file descriptor should be closed when the
thread is destroyed but due to a bug it is left open thus generating the
leak.

[Test Plan]

This code generates many threads that open the mentioned socket.

#include <pwd.h>
#include <unistd.h>
#include <pthread.h>

static void *client(void *arg)
{
    int i = *((int *)arg);
    struct passwd pwd;
    char buf[10000];
    struct passwd *r;

    getpwuid_r(i, &pwd, buf, 10000, &r);

    return NULL;
}

int main(void)
{
    pthread_t thread;
    int arg;
    void *t_ret;

    for (int i = 0; i < 1000; ++i) {
        arg = 100000+i;
        pthread_create(&thread, NULL, client, &arg);
        pthread_join(thread, &t_ret);
    }

    while (1) {
        sleep(1);
    }

    return 0;
}

The file descriptor leak problem can be tested by compiling this code as
a test_code binary for example and running

lsof -p `pidof test_code` | wc -l

The count can reach more than a thousand when should not be bigger than
around 20 normally.

[Where problems could occur]

The patched code correctly accesses the thread specific structure to get
the file descriptor and close the socket. Previously it just considered
the structure was null and did nothing. The only new problems that could
occur are related to the closing of the socket but that would be not
worse than the previous situation.

[Other Info]

This bug only affects Noble. This is the original github issue that was patched:
https://github.com/SSSD/sssd/issues/7189

** Affects: sssd (Ubuntu)
     Importance: Undecided
         Status: Fix Released

** Affects: sssd (Ubuntu Noble)
     Importance: Undecided
     Assignee: Jorge Merlino (jorge-merlino)
         Status: In Progress

** Affects: sssd (Ubuntu Oracular)
     Importance: Undecided
         Status: Fix Released

** Affects: sssd (Ubuntu Plucky)
     Importance: Undecided
         Status: Fix Released

-- 
File descriptor leak on /var/lib/sss/pipes/nss socket
https://bugs.launchpad.net/bugs/2085389
You received this bug notification because you are a member of Ubuntu Sponsors, which is subscribed to the bug report.



More information about the Ubuntu-sponsors mailing list