classification
Title: Make socket support TIPC.
Type: enhancement Stage:
Components: Library (Lib) Versions: Python 2.6
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: christian.heimes Nosy List: albertito, christian.heimes, gvanrossum
Priority: normal Keywords: patch

Created on 2007-12-18 02:54 by albertito, last changed 2008-01-07 16:19 by christian.heimes. This issue is now closed.

Files
File name Uploaded Description Edit
0001-Make-socket-support-TIPC.patch albertito, 2008-01-07 09:32
0002-Add-documentation-and-Misc-NEWS-entry-for-TIPC-suppo.patch albertito, 2008-01-07 09:32
0003-Add-unit-tests-for-TIPC-socket-support.patch albertito, 2008-01-07 09:32
Messages (11)
msg58721 - (view) Author: Alberto Bertogli (albertito) Date: 2007-12-18 02:54
TIPC (http://tipc.sf.net) is an open protocol designed for use in
clustered computer environments. It currently has an open source
implementation for Linux (>= 2.6.16), and VxWorks.

The attached patch (against trunk) adds optional Linux-only support for
TIPC in the socket module.

If you want me to make one against 3.0 or any other branch, just let me
know.

Thanks,
    Alberto
msg58755 - (view) Author: Guido van Rossum (gvanrossum) * (Python committer) Date: 2007-12-18 19:10
I'm okay with adding this, it doesn't add much code and is properly
safeguarded by #ifdefs and has a configure.in patch.

I haven't reviewed the code though.
msg58860 - (view) Author: Alberto Bertogli (albertito) Date: 2007-12-20 05:56
On Tue, Dec 18, 2007 at 07:10:39PM -0000, Guido van Rossum wrote:
> Guido van Rossum added the comment:
> 
> I'm okay with adding this, it doesn't add much code and is properly
> safeguarded by #ifdefs and has a configure.in patch.

Thanks!

Is there anything else I need to do in order to get this ready for
inclusion?

Thanks again,
		Alberto
msg58885 - (view) Author: Guido van Rossum (gvanrossum) * (Python committer) Date: 2007-12-20 15:17
Tickle the interest of one of the many folks with commit privileges. 
Since 2.6 isn't going to be released for months there's no great hurry,
but waiting until the last minute would be a mistake.
msg58960 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2007-12-22 10:18
I've chatted with albertito a few days ago and adviced him to post the
patch here. I'll take it.

From the first review the patch looks good. The code is written cleanly
and it uses the appropriate API. The new code is surrounded by ifdefs
and it has a patch for configure.in. I'll do the autoreconf to update
the other files locally.

The patch is missing documentation updates, Misc/NEWS update and some
unit tests. The docs should list the new constants and explain TIPC
briefly in a few sentences. You don't need to write a novell ;)
msg59336 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2008-01-05 22:08
*PING*

I'm still waiting for a new patch. Your feature patch has been accepted
but I won't commit it without doc updates.
msg59378 - (view) Author: Alberto Bertogli (albertito) Date: 2008-01-06 14:45
On Sat, Jan 05, 2008 at 10:08:15PM -0000, Christian Heimes wrote:
> I'm still waiting for a new patch. Your feature patch has been accepted
> but I won't commit it without doc updates.

I know, but holidays were not the best time to write documentation.

I'll probably send you the updated patch sometime this week; thanks for
the ping =)

Thanks,
		Alberto
msg59439 - (view) Author: Alberto Bertogli (albertito) Date: 2008-01-07 09:32
On Sun, Jan 06, 2008 at 02:45:35PM -0000, Alberto Bertogli wrote:
> I'll probably send you the updated patch sometime this week; thanks for
> the ping =)

Here are the three patches, rebased to the SVN commit 59815.

The first one is the same I've already submitted, the second adds the
documentation and the third two testcases.

The testcases are simple, but I think cover a reasonable amount of TIPC
specific code. If you want more, let me know.

The documentation is simple, as you told me, just a paragraph explaining
about the address format and another explaining the constants. Again, if
you want me to change anything, just let me know.

Finally, if you want me to rebase this on top of any other branch, you
guessed it, just let me know ;)

Thanks a lot,
		Alberto
msg59456 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2008-01-07 15:37
The unit tests don't work for me (Ubuntu 7.10, Linux 2.6.22, i386)

>>> srv = socket.socket(socket.AF_TIPC, socket.SOCK_RDM)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/heimes/dev/python/trunk/Lib/socket.py", line 177, in __init__
    _sock = _realsocket(family, type, proto)
socket.error: [Errno 97] Address family not supported by protocol

Do I have to set up my network device for TIPC?
msg59458 - (view) Author: Alberto Bertogli (albertito) Date: 2008-01-07 16:04
On Mon, Jan 07, 2008 at 03:37:54PM -0000, Christian Heimes wrote:
> The unit tests don't work for me (Ubuntu 7.10, Linux 2.6.22, i386)
> 
> >>> srv = socket.socket(socket.AF_TIPC, socket.SOCK_RDM)
> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
>   File "/home/heimes/dev/python/trunk/Lib/socket.py", line 177, in __init__
>     _sock = _realsocket(family, type, proto)
> socket.error: [Errno 97] Address family not supported by protocol
> 
> Do I have to set up my network device for TIPC?

No, by default you have a single-node cluster fully capable of TIPC
networking. But you do need the TIPC module loaded; have you tried
modprobe tipc?

If that works, the test cases should pass.

I understand that this might be a problem because there is no time to
check at runtime if you have TIPC enabled in your kernel (besides the
obvious way of trying to create the socket and see if it fails); but you
have the same problem with any network protocol (although obviously is
much more common to have TIPC disabled than the rest of the supported
ones).

Do you want me to check for this in the conditional for inclusion?

Thanks,
		Alberto
msg59459 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2008-01-07 16:19
Committed in r59819
History
Date User Action Args
2008-01-07 16:19:08christian.heimessetstatus: open -> closed
resolution: accepted -> fixed
messages: + msg59459
2008-01-07 16:04:48albertitosetmessages: + msg59458
2008-01-07 15:37:53christian.heimessetmessages: + msg59456
2008-01-07 15:24:04christian.heimessetfiles: - 0002-Make-socket-support-TIPC.patch
2008-01-07 09:32:48albertitosetfiles: + 0001-Make-socket-support-TIPC.patch, 0002-Add-documentation-and-Misc-NEWS-entry-for-TIPC-suppo.patch, 0003-Add-unit-tests-for-TIPC-socket-support.patch
messages: + msg59439
2008-01-06 14:45:13albertitosetmessages: + msg59378
2008-01-05 22:08:14christian.heimessetresolution: accepted
messages: + msg59336
2007-12-22 10:18:50christian.heimessetassignee: christian.heimes
messages: + msg58960
nosy: + christian.heimes
2007-12-20 15:17:12gvanrossumsetmessages: + msg58885
2007-12-20 05:56:59albertitosetmessages: + msg58860
2007-12-18 19:10:39gvanrossumsetnosy: + gvanrossum
messages: + msg58755
2007-12-18 03:05:23christian.heimessetpriority: normal
keywords: + patch
type: enhancement
2007-12-18 02:54:12albertitocreate