[Zope] error with simple python script loop

Jonathan dev101 at magma.ca
Fri Nov 24 08:38:53 EST 2006


----- Original Message ----- 
From: "Christian Steinhauer" <steinhauer at know-it.net>
To: "Jonathan" <dev101 at magma.ca>; <zope at zope.org>
Sent: Friday, November 24, 2006 8:19 AM
Subject: Re: [Zope] error with simple python script loop


>>>I just cut and pasted your code into a python script on my
>>>Zope installation
>>>(2.9.2) and it worked as expected (ie. 2 emails sent). So
>>>something is
>>>pooched in your installation.
>>>
>>>A quick way to check to see if your script is looping more
>>>than you expect
>>>is to do something like:
>>>
>>>loopCheck = []
>>>for i in range(2):
>>>  subj = str(i) + ' range python'
>>>  context.MailHost.send('range test with python', "rec at mail.com",
>>>"sender at mail.com", subj)
>>>  loopCheck.append(subj)
>>>return loopCheck
>>>
>>>If you are getting only 2 iterations of the loop (as it
>>>should be), then
>>>something is wrong with your MailHost (if this is the case
>>>try deleting it
>>>and re-adding it).  Another test: place a local copy of
>>>MailHost in the same
>>>folder as your script and see what happens.
>
> Hi Jonathan, thanks for taking care of the problem. I have done the self 
> test you do with the list. But everytime when something is written at last 
> line, example return 'eof' (My example in the topic) the error did not 
> occured - so the list gives me 2 and i will get 2 emails.
>
> The error only occured when nothing is written under the loop.
>
> I have 2 real separeted dedicated servers, one with zope 2.6.4 and one 
> with 2.10 - the problem occured on both servers.
> So i used the zope product "MailDropHost" too and get the self error on 
> both server. With MailDropHost i can see a spooler - thats nice - but in 
> the spooler i see 4 emails. So the Operating System or Exim get 4 Mails 
> from Zope/Python.
> I´m using Debian Linux.

I tried to reproduce your '4 iteration' problem on my Zope 2.9.2 
installation, but even by removing the 'return' statement I still got 2 loop 
iterations (and 2 emails).

I have never written a python script that did not have a 'return' statement. 
I don't know if it is mandatory or not. I usually use python scripts as 
subroutines/functions and I always have a return statement  (even if it is a 
bare return - ie. the return statement does not send back any data).

As Andreas suggested, if you want to track this down you are going to have 
to use a debugger like pdb.

Jonathan





More information about the Zope mailing list