Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Expose the real mysqld exit code to process-compose, so it can report any errors. Fixes #2518 #2519

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

jefft
Copy link

@jefft jefft commented Feb 17, 2025

Summary

The old code used shell '&' to background mysqld, then captured its pid with MYSQL_PID=$!, in doing so obscuring the mysqld exit code.

I can't see any sane way of both propagating the exit code and setting MYSQL_PID. I also can't see any point in MYSQL_PID, given that process-compose is a TUI and the pid is readily available in $MYSQL_PID_FILE. So to fix the bug, I've made mysqld no longer backgrounded (hence is_daemon becomes 'false').

How was it tested?

Testing is as in the description of #2518: set up mysqld to fail (e.g. claim port 3306) and devbox services up.

The mysqld process ought to go into a failure loop, toggling between status 'Restarting' and 'Running' and setting exit code 1.

(It's not related to this patch, but I suggest also limiting these infinite restarts by setting max_restarts, e.g.:

    availability:
      restart: "always"
      max_restarts: 5

)

… any errors. As a side-effect, removes $MYSQL_PID. Fixes jetify-com#2518.

The old code used shell '&' to background mysqld, then captured its pid
with MYSQL_PID=$!, in doing so obscuring the mysqld exit code.

I can't see any sane way of both propagating the exit code *and* setting
MYSQL_PID. I also can't see any point in MYSQL_PID, given that
process-compose is a TUI and the pid is readily available in
$MYSQL_PID_FILE. So to fix the bug, I've made mysqld no longer
backgrounded (is_daemon becomes 'false').
… any errors. As a side-effect, removes $MYSQL_PID. Fixes jetify-com#2518.

The old code used shell '&' to background mysqld, then captured its pid
with MYSQL_PID=$!, in doing so obscuring the mysqld exit code.

I can't see any sane way of both propagating the exit code *and* setting
MYSQL_PID. I also can't see any point in MYSQL_PID, given that
process-compose is a TUI and the pid is readily available in
$MYSQL_PID_FILE. So to fix the bug, I've made mysqld no longer
backgrounded (is_daemon becomes 'false').
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

1 participant