Bug 1695802

Summary: python-daemon-2.2.3-1.fc31 FTBFS with Python 3.8: OSError: [Errno 88] Socket operation on non-socket
Product: [Fedora] Fedora Reporter: Miro Hrončok <mhroncok>
Component: python-daemonAssignee: Fedora Infrastructure SIG <infra-sig>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: urgent Docs Contact:
Priority: unspecified    
Version: rawhideCC: infra-sig, kevin, rbean
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-06-29 20:37:36 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1686977    
Attachments:
Description Flags
Full log from Copr none

Description Miro Hrončok 2019-04-03 18:38:35 UTC
Created attachment 1551503 [details]
Full log from Copr

When I build python-daemon 2.2.3-1.fc31 for Python 3.8, 73 tests error out:

  Ran 356 tests in 1.251s
  FAILED (errors=73, skipped=2)

The failures look like this:

  ======================================================================
  ERROR: test_specifies_username_to_initgroups (test.test_daemon.change_process_owner_TestCase)
  test.test_daemon.change_process_owner_TestCase.test_specifies_username_to_initgroups
  ----------------------------------------------------------------------
  testtools.testresult.real._StringException: Traceback (most recent call last):
    File "/builddir/build/BUILD/python3-python-daemon-2.2.3-1.fc31/test/test_daemon.py", line 1037, in setUp
      setup_daemon_context_fixtures(self)
    File "/builddir/build/BUILD/python3-python-daemon-2.2.3-1.fc31/test/test_daemon.py", line 110, in setup_daemon_context_fixtures
      testcase.test_instance = daemon.DaemonContext(
    File "/builddir/build/BUILD/python3-python-daemon-2.2.3-1.fc31/daemon/daemon.py", line 273, in __init__
      detach_process = is_detach_process_context_required()
    File "/builddir/build/BUILD/python3-python-daemon-2.2.3-1.fc31/daemon/daemon.py", line 821, in is_detach_process_context_required
      if is_process_started_by_init() or is_process_started_by_superserver():
    File "/builddir/build/BUILD/python3-python-daemon-2.2.3-1.fc31/daemon/daemon.py", line 798, in is_process_started_by_superserver
      if is_socket(stdin_fd):
    File "/builddir/build/BUILD/python3-python-daemon-2.2.3-1.fc31/daemon/daemon.py", line 764, in is_socket
      file_socket = socket.fromfd(fd, socket.AF_INET, socket.SOCK_RAW)
    File "/usr/lib64/python3.8/socket.py", line 464, in fromfd
      return socket(family, type, proto, nfd)
    File "/usr/lib64/python3.8/socket.py", line 151, in __init__
      _socket.socket.__init__(self, family, type, proto, fileno)
  OSError: [Errno 88] Socket operation on non-socket
  
  
  ----------------------------------------------------------------------

Full log attached.

This doesn't seem like a Copr issue, as Python 2.7 tests pass:

  Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.5KMVxt
  + umask 022
  + cd /builddir/build/BUILD
  + cd python-daemon-2.2.3
  ++ pwd
  + PYTHONPATH=/builddir/build/BUILD/python-daemon-2.2.3
  + /usr/bin/python2 -m unittest discover
  ...............................................................................................................................................................................................s....................s...............................................................................................................................................
  ----------------------------------------------------------------------
  Ran 356 tests in 1.820s
  
  OK (skipped=2)
  + pushd /builddir/build/BUILD/python3-python-daemon-2.2.3-1.fc31
  ~/build/BUILD/python3-python-daemon-2.2.3-1.fc31 ~/build/BUILD/python-daemon-2.2.3
  ++ pwd
  + PYTHONPATH=/builddir/build/BUILD/python3-python-daemon-2.2.3-1.fc31
  + /usr/bin/python3 -m unittest discover
  EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE.................EEEEEEEEEE...........................................................s.....................s........................................................................................................................................................................................


I've also rebuilt the package in side copr with Python 3.7 and it builds fine.

Comment 1 Miro Hrončok 2019-04-03 18:49:05 UTC
Reproduced and reported upstream: https://pagure.io/python-daemon/issue/34

Comment 2 Miro Hrončok 2019-04-03 19:00:15 UTC
The fix: https://pagure.io/python-daemon/pull-request/35

Comment 3 Miro Hrončok 2019-06-05 15:03:18 UTC
Shall I just commit and push the patch?

Comment 4 Kevin Fenzi 2019-06-29 20:37:36 UTC
Sorry I didn't see this for some reason. ;( 

Anyhow, it looks like upstream did a differnt fix than you, and I pulled that commit and built in rawhide. Please make sure it fixes the issue you were hitting with 3.8...

https://koji.fedoraproject.org/koji/taskinfo?taskID=35934251

Comment 5 Miro Hrončok 2019-06-30 00:02:56 UTC
Built fine.