After the pipeline execution completes (whether failed or success), the logs of the service are not available and instead only the status of the service is shown, like below:
I would like to view the full logs of the service to know whether there were any warnings etc.
This generally implies that no logs were generated. I am not sure if there were regressions with earlier versions of Drone, but perhaps double check that you are running the latest stable release of the drone/drone server, and the latest stable release of the drone/drone-runner-docker runner.
I was running drone version 1.6.5 earlier, on kubernetes with the deprecated chart (which used drone controller). I have now upgraded to the official drone chart and deployed version 1.8.1 along with drone-kuber-runner version 1.0.0-beta.4.
The problem still persists. Also, to clarify: the logs are visible when the pipeline is executing, but after the execution has finished, I click on the service stage again to check logs, and then it changes to only showing the status and hides away the logs.
Not directly related to this issue, but I think it is a bug in general where the logs are not shown after the execution has completed. Take the case of cancelling a build for example: after waiting for 8 minutes I cancelled the build because it was too slow (because of low resources allocated to the pod by default). As long as the build was running, I could see the logs and how far it has progressed, but as soon as I cancelled it and tried to check the logs of either the service or the stages again, it just shows the
status: Cancelled line.
Instead, it should show the status as well as the logs!
when the step completes, the runner re-uploads the full logs to be stored in the database. So if you see the logs being streamed while the build is runner, but do not see the logs after the build is complete, it would imply the upload fails. This issue is common when there is some sort of network layer (proxy, nginx, loadbalancer, etc) that places a limit on the request size. Logs can get up to 10mb and some network topologies have 1mb request limits (for example) which would cause this failure.
Is it possible for me to know whether the log upload to DB was successful or not? I don’t see any errors in any of the services (neither drone-server, nor drone-runner). Can I access the DB directly somehow to confirm whether the logs are there and still not visible on the UI or whether they never made it to the DB.
EDIT: I already have following env vars set:
drone-secrets-plugin (although this shouldn’t have anything to do with the log visibility issue):
Advanced logging options, including ability to view request and response here:
Please note that you may encounter false positives such as context deadline or context cancellation errors, which are expected and can be ignored, due to how the system performs long polling with timeouts and retries.
I have the exact same behavior as OP. In my case, I can confirm that the logs had been updated to postgres, I checked this in browser console, postgres console and drone CLI.