While a configuration build is in progress, I’m unable to save logs from an individual step that has already completed. The save button only becomes available once the entire configuration has finished running.
Is this the intended design behavior?
Yes this is by design, step can run on different nodes and log will only be collected back after build is finished, for easy of processing and performance reason.
Thanks, Robin.
I understand your explanation, although I’m not fully convinced yet. When I open the log window of a completed step, the content is already available. If I want to save the full log (beyond the displayed size limit), it should be my decision whether to do so or not.
That said, on the other hand, it's not a big deal to simply wait until all steps have finished or cancel the build before saving the logs.
I forget to mention that QB will stream a small window of live log back to server, for purpose of checking the log in real time, without order ganrantee. The full content of step log will only be sent to parent step after the step finishes, and aggregated log of parent step will again sent to its own parent after finished, and so on.
I wrestled with this issue for a while, in particular when dealing with an AIX issue where the log would get lost in transmission. In my situation, you could see the log being streamed live, but once the build completed, the step logs were empty on the server. (You can probably find the conversation elsewhere here).
The server is not able to download the step log until it is saved to disk by the agent. The agent saves the entire log into a single file locally at the end of the build, and then transmits it to the server to be saved there. When you try to save a step log from the server, it reads the saved file, filtering for just the log lines related to that step. But the server has no access to that log file until the end of the build.
It was a design decision, and I think a valid one, since the network logic to allow the server to pull log entries from the memory of arbitrary agents on arbitrary platforms is a very complex problem.