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.

classification
Title: test_socket failure on AIX
Type: behavior Stage: resolved
Components: Library (Lib) Versions: Python 3.3, Python 3.4, Python 3.5
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: Nosy List: David.Edelsohn, baikie, ncoghlan, pitrou, python-dev, rbcollins, serhiy.storchaka, vstinner
Priority: normal Keywords: patch

Created on 2014-09-12 18:44 by David.Edelsohn, last changed 2022-04-11 14:58 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
12958_aix.patch David.Edelsohn, 2014-09-12 18:44 review
Messages (9)
msg226837 - (view) Author: David Edelsohn (David.Edelsohn) * Date: 2014-09-12 18:44
AIX has the same test_socket problem with FDPassSeparate as Darwin in Issue12958 so skip some tests.
msg227944 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2014-09-30 15:11
LGTM.
msg227948 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2014-09-30 15:54
See also issue11192.
msg228000 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2014-09-30 21:13
Current test_socket failures on PPC64 AIX 3.x buildbot:

http://buildbot.python.org/all/builders/PPC64%20AIX%203.x/builds/2672/steps/test/logs/stdio



======================================================================
ERROR: testFDPassSeparateMinSpace (test.test_socket.RecvmsgSCMRightsStreamTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/shager/cpython-buildarea/3.x.edelsohn-aix-ppc64/build/Lib/test/test_socket.py", line 266, in _tearDown
    raise exc
  File "/home/shager/cpython-buildarea/3.x.edelsohn-aix-ppc64/build/Lib/test/test_socket.py", line 278, in clientRun
    test_func()
  File "/home/shager/cpython-buildarea/3.x.edelsohn-aix-ppc64/build/Lib/test/test_socket.py", line 2778, in _testFDPassSeparateMinSpace
    array.array("i", [fd1]))]),
  File "/home/shager/cpython-buildarea/3.x.edelsohn-aix-ppc64/build/Lib/test/test_socket.py", line 1896, in sendmsgToServer
    *(args + self.sendmsg_to_server_defaults[len(args):]))
OSError: [Errno 22] Invalid argument

======================================================================
ERROR: testFDPassSeparate (test.test_socket.RecvmsgIntoSCMRightsStreamTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/shager/cpython-buildarea/3.x.edelsohn-aix-ppc64/build/Lib/test/test_socket.py", line 266, in _tearDown
    raise exc
  File "/home/shager/cpython-buildarea/3.x.edelsohn-aix-ppc64/build/Lib/test/test_socket.py", line 278, in clientRun
    test_func()
  File "/home/shager/cpython-buildarea/3.x.edelsohn-aix-ppc64/build/Lib/test/test_socket.py", line 2754, in _testFDPassSeparate
    array.array("i", [fd1]))]),
  File "/home/shager/cpython-buildarea/3.x.edelsohn-aix-ppc64/build/Lib/test/test_socket.py", line 1896, in sendmsgToServer
    *(args + self.sendmsg_to_server_defaults[len(args):]))
OSError: [Errno 22] Invalid argument

======================================================================
ERROR: testFDPassSeparateMinSpace (test.test_socket.RecvmsgIntoSCMRightsStreamTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/shager/cpython-buildarea/3.x.edelsohn-aix-ppc64/build/Lib/test/test_socket.py", line 266, in _tearDown
    raise exc
  File "/home/shager/cpython-buildarea/3.x.edelsohn-aix-ppc64/build/Lib/test/test_socket.py", line 278, in clientRun
    test_func()
  File "/home/shager/cpython-buildarea/3.x.edelsohn-aix-ppc64/build/Lib/test/test_socket.py", line 2778, in _testFDPassSeparateMinSpace
    array.array("i", [fd1]))]),
  File "/home/shager/cpython-buildarea/3.x.edelsohn-aix-ppc64/build/Lib/test/test_socket.py", line 1896, in sendmsgToServer
    *(args + self.sendmsg_to_server_defaults[len(args):]))
OSError: [Errno 22] Invalid argument

======================================================================
FAIL: testIPv4toString (test.test_socket.GeneralModuleTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/shager/cpython-buildarea/3.x.edelsohn-aix-ppc64/build/Lib/test/test_socket.py", line 976, in testIPv4toString
    assertInvalid(f, '0.0.0.')
  File "/home/shager/cpython-buildarea/3.x.edelsohn-aix-ppc64/build/Lib/test/test_socket.py", line 968, in <lambda>
    (OSError, ValueError), func, a
AssertionError: (<class 'OSError'>, <class 'ValueError'>) not raised by inet_aton

======================================================================
FAIL: testIPv6toString (test.test_socket.GeneralModuleTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/shager/cpython-buildarea/3.x.edelsohn-aix-ppc64/build/Lib/test/test_socket.py", line 1033, in testIPv6toString
    assertInvalid('1:2:3:4:5:6:7:8:')
  File "/home/shager/cpython-buildarea/3.x.edelsohn-aix-ppc64/build/Lib/test/test_socket.py", line 1011, in <lambda>
    (OSError, ValueError), f, a
AssertionError: (<class 'OSError'>, <class 'ValueError'>) not raised by <lambda>

======================================================================
FAIL: testFDPassSeparate (test.test_socket.RecvmsgSCMRightsStreamTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/shager/cpython-buildarea/3.x.edelsohn-aix-ppc64/build/Lib/test/test_socket.py", line 2742, in testFDPassSeparate
    maxcmsgs=2)
  File "/home/shager/cpython-buildarea/3.x.edelsohn-aix-ppc64/build/Lib/test/test_socket.py", line 2669, in checkRecvmsgFDs
    self.assertEqual(msg, MSG)
AssertionError: b'' != b'Michael Gilfix was here\xe1\x88\xb4\r\n'

======================================================================
FAIL: testFDPassSeparateMinSpace (test.test_socket.RecvmsgSCMRightsStreamTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/shager/cpython-buildarea/3.x.edelsohn-aix-ppc64/build/Lib/test/test_socket.py", line 2766, in testFDPassSeparateMinSpace
    maxcmsgs=2, ignoreflags=socket.MSG_CTRUNC)
  File "/home/shager/cpython-buildarea/3.x.edelsohn-aix-ppc64/build/Lib/test/test_socket.py", line 2669, in checkRecvmsgFDs
    self.assertEqual(msg, MSG)
AssertionError: b'' != b'Michael Gilfix was here\xe1\x88\xb4\r\n'

======================================================================
FAIL: testFDPassSeparate (test.test_socket.RecvmsgIntoSCMRightsStreamTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/shager/cpython-buildarea/3.x.edelsohn-aix-ppc64/build/Lib/test/test_socket.py", line 2742, in testFDPassSeparate
    maxcmsgs=2)
  File "/home/shager/cpython-buildarea/3.x.edelsohn-aix-ppc64/build/Lib/test/test_socket.py", line 2669, in checkRecvmsgFDs
    self.assertEqual(msg, MSG)
AssertionError: b'' != b'Michael Gilfix was here\xe1\x88\xb4\r\n'

======================================================================
FAIL: testFDPassSeparateMinSpace (test.test_socket.RecvmsgIntoSCMRightsStreamTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/shager/cpython-buildarea/3.x.edelsohn-aix-ppc64/build/Lib/test/test_socket.py", line 2766, in testFDPassSeparateMinSpace
    maxcmsgs=2, ignoreflags=socket.MSG_CTRUNC)
  File "/home/shager/cpython-buildarea/3.x.edelsohn-aix-ppc64/build/Lib/test/test_socket.py", line 2669, in checkRecvmsgFDs
    self.assertEqual(msg, MSG)
AssertionError: b'' != b'Michael Gilfix was here\xe1\x88\xb4\r\n'

Ran 528 tests in 35.259s

FAILED (failures=6, errors=4, skipped=94)
msg228005 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2014-09-30 21:33
Failing tests:

* testFDPassSeparateMinSpace (test.test_socket.RecvmsgSCMRightsStreamTest)
* testFDPassSeparate (test.test_socket.RecvmsgIntoSCMRightsStreamTest)
* testFDPassSeparateMinSpace (test.test_socket.RecvmsgIntoSCMRightsStreamTest)
* testFDPassSeparate (test.test_socket.RecvmsgSCMRightsStreamTest)
* testFDPassSeparateMinSpace (test.test_socket.RecvmsgSCMRightsStreamTest)
* testFDPassSeparate (test.test_socket.RecvmsgIntoSCMRightsStreamTest)
* testFDPassSeparateMinSpace (test.test_socket.RecvmsgIntoSCMRightsStreamTest)

It looks like the failure come from code like:

    self.sendmsgToServer([MSG], [(socket.SOL_SOCKET,
                                  socket.SCM_RIGHTS,
                                  array.array("i", [fd0])),

and

    self.doRecvmsg(self.serv_sock, len(MSG),
                   socket.CMSG_SPACE(SIZEOF_INT) + socket.CMSG_LEN(SIZEOF_INT)),

In clear, there are errors on tests sending file descriptors through UNIX sockets. So this issue is a duplicate of #20718, but we may keep this one for AIX, and #20718 for OpenBSD.

It looks possible to send a file descriptor between processes but using a pipe with I_SENDFD and I_RECVFD ioctl. See:
http://www-01.ibm.com/support/knowledgecenter/ssw_aix_71/com.ibm.aix.commtrf2/I_SENDFD.htm
http://www-01.ibm.com/support/knowledgecenter/ssw_aix_71/com.ibm.aix.commtrf2/I_RECVFD.htm
http://search.cpan.org/~fractal/AnyEvent-FDpasser-0.3.0/lib/AnyEvent/FDpasser.pm
msg228011 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2014-09-30 22:05
The testFDPassSimple pass: it's possible to pass a file descriptor between two processes. Hum. The testMultipleFDPass test also pass: it's possible to pass multiple file descriptors. Both tests use SCM_RIGHTS. The testCMSG_SPACE test also pass.

It looks like the difference between testMultipleFDPass and testFDPassSeparate is the number of "cmsgs" ("access ancillary data"): 1 cmsg for testMultipleFDPass, two for testFDPassSeparate.

I don't understand if it is a bug in the Python socket.sendmsg() function serializing ancillary data, or "just" if the AIX kernel does not support multiple ancillary data for sendmsg().

@David: any idea? Did you ask IBM?
msg247908 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2015-08-02 22:39
New changeset e48826904e63 by Robert Collins in branch '3.4':
Issue #22397: Skip failing tests on AIX
https://hg.python.org/cpython/rev/e48826904e63

New changeset a12d29f87e4c by Robert Collins in branch '3.5':
Issue #22397: Skip failing tests on AIX
https://hg.python.org/cpython/rev/a12d29f87e4c

New changeset 62235755609f by Robert Collins in branch 'default':
Issue #22397: Skip failing tests on AIX
https://hg.python.org/cpython/rev/62235755609f
msg247909 - (view) Author: Robert Collins (rbcollins) * (Python committer) Date: 2015-08-02 22:41
I've updated the ref in the patch to this bug per Victor's comments, and applied.

I'm not sure of protocol here. Do we close this ticket, or keep it open to analyze the actual cause?
msg247953 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2015-08-03 20:57
I'm not interested to investigate the issue on AIX. IMHO the feature is
just not supported by the kernel so there is nothing to investigate except
if you want to hack AIX kernel.
History
Date User Action Args
2022-04-11 14:58:08adminsetgithub: 66591
2015-08-03 21:16:56r.david.murraysetstatus: open -> closed
resolution: fixed
stage: needs patch -> resolved
2015-08-03 20:57:38vstinnersetmessages: + msg247953
title: test_socket not running all tests on AIX -> test_socket failure on AIX
2015-08-02 22:46:30rbcollinssettitle: test_socket failure on AIX -> test_socket not running all tests on AIX
stage: commit review -> needs patch
2015-08-02 22:41:42rbcollinssetnosy: + rbcollins
messages: + msg247909
2015-08-02 22:39:30python-devsetnosy: + python-dev
messages: + msg247908
2015-04-16 17:19:42baikiesetnosy: + baikie
2014-09-30 22:05:54vstinnersetmessages: + msg228011
2014-09-30 21:33:34vstinnersetmessages: + msg228005
2014-09-30 21:13:03vstinnersetmessages: + msg228000
2014-09-30 15:54:32serhiy.storchakasetmessages: + msg227948
2014-09-30 15:11:51serhiy.storchakasetnosy: + serhiy.storchaka

messages: + msg227944
stage: commit review
2014-09-30 15:00:44David.Edelsohnsetnosy: + vstinner
2014-09-12 18:47:35serhiy.storchakasetnosy: + ncoghlan
2014-09-12 18:44:13David.Edelsohncreate