• Eirik Fuller's avatar
    perf test: Handle fd gaps in test__dso_data_reopen · 88056929
    Eirik Fuller authored
    https://github.com/beaker-project/restraint/issues/215 describes a file
    descriptor leak which revealed the test failure described here.
    
    The 'DSO data reopen' perf test assumes that RLIMIT_NOFILE limits the
    number of open file descriptors, but it actually limits newly opened
    file descriptors. When the file descriptor limit is reduced, file
    descriptors already open remain open regardless of the new limit. This
    test failure does not occur if open file descriptors are contiguous,
    beginning at zero.
    
    The following command triggers this perf test failure.
    
    perf test 'DSO data reopen' 3>/dev/null 8>/dev/null
    
    This patch determines the file descriptor limit by opening four files
    and then closing them. The limit is set to the fourth file descriptor,
    leaving only the first three available because any newly opened file
    descriptor must be less than the limit.
    Signed-off-by: default avatarEirik Fuller <efuller@redhat.com>
    Acked-by: default avatarJiri Olsa <jolsa@redhat.com>
    Acked-by: default avatarMichael Petlan <mpetlan@redhat.com>
    LPU-Reference: 20210626023825.1398547-1-efuller@redhat.com
    Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    88056929
dso-data.c 8.37 KB