From: SourceForge.net <no...@so...> - 2007-06-28 21:29:18
|
Bugs item #1745073, was opened at 2007-06-28 21:29 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112867&aid=1745073&group_id=12867 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: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Bob Luse (rluse) Assigned to: Nobody/Anonymous (nobody) Summary: Minor Problem with SocketServer Initial Comment: Hi, This one is a little strange and I'm not sure how serious it is, but I thought I would document it while I have recreated it. When I run the following script on Jython 2.2b2: import SocketServer import socket import string class EchoHandler(SocketServer.BaseRequestHandler): def handle(self): f = self.request.makefile() self.request.send("HTTP/1.0 200 OK\r\n") self.request.send("Content-type text/plain\r\n\r\n") self.request.send("Received connection from %s\r\n\r\n" % (self.client_address,)) while True: line = f.readline() self.request.send(line) if not string.strip(line): break f.close() import sys print sys.version print sys.platform serv = SocketServer.TCPServer(("", 9000), EchoHandler) print 'Running on port 9000' serv.serve_forever() ---------------------------------------------------- And then point my Firefox browser at http://localhost:9000 I get the following output: ------------------------------------------------- Received connection from ('sn45g', 1037) GET / HTTP/1.1 Host: localhost:9000 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4 Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Cache-Control: max-age=0 ----------------------------------------------------- but, when I run the same script on Jython 2.2RC1, I get this output in my browser: ---------------------------------------------------- Received connection from ('localhost', 4090) GET / HTTP/1.1 ------------------------------------------------------ It gives me 'localhost' instead of 'sn45g' which is my windows system name, and then trunkates much of the remaining response. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112867&aid=1745073&group_id=12867 |
From: SourceForge.net <no...@so...> - 2007-06-29 12:01:38
|
Bugs item #1745073, was opened at 2007-06-28 21:29 Message generated for change (Comment added) made by amak You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112867&aid=1745073&group_id=12867 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: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Bob Luse (rluse) >Assigned to: Alan Kennedy (amak) Summary: Minor Problem with SocketServer Initial Comment: Hi, This one is a little strange and I'm not sure how serious it is, but I thought I would document it while I have recreated it. When I run the following script on Jython 2.2b2: import SocketServer import socket import string class EchoHandler(SocketServer.BaseRequestHandler): def handle(self): f = self.request.makefile() self.request.send("HTTP/1.0 200 OK\r\n") self.request.send("Content-type text/plain\r\n\r\n") self.request.send("Received connection from %s\r\n\r\n" % (self.client_address,)) while True: line = f.readline() self.request.send(line) if not string.strip(line): break f.close() import sys print sys.version print sys.platform serv = SocketServer.TCPServer(("", 9000), EchoHandler) print 'Running on port 9000' serv.serve_forever() ---------------------------------------------------- And then point my Firefox browser at http://localhost:9000 I get the following output: ------------------------------------------------- Received connection from ('sn45g', 1037) GET / HTTP/1.1 Host: localhost:9000 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4 Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Cache-Control: max-age=0 ----------------------------------------------------- but, when I run the same script on Jython 2.2RC1, I get this output in my browser: ---------------------------------------------------- Received connection from ('localhost', 4090) GET / HTTP/1.1 ------------------------------------------------------ It gives me 'localhost' instead of 'sn45g' which is my windows system name, and then trunkates much of the remaining response. ---------------------------------------------------------------------- >Comment By: Alan Kennedy (amak) Date: 2007-06-29 12:01 Message: Logged In: YES user_id=647684 Originator: NO I see that your code for this is using socket.makefile(). We know that simultaneously reading and writing on the same socket file wrapper can cause a deadlock, cf bug 1744567 that you reported. That might explain the curtailment of the output; the server thread might be hung on the write. Does the problem still happen if you use the socket.send and socket.recv methods directly? Meantime, I will look into the hostnames issue. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112867&aid=1745073&group_id=12867 |
From: SourceForge.net <no...@so...> - 2007-06-29 14:46:37
|
Bugs item #1745073, was opened at 2007-06-28 21:29 Message generated for change (Comment added) made by rluse You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112867&aid=1745073&group_id=12867 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: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Bob Luse (rluse) Assigned to: Alan Kennedy (amak) Summary: Minor Problem with SocketServer Initial Comment: Hi, This one is a little strange and I'm not sure how serious it is, but I thought I would document it while I have recreated it. When I run the following script on Jython 2.2b2: import SocketServer import socket import string class EchoHandler(SocketServer.BaseRequestHandler): def handle(self): f = self.request.makefile() self.request.send("HTTP/1.0 200 OK\r\n") self.request.send("Content-type text/plain\r\n\r\n") self.request.send("Received connection from %s\r\n\r\n" % (self.client_address,)) while True: line = f.readline() self.request.send(line) if not string.strip(line): break f.close() import sys print sys.version print sys.platform serv = SocketServer.TCPServer(("", 9000), EchoHandler) print 'Running on port 9000' serv.serve_forever() ---------------------------------------------------- And then point my Firefox browser at http://localhost:9000 I get the following output: ------------------------------------------------- Received connection from ('sn45g', 1037) GET / HTTP/1.1 Host: localhost:9000 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4 Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Cache-Control: max-age=0 ----------------------------------------------------- but, when I run the same script on Jython 2.2RC1, I get this output in my browser: ---------------------------------------------------- Received connection from ('localhost', 4090) GET / HTTP/1.1 ------------------------------------------------------ It gives me 'localhost' instead of 'sn45g' which is my windows system name, and then trunkates much of the remaining response. ---------------------------------------------------------------------- >Comment By: Bob Luse (rluse) Date: 2007-06-29 14:46 Message: Logged In: YES user_id=1688601 Originator: YES That was it. Good spot. ---------------------------------------------------------------------- Comment By: Alan Kennedy (amak) Date: 2007-06-29 12:01 Message: Logged In: YES user_id=647684 Originator: NO I see that your code for this is using socket.makefile(). We know that simultaneously reading and writing on the same socket file wrapper can cause a deadlock, cf bug 1744567 that you reported. That might explain the curtailment of the output; the server thread might be hung on the write. Does the problem still happen if you use the socket.send and socket.recv methods directly? Meantime, I will look into the hostnames issue. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112867&aid=1745073&group_id=12867 |
From: SourceForge.net <no...@so...> - 2007-06-29 16:03:55
|
Bugs item #1745073, was opened at 2007-06-28 21:29 Message generated for change (Comment added) made by amak You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112867&aid=1745073&group_id=12867 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: None Group: None >Status: Closed >Resolution: Duplicate Priority: 5 Private: No Submitted By: Bob Luse (rluse) Assigned to: Alan Kennedy (amak) Summary: Minor Problem with SocketServer Initial Comment: Hi, This one is a little strange and I'm not sure how serious it is, but I thought I would document it while I have recreated it. When I run the following script on Jython 2.2b2: import SocketServer import socket import string class EchoHandler(SocketServer.BaseRequestHandler): def handle(self): f = self.request.makefile() self.request.send("HTTP/1.0 200 OK\r\n") self.request.send("Content-type text/plain\r\n\r\n") self.request.send("Received connection from %s\r\n\r\n" % (self.client_address,)) while True: line = f.readline() self.request.send(line) if not string.strip(line): break f.close() import sys print sys.version print sys.platform serv = SocketServer.TCPServer(("", 9000), EchoHandler) print 'Running on port 9000' serv.serve_forever() ---------------------------------------------------- And then point my Firefox browser at http://localhost:9000 I get the following output: ------------------------------------------------- Received connection from ('sn45g', 1037) GET / HTTP/1.1 Host: localhost:9000 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4 Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Cache-Control: max-age=0 ----------------------------------------------------- but, when I run the same script on Jython 2.2RC1, I get this output in my browser: ---------------------------------------------------- Received connection from ('localhost', 4090) GET / HTTP/1.1 ------------------------------------------------------ It gives me 'localhost' instead of 'sn45g' which is my windows system name, and then trunkates much of the remaining response. ---------------------------------------------------------------------- >Comment By: Alan Kennedy (amak) Date: 2007-06-29 16:03 Message: Logged In: YES user_id=647684 Originator: NO Closing this as a duplicate of #1744567. I am not going to address the naming issue for now. The name returned for the remote end of the connection depends on the network configuration of the machine, i.e. does the traffic pass through loopback (thus causing 'localhost' to be returned), or reach the IP stack, in which case the Windows networking "Computer name" will be returned. If this is not acceptable, please open a separate issue. ---------------------------------------------------------------------- Comment By: Bob Luse (rluse) Date: 2007-06-29 14:46 Message: Logged In: YES user_id=1688601 Originator: YES That was it. Good spot. ---------------------------------------------------------------------- Comment By: Alan Kennedy (amak) Date: 2007-06-29 12:01 Message: Logged In: YES user_id=647684 Originator: NO I see that your code for this is using socket.makefile(). We know that simultaneously reading and writing on the same socket file wrapper can cause a deadlock, cf bug 1744567 that you reported. That might explain the curtailment of the output; the server thread might be hung on the write. Does the problem still happen if you use the socket.send and socket.recv methods directly? Meantime, I will look into the hostnames issue. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112867&aid=1745073&group_id=12867 |
From: SourceForge.net <no...@so...> - 2007-06-29 16:53:42
|
Bugs item #1745073, was opened at 2007-06-28 21:29 Message generated for change (Comment added) made by rluse You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112867&aid=1745073&group_id=12867 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: None Group: None Status: Closed Resolution: Duplicate Priority: 5 Private: No Submitted By: Bob Luse (rluse) Assigned to: Alan Kennedy (amak) Summary: Minor Problem with SocketServer Initial Comment: Hi, This one is a little strange and I'm not sure how serious it is, but I thought I would document it while I have recreated it. When I run the following script on Jython 2.2b2: import SocketServer import socket import string class EchoHandler(SocketServer.BaseRequestHandler): def handle(self): f = self.request.makefile() self.request.send("HTTP/1.0 200 OK\r\n") self.request.send("Content-type text/plain\r\n\r\n") self.request.send("Received connection from %s\r\n\r\n" % (self.client_address,)) while True: line = f.readline() self.request.send(line) if not string.strip(line): break f.close() import sys print sys.version print sys.platform serv = SocketServer.TCPServer(("", 9000), EchoHandler) print 'Running on port 9000' serv.serve_forever() ---------------------------------------------------- And then point my Firefox browser at http://localhost:9000 I get the following output: ------------------------------------------------- Received connection from ('sn45g', 1037) GET / HTTP/1.1 Host: localhost:9000 User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4 Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Cache-Control: max-age=0 ----------------------------------------------------- but, when I run the same script on Jython 2.2RC1, I get this output in my browser: ---------------------------------------------------- Received connection from ('localhost', 4090) GET / HTTP/1.1 ------------------------------------------------------ It gives me 'localhost' instead of 'sn45g' which is my windows system name, and then trunkates much of the remaining response. ---------------------------------------------------------------------- >Comment By: Bob Luse (rluse) Date: 2007-06-29 16:52 Message: Logged In: YES user_id=1688601 Originator: YES Thats fine, I don't really have a problem with the naming. I just found it strange that it would be different when the difference was moving from 2.2b2 to 2.2RC1 and thought you may want to know about it. ---------------------------------------------------------------------- Comment By: Alan Kennedy (amak) Date: 2007-06-29 16:03 Message: Logged In: YES user_id=647684 Originator: NO Closing this as a duplicate of #1744567. I am not going to address the naming issue for now. The name returned for the remote end of the connection depends on the network configuration of the machine, i.e. does the traffic pass through loopback (thus causing 'localhost' to be returned), or reach the IP stack, in which case the Windows networking "Computer name" will be returned. If this is not acceptable, please open a separate issue. ---------------------------------------------------------------------- Comment By: Bob Luse (rluse) Date: 2007-06-29 14:46 Message: Logged In: YES user_id=1688601 Originator: YES That was it. Good spot. ---------------------------------------------------------------------- Comment By: Alan Kennedy (amak) Date: 2007-06-29 12:01 Message: Logged In: YES user_id=647684 Originator: NO I see that your code for this is using socket.makefile(). We know that simultaneously reading and writing on the same socket file wrapper can cause a deadlock, cf bug 1744567 that you reported. That might explain the curtailment of the output; the server thread might be hung on the write. Does the problem still happen if you use the socket.send and socket.recv methods directly? Meantime, I will look into the hostnames issue. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112867&aid=1745073&group_id=12867 |