Ok, I've got a "fails reliably once every few (>15) request" still held over from the last person I sent it to - it *still* fails on Zope 2.3.1, I've got a zexp and the full instructions: Ok, the zexp should be accessible from: http://blacklotus.cc.ic.ac.uk/~pjm3/bug.zexp You'll need Psycopg installed and a Postgresql server. I used psycopg-0.4.6.tar.gz, available from: http://blacklotus.cc.ic.ac.uk/~pjm3/psycopg-0.4.6.tar.gz (note - same results with 0.5.1) If you can't get a Postgresql server, let me know and you can point it at mine (I'll need to know the subnet(s) you'll be coming from). The following should create everything needed to repro the bug: CREATE TABLE machine ( machineid text, owner text NOT NULL, ownerdept text NOT NULL, owneremail text NOT NULL, ownertel text, machinetype text, machineos text, machineserialno text, location text NOT NULL, comment text, updatedby text, updatedat timestamp, PRIMARY KEY (machineid) ); insert into machine (machineid, owner, ownerdept, owneremail, ownertel, machinetype, machineos, machineserialno, location, comment, updatedby, updatedat) values ('wildfire.net.ic.ac.uk', 'Phil Mayers', '410 Mech Eng', 'p.mayers@ic.ac.uk', '46973', 'PC NT / Linux', '410 Mech Eng', 'batch', now()) Import the ZEXP, then try getting: http://zope.server:port/showmachine_html Very quickly, possibly using the script I posted yesterday: http://blacklotus.cc.ic.ac.uk/~pjm3/floodget.py Usage: floodget.py server:port /url/file?argument1=value1 username password number_of_threads So: floodget.py server.com:8080 /showmachine_html username pass 100 I use either 100 or 1000 threads. All should be well. Now try: http://zope.server:port/showmachine_html?machineid=wildfire.net.ic.ac.uk I get failures and the child threads dying quickly with only 5-25 threads. Regards, Phil +----------------------------------+ | Phil Mayers, Network Support | | Centre for Computing Services | | Imperial College | +----------------------------------+ -----Original Message----- From: Chris McDonough [mailto:chrism@digicool.com] Sent: 05 April 2001 18:06 To: Chris McDonough; Thomas B. Passin; zope@zope.org Subject: Re: [Zope] ZServer *still* dying - help? Wait, no I *didnt* write a unit test for this. Sorry! I wrote a unit test that sends lots of named parameters to a python script, not a dtml method... If you can boil this down to an always-fails case we can fix it. ----- Original Message ----- From: "Chris McDonough" <chrism@digicool.com> To: "Thomas B. Passin" <tpassin@mitretek.org>; <zope@zope.org> Sent: Thursday, April 05, 2001 12:56 PM Subject: Re: [Zope] ZServer *still* dying - help?
It still shouldn't be crashing.
I wrote a unit test for this!! (testParam26 in the test suite) ;-) Wonder if it passes... it does. Darn.
What Zope version is this?
----- Original Message ----- From: "Thomas B. Passin" <tpassin@mitretek.org> To: <zope@zope.org> Sent: Thursday, April 05, 2001 12:49 PM Subject: Re: [Zope] ZServer *still* dying - help?
I don't know what's happening, but what about attaching the params to the REQUEST, then you don't have to send them separately. Of course, you'd have to rewrite show_html a bit, but it shouldn't take much doing.
Then you would write things like ... <dtml-call "REQUEST.set('param1',m.param1)"> ... print container.machine.show_html(context,REQUEST)
Or make the separate params into a single python list and pass the list:
params=[m.param1,m.param2,...] print container.machine.show_html(context,REQUEST,params)
Cheers,
Tom P
Mayers, Philip J asked -
What's happening - I have a PythonScript that does this:
m = container.machine.SQL_get(machineid=machineid)[0] print container.machine.show_html(context,REQUEST, param1=m.param1, param2=m.param2, param3=m.param3, param4=m.param4, param5=m.param5, param6=m.param6, param7=m.param7, param8=m.param8, param9=m.param9, param0=m.param0) return printed
show_html is a DTML document. When called at "high" speed (2-3 times a second) by URL traversal (i.e. GETing http://site.name/Zope/path/pythonscript?machineid=whatever) this
causes
either (in order of likelihood): ...
*But*, if I reduce the number of named parameters to the DTML method (when of course it doesn't render properly) then everything's OK. The current code dies if there are >8 named parameters. But it seems to vary. I thought that the parameters had to be records from an SQL query, but now I'm not so sure.
_______________________________________________ Zope maillist - Zope@zope.org http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )
_______________________________________________ Zope maillist - Zope@zope.org http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )
_______________________________________________ Zope maillist - Zope@zope.org http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )