try: while (not fdone): print "|", sys.stdout.flush() # This causes the system to _CRASH_ # Evil result - it gets to 130Meg and then spills out somehow #x=self.request.recv(size-len(data)) # Limit to 32K to see if this does the same thing x=self.request.recv(32767); print "/", sys.stdout.flush() count+=len(x) print "-", sys.stdout.flush() fo.write(x) print "\\", sys.stdout.flush() print "Have",len(x) sys.stdout.flush() print ".", sys.stdout.flush() if (count==size or x==""): print "Read Blank - done\n",count,size sys.stdout.flush() fdone=1 break; print "S", sys.stdout.flush() (iready,oready,eready)=select.select(ilist,[],[],20) print "D", sys.stdout.flush() if (len(iready)==0): fdone=1 self.gsa.log.msg("Socket not ready, done\n") break; print "F", except: print "X", sys.stdout.flush() self.message.msg("0") self.gsa.log.msg("Exception caught whilst reading\n")