[Zope3-dev] Re: [Zopeorg-webmaster] Zope3 Glossary edit permission

2005-12-15 Thread Chris Withers

Hi Andreas,

Andreas Elvers wrote:
I'd like to help out with the Zope3 glossary. Especially terms like  
Service should be moved to depricated terms. And there are others  
missing or the descriptions are simply too short. Since my native  
language is German it would be probably a good idea to review my  
entries :-)


Anyway my id is itsafire.


Thanks for the offer!

The good people on zope3-dev may be able to help...

Chris

--
Simplistix - Content Management, Zope  Python Consulting
   - http://www.simplistix.co.uk

___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



[Zope3-dev] Re: File is not Contained

2005-12-15 Thread Philipp von Weitershausen
Thomas Lotze wrote:
 after having posted this to what I guess is the wrong list (all hail gmane
 group names...) and having received no answer, I'll repost it here:
 
 I noticed that zope.app.file.File does not inherit from
 zope.app.container.contained.Contained. This does not stop a file from,
 e.g., getting added to a folder (and the File type does appear in the
 ZMI add menu). It does, however, stop you from getting at the File's
 parent. Currently, File cannot be used as a proper content type, though it
 looks like it is supposed to be one.
 
 IMO File should inherit from Contained; am I wrong for some reason, or is
 this an issue that should be fixed? If the latter, I'd look into it.

Zope 3 doesn't require certain mix-in classes like Zope 2 does, so if
anything is needed at all here, it's definitely NOT a mix-in class.

Now, Zope 3 tries very hard not to impose anything on objects. That even
includes objects living inside an object hierarchy. For the containment
framework that means that objects can *choose* to provide IContained
themselves. In this case the containment framework puts a __parent__ and
__name__ on the object itself. If an object doesn't provide IContained
(and that's totally acceptable), the containment framework puts a
picklable containment proxy around it and stores that.

So, in short, even though File doesn't provide IContained, you can still
get a File's parent *if* that File object has been put in a folder and
you got it via the folder.

I explain this in more detail in my book, page 237f. I know you have a
copy :).

Philipp
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



[Zope3-dev] Issue 516: IPrincipal.id should be BytesLine (or ASCIILine)

2005-12-15 Thread Philipp von Weitershausen
Please see http://www.zope.org/Collectors/Zope3-dev/516. Looking for
comments.

Thanks,
Philipp

___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] Certification: Support platforms different from Linux?

2005-12-15 Thread Julien Anguenot
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Christian Theune wrote:
 Hi,
 
 although Zope runs on platforms different than Linux, we'll have a hard
 time to certify it on multiple platforms. Usually a very specific system
 configuration is given, like Windows 2003 with Service Pack XY and
 Hotfixes A, B and C.
 
 I think we can get around that by making a small amount of assumptions
 on the Linux kernel (e.g. large file support, memory, newer than 2.X.Y)
 and don't go into distribution details. Additionally I'll describe the
 source installation as the certified way of installing Zope, so we won't
 be depending on any kind of package machinery.
 
 So my question is: Does anybody think it will be a problem for Zope
 beeing CC certified only on Linux?
 

Not for us at Nuxeo :) We never delivered an application that is not
running on a Linux box to a customer.

J.

- --
Julien Anguenot | Nuxeo RD (Paris, France)
CPS Platform : http://www.cps-project.org
Zope3 / ECM   : http://www.z3lab.org
mail: anguenot at nuxeo.com; tel: +33 (0) 6 72 57 57 66
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.1 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFDoXT6GhoG8MxZ/pIRAvghAJ9zrIqNn7BGeR0Kfil/ACF09p81/QCcDesD
+SpUp/5gYIwG/rhW6TuaRao=
=uctk
-END PGP SIGNATURE-
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



[Zope3-dev] buildbot failure in Zope3 trunk 2.4 Linux zc-buildbot

2005-12-15 Thread buildbot
The Buildbot has detected a failed build of Zope3 trunk 2.4 Linux zc-buildbot.

Buildbot URL: http://buildbot.zope.org/

Build Reason: changes
Build Source Stamp: 2236
Blamelist: ctheune,yuppie

BUILD FAILED: failed test

sincerely,
 -The Buildbot

___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] buildbot failure in Zope3 trunk 2.4 Linux zc-buildbot

2005-12-15 Thread Benji York

[EMAIL PROTECTED] wrote:

The Buildbot has detected a failed build of Zope3 trunk 2.4 Linux zc-buildbot.


This was the ever-popular...


Error in test testRunIgnoresParentSignals (zdaemon.tests.testzdrun.ZDaemonTests)
Traceback (most recent call last):
  File /usr/lib/python2.4/unittest.py, line 270, in run
self.tearDown()
  File 
/home/buildbot/slave-zope.org/zc-buildbot--Linux--Zope3---trunk--2.4/build/src/zdaemon/tests/testzdrun.py,
 line 76, in tearDown
self.assertEqual(self.expect, output)
  File /usr/lib/python2.4/unittest.py, line 333, in failUnlessEqual
raise self.failureException, \
AssertionError: '' != '\n\nError in test testRunIgnoresParentSignals (zdaemon.tests.testzdrun.ZDaemonTests)\nTraceback 
(most recent call last):\n  File /usr/lib/python2.4/unittest.py, line 260, in run\ntestMethod()\n  File 
/home/buildbot/slave-zope.org/zc-buildbot--Linux--Zope3---trunk--2.4/build/src/zdaemon/tests/testzdrun.py, 
line 251, in testRunIgnoresParentSignals\nshutil.rmtree(tmp)\n  File /usr/lib/python2.4/shutil.py, line 
164, in rmtree\nonerror(os.remove, fullname, sys.exc_info())\n  File /usr/lib/python2.4/shutil.py, line 
162, in rmtree\nos.remove(fullname)\nOSError: [Errno 2] No such file or directory: \'/tmp/tmp-7nmMV/testsock\'\n\n'


I've restarted a test run on that machine to see if it fails consistently.
--
Benji York
Senior Software Engineer
Zope Corporation
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] buildbot failure in Zope3 trunk 2.4 Linux zc-buildbot

2005-12-15 Thread Tim Peters
[EMAIL PROTECTED]
 The Buildbot has detected a failed build of Zope3 trunk 2.4 Linux
zc-buildbot.

[Benji York]
 This was the ever-popular...

 Error in test testRunIgnoresParentSignals
(zdaemon.tests.testzdrun.ZDaemonTests)
 Traceback (most recent call last):
   File /usr/lib/python2.4/unittest.py, line 270, in run
 self.tearDown()
   File 
 /home/buildbot/slave-zope.org/zc-buildbot--Linux--Zope3---trunk--2.4/build/src/zdaemon/tests/testzdrun.py,
line 76, in tearDown
 self.assertEqual(self.expect, output)
 [...]
 AssertionError: '' != '\n\nError in test testRunIgnoresParentSignals
 [...]
 File /usr/lib/python2.4/shutil.py, line 162, in rmtree
 os.remove(fullname)\nOSError: [Errno 2] No such file or
directory: '/tmp/tmp-7nmMV/testsock'

Failure in testRunIgnoresParentSignals has been depressingly popular,
but I don't think I've ever seen that _specific_ failure mode before. 
The one that was reportedly endlessly over recent months, and which
Jim fixed, ended with this instead:

AssertionError: spawned process failed to start in a minute

 I've restarted a test run on that machine to see if it fails consistently.

And it doesn't.  I think the new version of this test may be hiding
the real problem, though:  the shutil.rmtree() call is in a top-level
`finally` clause, so if any exception is raised in the body of the
test, then _before_ that exception is reported we get into the
`finally` clause. Then if shutil.rmtree() raises an exception (as it
did in the failing buildbot run), the original exception is lost.

Hmm.  Looks like that includes the case where the new test is trying
to report the old symptom:

self.assert_(is_started,
 spawned process failed to start in a minute)

But I don't think that's what happened in this specific failure: 
os.rmtree(tmp) died with

 No such file or directory: '/tmp/tmp-7nmMV/testsock'

but os.rmtree() wouldn't have _tried_ to delete 'testsock' to begin
with unless os.listdir(tmp)  said 'testsock' was in the temp
directory.  The sanest conclusion I can draw is that some other
process (zdrun?) unlinked 'testsock' between the time os.rmtree() did
its os.listdir() and the time os.rmtree()  tried to unlink 'testsock'
itself.

If so, that's a new race condition in the new version of the test (the
old version of the test didn't try to unlink 'testsock' -- I guess it
left that to zdrun), and can trigger even if the body of the test
passes.
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



[Zope3-dev] Bug Day tomorrow

2005-12-15 Thread Stephan Richter
Hi everyone,

in preparation for beta 2 or RC 1 next week, we are going to have a bug day 
tomorrow. Please join to help make this release stable!

Regards,
Stephan
-- 
Stephan Richter
CBU Physics  Chemistry (B.S.) / Tufts Physics (Ph.D. student)
Web2k - Web Software Design, Development and Training
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] Re: rdb: Disappearing Connection

2005-12-15 Thread Dieter Maurer
Jim Washington wrote at 2005-12-13 21:40 -0500:
 ...
Now, looking closer at the code, a ping like this might be not too bad, 
because isConnected() is only called when a connection is requested, not 
for every SQL statement executed.  So, it might not be so onerous as 
originally thought. Still not ideal, though.

Be careful what you do when you find that isConnected() returns false.
Note, that, in general, it would be a bug to just reopen a new connection
in this case: previous operations against the connection might have
been lost without notice when you simply reopen a new connection
and do as if nothing bad had happened.
Instead, you should reopen the connection and then raise an exception
similar to ZODB.POSException.ConflictError. Hopefully, the publisher
will handle this kind of exception correctly (by retrying the complete
request).

-- 
Dieter
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] buildbot failure in Zope3 trunk 2.4 Linux zc-buildbot

2005-12-15 Thread Tim Peters
[Tim Peters, on the testRunIgnoresParentSignals failure]
 ...
 The sanest conclusion I can draw is that some other process (zdrun?)
 unlinked 'testsock' between the time os.rmtree() did its os.listdir() and the
 time os.rmtree()  tried to unlink 'testsock' itself.

 If so, that's a new race condition in the new version of the test (the
 old version of the test didn't try to unlink 'testsock' -- I guess it
 left that to zdrun), and can trigger even if the body of the test
 passes.

That's definitely the problem here, and is easy to reproduce by
inserting a short time.sleep() inside os.rmtree():  zdrun.py and the
test code are racing to delete 'testsock'.  If the test code wins the
race, no problem is visible, because zdrun suppresses the os.error it
gets when it tries to delete 'testsock' itself.  But if zdrun manages
to delete it in the middle of the test code's call to rmtree(), we
get the bogus test death the buildbot experienced.  That's unlikely,
but is bound to happen from time to time.

I'll try to fix it later today if I can make time, and nobody else
does first ...
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



[Zope3-dev] Re: rdb: Disappearing Connection

2005-12-15 Thread jürgen Kartnaller
Dieter Maurer wrote:
 Jim Washington wrote at 2005-12-13 21:40 -0500:
 
...
Now, looking closer at the code, a ping like this might be not too bad, 
because isConnected() is only called when a connection is requested, not 
for every SQL statement executed.  So, it might not be so onerous as 
originally thought. Still not ideal, though.
 
 
 Be careful what you do when you find that isConnected() returns false.
 Note, that, in general, it would be a bug to just reopen a new connection
 in this case: previous operations against the connection might have
 been lost without notice when you simply reopen a new connection
 and do as if nothing bad had happened.
 Instead, you should reopen the connection and then raise an exception
 similar to ZODB.POSException.ConflictError. Hopefully, the publisher
 will handle this kind of exception correctly (by retrying the complete
 request).
 

MySQL::Ping will automatically reopen a closed connection in a way where
the existing connection object can still be used.
If MySQL::Ping fails something really bad is going on.

To reduce the number of ping's in my application I used a timer which
was tested before every call to a database function.
If the timer expired I did a ping to ensure mysql is reconnected.


This is the code sqlobject is using :

while (1):
try:
   return cursor.execute(query)
except MySQLdb.OperationalError, e:
   if e.args[0] == 2013: # SERVER_LOST error
   if self.debug:
   self.printDebug(conn, str(e), 'ERROR')
   else:
  raise

So, checking for SERVER_LOST and then eventually using MySQL::Ping would
do the trick.


Jürgen

-- 

---
Jürgen Kartnaller   mailto:juergen_at_kartnaller.at
http://www.kartnaller.at
http://www.mcb-bregenz.at
---

___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Re: [Zope3-dev] Re: rdb: Disappearing Connection

2005-12-15 Thread Velko Ivanov



jürgen Kartnaller wrote:


MySQL::Ping will automatically reopen a closed connection in a way where
the existing connection object can still be used.
If MySQL::Ping fails something really bad is going on.

To reduce the number of ping's in my application I used a timer which
was tested before every call to a database function.
If the timer expired I did a ping to ensure mysql is reconnected.


This is the code sqlobject is using :

while (1):
try:
   return cursor.execute(query)
except MySQLdb.OperationalError, e:
   if e.args[0] == 2013: # SERVER_LOST error
   if self.debug:
   self.printDebug(conn, str(e), 'ERROR')
   else:
  raise

So, checking for SERVER_LOST and then eventually using MySQL::Ping would
do the trick.


Jürgen




Sorry if that is mentioned somewhere, I missed the begining of the 
thread, but I just want to add, that MySQL is not the only SQL server in 
use. And this particular problem is not MySQL specific - I'm having 
troubles with disappearing connections with PostgreSQL, which doesn't 
have MySQL::Ping. The patch, that was proposed already - use a SELECT 
statement to ensure the connection is available - is not the best 
solution at least in my case, because my code never dares to store, or 
reuse a connection, knowing that connections are being managed by Zope 
(with a volatile attribute) and this turns into one getConnection() call 
per request.
I was thinking about handling exceptions, because it does generate 
exception at the end and I know I need to reconnect when I see it in the 
log (restart the server actually, because I authenticate trough the SQL 
database).
I do hope however that I will be able to configure the SQL server in a 
way to prevent the connection from dissappearing at all, when the time 
comes to solve this problem.



Regards
Velko Ivanov
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



[Zope3-dev] getCacheStream?

2005-12-15 Thread Jim Fulton


HTTP request body streams have a new method in their implementation
named getCacheStream. I don't see any documentation for this method
and I don't like the API it implies. I'm also not at all happy with
the implementation. Is anyone using this method?  It's not used in
the Zope sources.

This method should be considered an unsupported non-feature that is
likely to go away in the future.

If people feel that they need this, I'd like to see use cases
and a proposal.

Jim

--
Jim Fulton   mailto:[EMAIL PROTECTED]   Python Powered!
CTO  (540) 361-1714http://www.python.org
Zope Corporation http://www.zope.com   http://www.zope.org
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



Twisted issues (Re: [Zope3-dev] Re: Twisted Publisher and Zope 2)

2005-12-15 Thread Jim Fulton

Jim Fulton wrote:

Tres Seaver wrote:

...

Ob. note:  the performance characteristics of such servers (including
twisted) are not well understood in the context of Zope, until some
brave soul actually rolls out a high-volume production site and reports
success or failure.



Good point!  It would be good to investigate this issue further.


I did some investigation and found the thread-management strategy
currently provided to be unsatisfactory.  I've posted a note to
the Twisted list.  I don't know if this can be fixed before the
next Zope 3.2 beta this weekend.

I think I'm going to look into adding an option to makezopeinstance
to select which server is used.  I haven't decided yet which one will
be the default.  I'm leaning toward making twisted the default to
try to increase the amount of testing it gets, but recommend that
people use ZServer for now in production sites.

Thoughts?

Jim

--
Jim Fulton   mailto:[EMAIL PROTECTED]   Python Powered!
CTO  (540) 361-1714http://www.python.org
Zope Corporation http://www.zope.com   http://www.zope.org
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com



[Zope3-dev] Re: Twisted issues (Re: Re: Twisted Publisher and Zope 2)

2005-12-15 Thread Tres Seaver
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Jim Fulton wrote:
 Jim Fulton wrote:
 
 Tres Seaver wrote:
 
 ...
 
 Ob. note:  the performance characteristics of such servers (including
 twisted) are not well understood in the context of Zope, until some
 brave soul actually rolls out a high-volume production site and reports
 success or failure.



 Good point!  It would be good to investigate this issue further.
 
 
 I did some investigation and found the thread-management strategy
 currently provided to be unsatisfactory.

Given the twisted team's general attitude toward threaded programming, I
don't find that terribly surprising.  Kind of like what you get when you
elect government officials whose sincere program and belief is that
government can't work. ;)

  I've posted a note to
 the Twisted list.  I don't know if this can be fixed before the
 next Zope 3.2 beta this weekend.
 
 I think I'm going to look into adding an option to makezopeinstance
 to select which server is used.  I haven't decided yet which one will
 be the default.  I'm leaning toward making twisted the default to
 try to increase the amount of testing it gets, but recommend that
 people use ZServer for now in production sites.

- -0.  I would restate my belief that the twisted integration is
yet-to-be-proved in production use, and needs some care-and-feeding
from people whose pagers go off (or the equivalent) if it breaks.  I can
live with the default being twisted, but it is a bit like leaving
'debug-mode on' in the default config file for now.


Tres.
- --
===
Tres Seaver  +1 202-558-7113  [EMAIL PROTECTED]
Palladion Software   Excellence by Designhttp://palladion.com
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.1 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFDoewB+gerLs4ltQ4RAuXaAKDPXKDmAMgQpOAKWDJ+zF2rGov4DQCfboYX
sByBXXJYqeJKFcgVgSYKvL4=
=z7XT
-END PGP SIGNATURE-
___
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com