This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author vstinner
Recipients vstinner
Date 2021-04-16.11:58:36
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1618574316.46.0.326879877907.issue43842@roundup.psfhosted.org>
In-reply-to
Content
There is a race condition. The main thread closes a file descriptor which is part of the asyncore loop "map", a thread polls on the asyncore "map" file descriptors.

-- Main thread --

Close a socket:

  File "/usr/home/vstinner/python/master/Lib/test/test_logging.py", line 1072, in test_basic                                                                   
    server.stop()                                                              
  File "/usr/home/vstinner/python/master/Lib/test/test_logging.py", line 870, in stop                                                                          
    self.close()                                                               

-- TestSMTPServer thread --

Wait in asyncore.loop():
                      
Exception in thread Thread-1 (serve_forever):                                                                                                                  
Traceback (most recent call last):                                             
  File "/usr/home/vstinner/python/master/Lib/threading.py", line 990, in _bootstrap_inner                                                                      
    self.run()                                                                 
  File "/usr/home/vstinner/python/master/Lib/threading.py", line 928, in run                                                                                   
    self._target(*self._args, **self._kwargs)                                  
  File "/usr/home/vstinner/python/master/Lib/test/test_logging.py", line 863, in serve_forever                                                                 
    asyncore.loop(poll_interval, map=self._map)                                
  File "/usr/home/vstinner/python/master/Lib/asyncore.py", line 211, in loop                                                                                   
    poll_fun(timeout, map)                                                     
  File "/usr/home/vstinner/python/master/Lib/asyncore.py", line 145, in poll                                                                                   
    r, w, e = select.select(r, w, e, timeout)                                  
OSError: [Errno 9] Bad file descriptor
History
Date User Action Args
2021-04-16 11:58:36vstinnersetrecipients: + vstinner
2021-04-16 11:58:36vstinnersetmessageid: <1618574316.46.0.326879877907.issue43842@roundup.psfhosted.org>
2021-04-16 11:58:36vstinnerlinkissue43842 messages
2021-04-16 11:58:36vstinnercreate