Re: could use some assistance in tracking down some current issues

Éric Piel <[email protected]>
Newsgroups gmane.comp.python.pyro
Message-ID <[email protected]>
On 19/08/13 11:14, Irmen de Jong wrote:
> Hi,
> 
> I find that I have relative difficulty in solving some current issues in Pyro4, and
> could use some assistance.  We're talking about :
> 
> #18 improve some unit tests that hang in certain cases
> #19 performance regression in connection creation
> #21 eventloop example is very slow with multiple calls
> 
> See https://github.com/irmen/Pyro4/issues?milestone=2&page=1&state=open
> 
> At the very least, I'd like to hear what the results are of running the full Pyro4 unit
> test suite on your system. Please include python version and OS used.
Hei Irmen,

I'm not entirely sure what kind of output you need. But here is the
results of running the test cases/benchmarks on my system (Ubuntu
12.04.2 32bits with python 2.7).

=================================================
Indeed it blocks in testPingMessage:

$ python ./PyroTests/test_server.py
.............................^CTraceback (most recent call last):
  File "./PyroTests/test_server.py", line 719, in <module>
    unittest.main()
  File "/usr/lib/python2.7/unittest/main.py", line 95, in __init__
    self.runTests()
  File "/usr/lib/python2.7/unittest/main.py", line 229, in runTests
    self.result = testRunner.run(self.test)
  File "/usr/lib/python2.7/unittest/runner.py", line 151, in run
    test(result)
  File "/usr/lib/python2.7/unittest/suite.py", line 70, in __call__
    return self.run(*args, **kwds)
  File "/usr/lib/python2.7/unittest/suite.py", line 108, in run
    test(result)
  File "/usr/lib/python2.7/unittest/suite.py", line 70, in __call__
    return self.run(*args, **kwds)
  File "/usr/lib/python2.7/unittest/suite.py", line 108, in run
    test(result)
  File "/usr/lib/python2.7/unittest/case.py", line 391, in __call__
    return self.run(*args, **kwds)
  File "/usr/lib/python2.7/unittest/case.py", line 327, in run
    testMethod()
  File "./PyroTests/test_server.py", line 121, in testPingMessage
    msg = Pyro4.message.Message.recv(conn, [Pyro4.message.MSG_PING])
  File
"/usr/local/lib/python2.7/dist-packages/Pyro4-4.22_dev-py2.7.egg/Pyro4/message.py",
line 172, in recv
    msg.data = connection.recv(msg.data_size)
  File
"/usr/local/lib/python2.7/dist-packages/Pyro4-4.22_dev-py2.7.egg/Pyro4/socketutil.py",
line 435, in recv
    return receiveData(self.sock, size)
  File
"/usr/local/lib/python2.7/dist-packages/Pyro4-4.22_dev-py2.7.egg/Pyro4/socketutil.py",
line 149, in receiveData
    data=sock.recv(size, socket.MSG_WAITALL)
KeyboardInterrupt


==========================================
$ python ./connections.py
Uri of benchmark server? PYRO:example.benchmark@localhost:57452
Timing raw connect speed (no method call)...
0
500
1000
1500
2000 connections in 10.381 sec = 193 conn/sec
Timing proxy creation+connect+methodcall speed...
0
500
1000
1500
2000 new proxy calls in 127.295 sec = 16 calls/sec
Timing proxy methodcall speed...
0
1000
2000
3000
4000
5000
6000
7000
8000
9000
10000 calls in 800.072 sec = 12 calls/sec
Serializer used: serpent

The server gave this error while running (but kept serving):
$ python ./server.py
Server running, uri = PYRO:example.benchmark@localhost:57452
Exception in thread Pyro-Worker-3069121292 :
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 551, in __bootstrap_inner
    self.run()
  File
"/usr/local/lib/python2.7/dist-packages/Pyro4-4.22_dev-py2.7.egg/Pyro4/tpjobqueue.py",
line 62, in run
    self.job()
  File
"/usr/local/lib/python2.7/dist-packages/Pyro4-4.22_dev-py2.7.egg/Pyro4/socketserver/threadpoolserver.py",
line 33, in __call__
    self.daemon.handleRequest(self.csock)
  File
"/usr/local/lib/python2.7/dist-packages/Pyro4-4.22_dev-py2.7.egg/Pyro4/core.py",
line 705, in handleRequest
    raise errors.ProtocolError("message used serializer that is not
accepted: %d" % msg.serializer_id)
ProtocolError: message used serializer that is not accepted: 4

=========================================
eventloop slow with multiple calls: I don't know how to test.
$ python ./eventloop/client.py
5*11=55
'x'*10=xxxxxxxxxx
press enter to do two more calls:
2*4=8
'@'*3=@@@

(That looked like less than a second, both multiplex and threaded)

===========================================
Just let me know if I can try more things. If you want I can try also to
run it on Ubuntu 13.10 64 bits.

Best,
Éric


------------------------------------------------------------------------------
Introducing Performance Central, a new site from SourceForge and 
AppDynamics. Performance Central is your source for news, insights, 
analysis and resources for efficient Application Performance Management. 
Visit us today!
http://pubads.g.doubleclick.net/gampad/clk?id=48897511&iu=/4140/ostg.clktrk
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.