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