Hi Alex,

I applied the couple of patches that you sent (including the extra class), and everything seemed to be working fine, but now I appear to be getting the same error again, though only sporadically.

I've packaged up a war file at
http://www.sims.berkeley.edu/~calvins/oxf/. The problem this time is
that after logging in and initiating a session, I am trying to go to
/popDB, which is a utility pipeline that tries to populate the database
and register files with our workflow module. The pipeline consists of
fifty sets of  database-layer processing step followed by a workflow
processing step such as you saw before.

The problem is that at some point during the 50 sets of calls (at which point it fails varies each time), one of the url-generator calls seems to be picking up an outdated version of the file it is reading -- the debugs show that the url-serializer was already called and the update should have been written to disk.

It fails on a different numbered document every time, but usually doesn't make it through 20 before there is a failure.

If you run the app and look at the debugs in chainsaw, you should see
what is going on. See in particular the following debugs, for example:

executeWorkflowRequest#input:updatedLog:

<WorkflowLog lastUpdated="2003-08-13T16:15:23-07:00">
<Document addDate="2003-08-13T16:15:07-07:00" docID="134" ruleFilePath="oxf:/app/data/timesheetFSM.xml" stateID="2" lastUpdated="2003-08-13T16:15:08-07:00"/>
<Document addDate="2003-08-13T16:15:09-07:00" docID="135" ruleFilePath="oxf:/app/data/timesheetFSM.xml" stateID="2" lastUpdated="2003-08-13T16:15:10-07:00"/>
<Document addDate="2003-08-13T16:15:11-07:00" docID="136" ruleFilePath="oxf:/app/data/timesheetFSM.xml" stateID="2" lastUpdated="2003-08-13T16:15:12-07:00"/>
<Document addDate="2003-08-13T16:15:14-07:00" docID="137" ruleFilePath="oxf:/app/data/timesheetFSM.xml" stateID="2" lastUpdated="2003-08-13T16:15:15-07:00"/>
<Document stateID="1" ruleFilePath="oxf:/app/data/timesheetFSM.xml" docID="138" addDate="2003-08-13T16:15:16-07:00"/>
<Document addDate="2003-08-13T16:15:17-07:00" docID="139" ruleFilePath="oxf:/app/data/timesheetFSM.xml" stateID="2" lastUpdated="2003-08-13T16:15:18-07:00"/>
<Document stateID="1" ruleFilePath="oxf:/app/data/timesheetFSM.xml" docID="140" addDate="2003-08-13T16:15:19-07:00"/>
<Document addDate="2003-08-13T16:15:20-07:00" docID="141" ruleFilePath="oxf:/app/data/timesheetFSM.xml" stateID="2" lastUpdated="2003-08-13T16:15:21-07:00"/>
<Document addDate="2003-08-13T16:15:22-07:00" docID="142" ruleFilePath="oxf:/app/data/timesheetFSM.xml" stateID="2" lastUpdated="2003-08-13T16:15:22-07:00"/>
<Document stateID="1" ruleFilePath="oxf:/app/data/timesheetFSM.xml" docID="143" addDate="2003-08-13T16:15:23-07:00"/>
</WorkflowLog>


which shows that document containing a Document element with id '143' was written to disk using the url-serializer (this is the data input to the serializer), and then later, the url-generator reads the same file (using the same config file) as the following:

executeWorkflowRequest#url-generator:output:logFile:

<WorkflowLog lastUpdated="2003-08-13T16:15:22-07:00">
<Document addDate="2003-08-13T16:15:07-07:00" docID="134" ruleFilePath="oxf:/app/data/timesheetFSM.xml" stateID="2" lastUpdated="2003-08-13T16:15:08-07:00"/>
<Document addDate="2003-08-13T16:15:09-07:00" docID="135" ruleFilePath="oxf:/app/data/timesheetFSM.xml" stateID="2" lastUpdated="2003-08-13T16:15:10-07:00"/>
<Document addDate="2003-08-13T16:15:11-07:00" docID="136" ruleFilePath="oxf:/app/data/timesheetFSM.xml" stateID="2" lastUpdated="2003-08-13T16:15:12-07:00"/>
<Document addDate="2003-08-13T16:15:14-07:00" docID="137" ruleFilePath="oxf:/app/data/timesheetFSM.xml" stateID="2" lastUpdated="2003-08-13T16:15:15-07:00"/>
<Document stateID="1" ruleFilePath="oxf:/app/data/timesheetFSM.xml" docID="138" addDate="2003-08-13T16:15:16-07:00"/>
<Document addDate="2003-08-13T16:15:17-07:00" docID="139" ruleFilePath="oxf:/app/data/timesheetFSM.xml" stateID="2" lastUpdated="2003-08-13T16:15:18-07:00"/>
<Document stateID="1" ruleFilePath="oxf:/app/data/timesheetFSM.xml" docID="140" addDate="2003-08-13T16:15:19-07:00"/>
<Document addDate="2003-08-13T16:15:20-07:00" docID="141" ruleFilePath="oxf:/app/data/timesheetFSM.xml" stateID="2" lastUpdated="2003-08-13T16:15:21-07:00"/>
<Document addDate="2003-08-13T16:15:22-07:00" docID="142" ruleFilePath="oxf:/app/data/timesheetFSM.xml" stateID="2" lastUpdated="2003-08-13T16:15:22-07:00"/>
</WorkflowLog>


that is, it somehow gets the old version from before the Document with id 143 was added and the file was written (note the older modified date). These generator and serializer use the same configuration, so this seems to be a bug.

thanks for your help,

calvin



Alessandro Vernet wrote:
Calvin, please apply the patch in the attached zip file and let me know if it helps.

This fixes two issues: (1) since data is streamed in pipelines, you could end up in cases where OXF starts to write the file before it is completely read, and (2) the internal cache is not invalidated when the file is written and in a read/write/read the last read returns obsolete data (I think that this is the problem you're experimenting).

Alex



_______________________________________________
oxf-users mailing list
[EMAIL PROTECTED]
http://mail.orbeon.com/mailman/listinfo/oxf-users

Reply via email to