[ 
http://opencast.jira.com/browse/MH-9225?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=32704#comment-32704
 ] 

Tobias Wunden edited comment on MH-9225 at 1/8/13 10:35 PM:
------------------------------------------------------------

I can see a race condition where there is a preprocessing workflow going on 
with the three "operations"

* scheduled
* capturing
* ingesting

Assuming that the capture agent is recording and the workflow has been 
forwarded to "capturing", the capture agent starts ingesting (and during that 
time for some reason is not updating the status). At the end of the ingest 
operation, the ingest service adds the "real" workflow steps to that 
preprocessing workflow (see IngestServiceImpl lines 743 ff) and forwards the 
workflow to the first real workflow operation by calling 
workflowinstance.next() until that operatio is reached.

Just while (or right before) the ingest service is extending its local copy of 
the workflow with the real workflow steps, the capture agent finally gets 
around to reporting the ingested status to the capture agent state service and 
the agent state service is calling resume() on the workflow instance at 
CaptureAgentStateImpl line 542. This will move the current workflow forward to 
the "capturing" step, asking the workflow service to start processing that 
operation. The operation is scheduled and eventually dispatched, returning 
Action.PAUSE as the action.
                
      was (Author: twunden):
    I can see a race condition where there is a preprocessing workflow going on 
with the three "operations"

* scheduled
* capturing
* ingesting

Assuming that the capture agent is waiting and the workflow has been 
initialized with "scheduled", the capture agent is first recording, then 
ingesting (and during that time for some reason not updating the status). At 
the end of the ingest operation, the ingest service adds the "real" workflow 
steps to that preprocessing workflow (see IngestServiceImpl lines 743 ff) and 
forwards the workflow to the first real workflow operation by calling 
workflowinstance.next() until that operatio is reached.

Just while (or right before) the ingest service is extending its local copy of 
the workflow with the real workflow steps, the capture agent finally gets 
around to reporting the ingested status to the capture agent state service and 
the agent state service is calling resume() on the workflow instance at 
CaptureAgentStateImpl line 542. This will move the current workflow forward to 
the "capturing" step, asking the workflow service to start processing that 
operation. The operation is scheduled and eventually dispatched, returning 
Action.PAUSE as the action.
                  
> Workflows automatically go into hold state after inspect but resume 
> processing correctly with a nudge from the resume workflow endpoint
> ---------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: MH-9225
>                 URL: http://opencast.jira.com/browse/MH-9225
>             Project: Matterhorn Project
>          Issue Type: Bug
>          Components: Administrative Tools
>    Affects Versions: 1.4, 1.3, 1.2
>            Reporter: Adam McKenzie
>            Assignee: Adam McKenzie
>            Priority: Critical
>


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
http://opencast.jira.com/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        
_______________________________________________
Matterhorn mailing list
Matterhorn@opencastproject.org
http://lists.opencastproject.org/mailman/listinfo/matterhorn


To unsubscribe please email
matterhorn-unsubscr...@opencastproject.org
_______________________________________________

Reply via email to