ga4gh / task-execution-schemas

Apache License 2.0
81 stars 28 forks source link

Clarification on executor stdin / stdout field #103

Closed erikvdbergh closed 6 years ago

erikvdbergh commented 6 years ago

Hi, we're having some misunderstandings around the stdout / stdin fields in executors. Hopefully you can make some clarifications around these.

As they are described right now, they will produce a file inside the container. Would that file then disappear after the executor finishes? The only way to keep it would be to place it inside a volume or define it as an output, is that correct?

Also on the Funnel homepage, an example is presented with the stdout of an executor defined. However when the task is described, stdout is also present in the logs. So should stdout always be presented in the logs, even if it is already captured in a file?

Would appreciate your input. Thanks.

buchanae commented 6 years ago

The stdout (for example) of the executor process is written to the file path in the container. If that file is in a "volume", it will be shared with the next executor. If that file is an "output", it will be uploaded to storage.

The implementation is free to decide what shows up in the task logs; Funnel decides to always log the tail (up to 10Kb by default), because it is very convenient to access this content as it streams out of the task from the API and dashboard. This happens even if the stdout field is empty.

buchanae commented 6 years ago

@erikvdbergh I can't close issues to clean up the TODO list. If your question has been answered, can you close this or clarify what's needed? Please, thanks!

erikvdbergh commented 6 years ago

Yes this has been clarified in the docs now as well.