middlewarehq / middleware

✨ Open-source dev productivity platform for engineering teams ✨
https://middlewarehq.com
Apache License 2.0
397 stars 33 forks source link

fix 'cannot take exclusive lock for project' error #332

Closed adnanhashmi09 closed 1 month ago

adnanhashmi09 commented 1 month ago

The CLI had an issue where it would throw error cannot take exclusive lock for project "dora-metrics": process with PID 113930 is still running. This was caused by another instance of docker-watch running or not exiting properly. So the solution was to parse the log and look for this error. Then from that extract the PID of the process and run the kill command. Now when we run the kill command we toggle the retry useState flag so that the useEffect starts again thereby starting docker-watch again.

Now the other problem was that the error was getting caught due to process.on('close'.......) which in turn resulted in the execution of the handleExit() function. To avoid this, a circular buffer was created to store the last 10 logs, and when the 'close' event is triggered we search for the specific error and if found, we simply resolve the promise.