Opened 12 months ago

Last modified 3 months ago

#53093 assigned defect

python27: poll call is broken on 10.12

Reported by: jwhowarth Owned by: jmroot (Joshua Root)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc:
Port: python27

Description (last modified by ryandesign (Ryan Schmidt))

As reported in https://bugs.python.org/issue28456 and rdar://28372390 as well as https://daniel.haxx.se/blog/2016/10/11/poll-on-mac-10-12-is-broken/ Apple broke the poll() call again in Sierra resulting in failures in the python test suite at...

======================================================================
FAIL: test_handle_expt (test.test_asyncore.TestAPI_UsePoll)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/sw/src/fink.build/python27-2.7.12-1/Python-2.7.12/Lib/test/test_asyncore.py", line 620, in test_handle_expt
    self.loop_waiting_for_flag(client)
  File "/sw/src/fink.build/python27-2.7.12-1/Python-2.7.12/Lib/test/test_asyncore.py", line 519, in loop_waiting_for_flag
    self.fail("flag not set")
AssertionError: flag not set

----------------------------------------------------------------------
Ran 41 tests in 6.847s

FAILED (failures=1)
test test_asyncore failed -- Traceback (most recent call last):
  File "/sw/src/fink.build/python27-2.7.12-1/Python-2.7.12/Lib/test/test_asyncore.py", line 620, in test_handle_expt
    self.loop_waiting_for_flag(client)
  File "/sw/src/fink.build/python27-2.7.12-1/Python-2.7.12/Lib/test/test_asyncore.py", line 519, in loop_waiting_for_flag
    self.fail("flag not set")
AssertionError: flag not set

1 test failed again:
    test_asyncore
make: [test] Error 1 (ignored)

Since the configure in python 2.7.12 doesn't have fine enough control to eliminate the usage of the poll() calls, I resorted to...

		perl -pi -e 's|\#define HAVE_POLL 1||' ./pyconfig.h
		perl -pi -e 's|\#define HAVE_POLL_H 1||g' ./pyconfig.h
		perl -pi -e 's|\#define HAVE_SYS_POLL_H 1||g' ./pyconfig.h

post-configure which allowed fink's python27 package to successfully pass 'make check'. MacPorts will need similar hack for the 10.12 python package builds.

Change History (2)

comment:1 Changed 12 months ago by ryandesign (Ryan Schmidt)

  • Description modified (diff)
  • Owner set to jyrkiwahlstedt
  • Status changed from new to assigned
  • Summary changed from poll call is broken on 10.12 to python27: poll call is broken on 10.12

This only affects python27, or also older and newer versions of python?

comment:2 Changed 3 months ago by jmroot (Joshua Root)

  • Owner changed from jyrkiwahlstedt to jmroot
Note: See TracTickets for help on using tickets.