Dieter, Thank you for your response.
It is *very* unlikely that this error has anything to do with concurrent access...
It is almost unbelievable that the problem disappears for the same request...
However, repeatable experimentation does seem to demonstrate this to be the case. If I run a script repeating the same request every few seconds, and saving the results, I get an error when (and only when) I post data from another computer. The post works successfully, but the indicated error is a result of the request just after the time of the post. All requests before and after that time return successfully.
I see only one (potential) explanation:
* Python 2.1's "getattr" catches all exceptions (when called with an optional default argument) (while it should only catch "AttributeError"). This may transform "ConflictError" to "missing docstring".
In this case, the affected object would define its docstring itself. This is very rare: usually, the docstring is defined by the class and not the object...
I do not understand this. I am not using "getattr" in my code. Do you mean that Zserver is using getattr to check for a docstring, and is catching a "conflictError" and then throwing a "missing docstring"? If so, would you have any idea where in the Zope code this might be happening? How can an object define its own docstring separately from its class definition? I suppose that there may be some way to set this at run time, but I certainly have not written any code to do so. How does this relate to the "getattr" issue? -- Sean