[SSI-devel] [ ssic-linux-Bugs-1718329 ] Problem with migration of process using tcp socket
Brought to you by:
brucewalker,
rogertsang
From: SourceForge.net <no...@so...> - 2007-08-13 07:05:23
|
Bugs item #1718329, was opened at 2007-05-13 17:25 Message generated for change (Comment added) made by rogertsang You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=405834&aid=1718329&group_id=32541 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Process Management Group: v1.9.2 Status: Open Resolution: None Priority: 5 Private: No Submitted By: ch0hlik (ch0hlik) Assigned to: Nobody/Anonymous (nobody) Summary: Problem with migration of process using tcp socket Initial Comment: For example I use this little tcp server: http://www.cs.rpi.edu/courses/sysprog/sockets/server.c $ gcc -o server server.c On the first node 10.0.0.1: $ ./server 8888 $ migrate 2 server_pid On the second node 10.0.0.2: $ telnet 10.0.0.1 8888 Trying 10.0.0.1... Connected to openone (10.0.0.1). Escape character is '^]'. Connection closed by foreign host. After this server show: ERROR reading from socket: Invalid argument In 1.2.2 I'm the same steps and it works fine. In 1.9.3 problem looks just like in 1.9.2 or worse. (1.9.3 from here: http://radian.org/~roger/OPENSSI-FC/kernel/2.6.11/) ---------------------------------------------------------------------- >Comment By: Roger Tsang (rogertsang) Date: 2007-08-13 03:05 Message: Logged In: YES user_id=1246761 Originator: NO Looking at the code again... In SSI-1.9 the base kernel-2.6 inode structure no longer directly references its socket structure unlike in SSI-1.2. Unless the contents of this socket structure is exported to the destination node along with the inode SSI-1.9 rmtsocksvr_* operations that use SOCKET_I() are still working with bugus information from the local node's sock_inode_cache. This explains why TCP sockets did not get recreated properly on the destination migration node. ---------------------------------------------------------------------- Comment By: ch0hlik (ch0hlik) Date: 2007-06-06 15:18 Message: Logged In: YES user_id=1771064 Originator: YES Is there is any possibilities that socket migration will be supported in 1.9.2 od 1.9.3? ---------------------------------------------------------------------- Comment By: Roger Tsang (rogertsang) Date: 2007-05-14 03:10 Message: Logged In: YES user_id=1246761 Originator: NO According to reop_import_pathinit() the current OpenSSI implementation does not support socket migration. However for some reason existing outbound connections continue even after process migration. The migration code looks pretty much the same in SSI-1.2 and SSI-1.9. ---------------------------------------------------------------------- Comment By: Roger Tsang (rogertsang) Date: 2007-05-13 23:59 Message: Logged In: YES user_id=1246761 Originator: NO In 2.6.11-ssi TCP socket did not get recreated properly at the destination node. At origin node: server 236031 root 3u IPv4 121308792 TCP *:8888 (LISTEN) At destination node: server 236031 root 3u sock 0,2 121308792 can't identify protocol When migrating the process back to the origin node, the listen socket reappears. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=405834&aid=1718329&group_id=32541 |