I’m not a JS developer so I’m stumbling around in the dark a bit here. There seem to be two issues here however, one with the UI being unable to handle invalid time values, the other with Drone inserting invalid time values into the DB for proc start times.
With the :latest
version we’ve seen a UI issue (only once so far, but we’ve not run a huge number of builds so far) the root cause seems to be that a proc
has had its proc_started
set to 0, resulting in a JS error with the UI, causing it to become unresponsive.
Console error:
Uncaught (in promise) RangeError: Invalid time value
at Date.toISOString (<anonymous>)
at formatTime (bundle.db478d21eaff85695bb2.js:8945)
From what I can understand it seems like this is an error in an upstream UI dependency not handling invalid time values well however I’ve not been able to track down which one yet.
The issue can be worked around by updating the erroneous epoch to a valid value in the DB.
Steps to reproduce UI Error:
- Update proc_started value in DB to 0 or other invalid epoch value
- Navigate to the relevant proc’s logs in the UI or the relevant job
Steps that have reproduced the issue with 0 value being inserted into the DB as the proc_start
time:
- Create a pipeline with a build step followed by 2 Docker (our custom ECR implementation) plugin publish steps
- First publish successfully completes, second also seems to complete however the UI freezes and the proc start time is never updated