giampaolo / pyftpdlib

Extremely fast and scalable Python FTP server library
MIT License
1.65k stars 266 forks source link

tests fail on 1-core VM #540

Closed bmwiedemann closed 2 weeks ago

bmwiedemann commented 3 years ago

While working on reproducible builds for openSUSE, I found that our python-pyftpdlib-1.5.6 package failed its tests when built in a 1-core VM.

To reproduce, one can also use

taskset 1 python3 -m pytest
 pyftpdlib/test/test_functional.py::TestTimeouts::test_idle_data_timeout2 FAILED [ 18%]
 pyftpdlib/test/test_functional_ssl.py::TestTimeouts::test_idle_data_timeout2 FAILED [ 35%]
 pyftpdlib/test/test_functional_ssl.py::TestFtpListingCmdsTLSMixin::test_nlst FAILED [ 46%]
 pyftpdlib/test/test_functional_ssl.py::TestFtpListingCmdsTLSMixin::test_stat FAILED [ 46%]
 pyftpdlib/test/test_functional_ssl.py::TestTimeoutsTLSMixin::test_idle_data_timeout2 FAILED [ 48%]

 self = <pyftpdlib.test.test_functional_ssl.TestFtpListingCmdsTLSMixin testMethod=test_stat>

     def tearDown(self):
         close_client(self.client)
 >       self.server.stop()

     def assert_free_resources():
         ts = threading.enumerate()
         assert len(ts) == 1, ts
         p = psutil.Process()
         children = p.children()
         if children:
             for p in children:
                 p.kill()
                 p.wait(1)
 >           assert not children, children
 E           AssertionError: [psutil.Process(pid=1364, status='terminated')]

====== 5 failed, 714 passed, 55 skipped, 3 deselected, 1 error in 42.03s =======
mcepl commented 2 years ago

We have occasionally this one in our build system (openSUSE when packaging pyftpdlib for our distribution).

This is complete build log with all details about packages used, steps taken etc.