Skip to content

chore: bump process-compose from v1.110.0 to v1.116.0 (#2915)#2916

Open
jefft wants to merge 1 commit into
jetify-com:mainfrom
jefft:jefft/process-compose-1.116-fix-2915
Open

chore: bump process-compose from v1.110.0 to v1.116.0 (#2915)#2916
jefft wants to merge 1 commit into
jetify-com:mainfrom
jefft:jefft/process-compose-1.116-fix-2915

Conversation

@jefft

@jefft jefft commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

Summary

This bump fixes a process-compose bug where services with process_healthy dependencies would hang forever (stuck in Pending state) when the target process had no readiness_probe or liveness_probe configured.

process-compose v1.116.0 (commit 85686e5) adds a nil-check in waitIfNeeded() that returns a clear error instead of blocking on a channel that is never closed for processes without probes.

Changes made:

  1. go.mod: changed github.com/f1bonacc1/process-compose v1.64.1 to v1.116.0
  2. internal/devbox/util.go: changed const processComposeVersion = "1.110.0" to "1.116.0"
  3. go mod tidy: updated go.sum and indirect dependencies

Fixes #2915

How was it tested?

First build a devbox with a working #2909 isolated #2906 mariadb plugin (unless those have been merged), plus this PR:

cd /tmp
git clone git@github.com:jetify-com/devbox.git
direnv allow /tmp/devbox
cd devbox
git remote add jefft git@github.com:jefft/devbox.git
git fetch jefft
git checkout -b merge-plugin-fixes main
git merge jefft/jefft/nginx-plugin-fix-2908
git merge jefft/jefft/mysql-plugin-ignore-etc-mysql
git merge jefft/jefft/process-compose-1.116-fix-2915
devbox run build

Then using modified repro script from #2915:

cat > /tmp/mariadb_testhealth.sh <<'EOF'
#!/bin/bash -eu

if [[ -d /tmp/mariadb_testhealth ]]; then
        ( cd /tmp/mariadb_testhealth && devbox services down >/dev/null 2>&1 || : )
  rm -r /tmp/mariadb_testhealth
fi
mkdir /tmp/mariadb_testhealth
cd /tmp/mariadb_testhealth
devbox init
devbox add mariadb
echo "port = $(( 10000 + RANDOM % 50000))" >> devbox.d/mariadb/my.cnf
cat > my_database_using_app <<'EOF2'
#!/bin/bash
# Connect to MariaDBD via unix socket as root.
sudo mariadb --show-warnings -u root --socket "$MYSQL_UNIX_PORT" -e "select 1;"
EOF2
chmod +x ./my_database_using_app

cat > process-compose.yml <<'EOF2'
version: "0.5"

processes:

  myapp:
    depends_on:
      mariadb:
        condition: process_healthy
    command: ./my_database_using_app
EOF2
devbox services up -b
sleep 1
echo "myapp should be Skipped:"
devbox services ls
echo "We should see an error in the process-compose log:"
grep ERR /tmp/process-compose-$USER.log
EOF

# Put our compiled version of devbox ahead of others in PATH
PATH=/tmp/devbox/dist:$PATH bash /tmp/mariadb_testhealth.sh

With the fixed process-compose the myapp service is in Skipped, and the log contains a clear error message:

Starting all services: mariadb_logs, myapp, mariadb 
Process-compose is now running on port 40249
To stop your services, run `devbox services stop`
myapp should be Skipped:
Services running in process-compose:
PID            NAME                NAMESPACE        STATUS         AGE        HEALTH        RESTARTS        EXIT CODE
1673011        mariadb             default          Running        1s         -             0               0
1673058        mariadb_logs        default          Running        0s         -             1               1
0              myapp               default          Skipped        0s         -             0               1
We should see an error in the process-compose log:
26-07-11 02:46:21.849 ERR health dependency defined in 'myapp' but no health check exists in 'mariadb'
26-07-11 02:46:21.850 ERR Error: health dependency defined in 'myapp' but no health check exists in 'mariadb'
26-07-11 02:46:21.850 ERR Error: process myapp won't run
jturner@jturner-desktop:/tmp/devbox$ 

Community Contribution License

All community contributions in this pull request are licensed to the project
maintainers under the terms of the
Apache 2 License.

By creating this pull request, I represent that I have the right to license the
contributions to the project maintainers under the Apache 2 License as stated in
the
Community Contribution License.

This bump fixes a process-compose bug where services with
process_healthy dependencies would hang forever (stuck in Pending state)
when the target process had no readiness_probe or liveness_probe
configured.

v1.116.0 (commit 85686e5) adds a nil-check in waitIfNeeded() that
returns a clear error instead of blocking on a channel that is never
closed for processes without probes.

Fixes jetify-com#2915
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.

Fix process-compose bug and implement readiness_probes to allow dependencies on plugin services

1 participant