[Zope] Xron problems

Loren Stafford lstafford@morphics.com
Tue, 13 Mar 2001 14:09:33 -0800


I'm guessing you are running this on Win98. True? That shouldn't be a
problem.

What the second message in the log says is that, when the Dispatcher woke up
and tried to get the next scheduled event from the Schedule (which is a
ZCatalog), it encountered a ConflictError. The third message says the
Dispatcher terminated, something it has to do in this situation; otherwise,
it would go into a loop trying to access the Schedule.

I can't see why there is a conflict error -- perhaps it has to do with the
first message in the log. It probably has nothing to do with the content of
the scheduled method, because that method wasn't executed yet. IIUC, a
conflict error occurrs when it looks to Zope that two transactions are
trying to update the same ZODB resource. This may be a transient occurrence,
or may be caused by a stalled transaction hogging the resource.

If you were running on Unix you could kill off a thread or two and see if
the other ones proceed. But I don't think you can do that on Win.

I don't think I can pinpoint your problem, but here are a few questions to
ask:

Does this situation occur only after a fresh install of Xron? ...or have you
successfully run other Xron methods?

Is this situation repeatable, even after restarting Zope?

Are there any recent transactions that you can undo to eliminate the cause
of the first message in the log?

-- HTH
-- Loren


> -----Original Message-----
> From: zope-admin@zope.org [mailto:zope-admin@zope.org]On
> Behalf Of Chris
> Muldrow
> Sent: Tuesday, March 13, 2001 11:19
> To: zope@zope.org
> Subject: [Zope] Xron problems
>
>
> I'm getting the following errors when I try to run a Xron as
> scheduled task.
> I can trigger the Xron method manually and it will work. The
> method is at
> the bottom of this message. Any ideas what is happening?
> Thanks-- Chris
>
> ------
> 2001-03-13T19:11:49 ERROR(200) ZODB Couldn't load state for
> '\000\000\000\000\000\012\220r'
> Traceback (innermost last):
>   File F:\CONNEC~1\lib\python\ZODB\Connection.py, line 490,
> in setstate
> ConflictError: êr
>
>
> ------
> 2001-03-13T19:11:49 (302) Products.Xron.Loggerr Cannot access catalog.
> Suspending operation.
> Traceback (innermost last):
>   File "F:\CONNEC~1\lib\python\Products\Xron\Dispatcher.py",
> line 123, in
> Timer
>     (atime, aurl)=Schedule.armed_event() # Get next armed event
>   File "F:\CONNEC~1\lib\python\Products\Xron\Schedule.py",
> line 215, in
> armed_event
>     for event in self._catalog.searchResults(
>   File "F:\CONNEC~1\lib\python\ZODB\Connection.py", line 490,
> in setstate
>     if invalid(oid) or invalid(None): raise ConflictError, oid
> ConflictError: êr
> Traceback (innermost last):
>   File F:\CONNEC~1\lib\python\Products\Xron\Dispatcher.py,
> line 123, in
> Timer
>   File F:\CONNEC~1\lib\python\Products\Xron\Schedule.py, line 215, in
> armed_event
>     (Object: Traversable)
>   File F:\CONNEC~1\lib\python\ZODB\Connection.py, line 490,
> in setstate
> ConflictError: êr
>
>
> ------
> 2001-03-13T19:11:49 PROBLEM(100) Products.Xron.Loggerr
> Dispatcher thread is
> terminating.
>
>
> Content-type: text/plain
>
> <dtml-try>
> <dtml-let thisyear="_.str(ZopeTime().year())"
>                  thismonth="ZopeTime().mm()"
>                  thisday="ZopeTime().dd()">
> <dtml-with Test>
>
> <dtml-in expr="objectIds('Folder')">
> <dtml-var sequence-item> is item
> </dtml-in>
> <dtml-comment>See if the folder for the year exists. If not, make
> it</dtml-comment>
> <dtml-if expr="thisyear not in objectIds('Folder')">
> Can't find <dtml-var thisyear><br>
>  <dtml-try>
> <dtml-call expr="manage_addFolder(thisyear, thisyear)">
> <dtml-except>
> Can't add year
> </dtml-try>
> <dtml-else>
> Year exists
> </dtml-if>
>
> <dtml-with expr="_.getitem(thisyear)">
> <dtml-if expr="thismonth+thisyear not in objectIds('Folder')">
> Can't find <dtml-var "thismonth+thisyear"><br>
>  <dtml-try>
> <dtml-call expr="manage_addFolder(thismonth+thisyear,
> thismonth+thisyear)">
> <dtml-except>
> Can't add monthyear
> </dtml-try>
> <dtml-else>
> Month exists
> </dtml-if>
>
> <dtml-with expr="_.getitem(thismonth+thisyear)">
> <dtml-if expr="thismonth+thisday+thisyear not in objectIds('Folder')">
> Can't find <dtml-var "thismonth+thisday+thisyear"><br>
>  <dtml-try>
> <dtml-call expr="manage_addFolder(thismonth+thisday+thisyear,
> thismonth+thisday+thisyear)">
> <dtml-except>
> Can't add monthdayyear
> </dtml-try>
> <dtml-else>
> Day exists
> </dtml-if>
>
>
>
> </dtml-with>
>
> </dtml-with>
>
>
> </dtml-with>
>
> </dtml-let>
> <dtml-except>
> Can't add folder
> </dtml-try>
>
>
> _______________________________________________
> 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 )
>