Opened 7 years ago

Closed 6 years ago

#53093 closed defect (fixed)

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 Carsten 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 (3)

comment:1 Changed 7 years ago by ryandesign (Ryan Carsten Schmidt)

Description: modified (diff)
Owner: set to jyrkiwahlstedt
Status: newassigned
Summary: poll call is broken on 10.12python27: poll call is broken on 10.12

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

comment:2 Changed 7 years ago by jmroot (Joshua Root)

Owner: changed from jyrkiwahlstedt to jmroot

comment:3 Changed 6 years ago by jmroot (Joshua Root)

Resolution: fixed
Status: assignedclosed

https://bugs.python.org/issue28087 says this was fixed in 10.12.2.

Note: See TracTickets for help on using tickets.