unit icon indicating copy to clipboard operation
unit copied to clipboard

test_access_log_keepalive - AssertionError: descriptors leak router

Open gene-git opened this issue 1 year ago • 7 comments

FYI, With git head as of commit fbeb2065b180e2376088387ee150d3975dc08cd5 the test_access_log_keepalive test fails with:

>               assert fds_diff <= option.fds_threshold, f'descriptors leak {name}'
E               AssertionError: descriptors leak router
E               assert 4 <= 0
E                +  where 0 = <unit.option.Options object at 0x7f3d461fe710>.fds_threshold

test/conftest.py:541: AssertionError

gene-git avatar Feb 15 '24 12:02 gene-git

Hi @gene-git! Thank you for the report, could you please tell more about environment where you reproduce this (OS, configure args, env variables, etc)? Also logs could be useful here. Currently, I cant see this fail on our VMs.

andrey-zelenkov avatar Feb 16 '24 16:02 andrey-zelenkov

Right so sorry about that.

  • tool versions
Archlinux
    kernel : 6.7.4-stable
    gcc: 13.2.1
    gcc-libs: 13.2.1
    pcre2: 10.42-2
    python: 3.11.8
    pytest: 7.4.4
    openssl: 3.2.1
  • package build environment

These are my env which override some of the default ones in /etc/makepkg.conf

MAKEFLAGS="-j4"
BUILDENV=(!distcc color !ccache check sign)
CFLAGS="-march=x86-64-v3 -mtune=generic -O2 -pipe -fno-plt -fexceptions \
       -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security \
       -fstack-clash-protection -fcf-protection -std=gnu18"
_USER='unit'
_GROUP='unit'
  • configure (inside PKGBUILD invoked via arch "makepkg")
./configure --prefix='/usr' \
                --bindir='/usr/bin' \
                --sbindir='/usr/bin' \
                --libdir='/usr/lib' \
                --modulesdir='/usr/lib/unit/modules' \
                --localstatedir='/var' \
                --statedir='/var/lib/unit' \
                --runstatedir='/run/unit' \
                --logdir='/var/log/unit' \
                --openssl \
                --tests \
                --user="$_USER" \
                --group="$_GROUP" \
                --ld-opt='-Wl,-zrelro -Wl,-znow'

    ./configure python
  • build
    make all
  • test
pytest

gene-git avatar Feb 16 '24 17:02 gene-git

build log - I changed the build to not run all tests since only 1 failed. i.e. pytest -k 'test_access_log'

build-unit.log

gene-git avatar Feb 16 '24 17:02 gene-git

For completeness here is the archlinux default /etc/makepkg.conf file. Seems the build ignores LDFLAGS which is why I used ld-opt in configure.

makepkg.conf.txt

gene-git avatar Feb 16 '24 17:02 gene-git

FYI - tag 1.32.0 has few additional fails now - build log attached.

=========================== short test summary info ============================
FAILED test/test_tls.py::test_tls_certificate_chain - ssl.SSLCertVerification...
FAILED test/test_tls.py::test_tls_certificate_chain_long - ssl.SSLCertVerific...
FAILED test/test_tls_sni.py::test_tls_sni - ssl.SSLCertVerificationError: [SS...
FAILED test/test_tls_sni.py::test_tls_sni_no_hostname - ssl.SSLCertVerificati...
FAILED test/test_tls_sni.py::test_tls_sni_upper_case - ssl.SSLCertVerificatio...
FAILED test/test_tls_sni.py::test_tls_sni_only_bundle - ssl.SSLCertVerificati...
FAILED test/test_tls_sni.py::test_tls_sni_wildcard - ssl.SSLCertVerificationE...
FAILED test/test_tls_sni.py::test_tls_sni_duplicated_bundle - ssl.SSLCertVeri...
FAILED test/test_tls_sni.py::test_tls_sni_same_alt - ssl.SSLCertVerificationE...
FAILED test/test_tls_sni.py::test_tls_sni_empty_cn - ssl.SSLCertVerificationE...
ERROR test/test_access_log.py::test_access_log_pipeline - AssertionError: des...
= 10 failed, 510 passed, 354 skipped, 1 deselected, 1 error in 352.34s (0:05:52) =
==> ERROR: A failure occurred in check().
    Aborting...

Build.log

gene-git avatar Feb 27 '24 20:02 gene-git

Hi,

TLS-related tests run on OpenSSL 3.2 should be fixed now: https://github.com/nginx/unit/pull/1215

andrey-zelenkov avatar Apr 10 '24 13:04 andrey-zelenkov

Confirm the tls-related ones are fixed. Now only the test_access_log_keepalive remains. thanks!

gene-git avatar Apr 10 '24 16:04 gene-git