SIGUSR2 not working

According to the documentation at fly.io/docs/configuration/#kill_signal-option SIGUSR2 is supported, the fly CLI also states “✓ Configuration is valid”, but when I then deploy the app with the following keys in the TOML:

kill_signal = "SIGUSR2"
kill_timeout = "5m"

it fails like this:

==> Verifying app config
Validating ~/Workspace/panascais/projects/<project-name>/fly.toml
✓ Configuration is valid
--> Verified app config
==> Building image
Remote builder fly-builder-winter-feather-2005 ready
Remote builder fly-builder-winter-feather-2005 ready
==> Building image with Docker
--> docker host: 24.0.7 linux x86_64
[+] Building 0.8s (12/12) FINISHED
 => [internal] load build definition from Dockerfile                                                                                                                                                            0.0s
 => => transferring dockerfile: 241B                                                                                                                                                                            0.0s
 => [internal] load .dockerignore                                                                                                                                                                               0.0s
 => => transferring context: 62B                                                                                                                                                                                0.0s
 => [internal] load metadata for docker.io/library/debian:bookworm                                                                                                                                              0.7s
 => [internal] load metadata for docker.io/library/golang:1.22-bookworm                                                                                                                                         0.7s
 => [builder 1/4] FROM docker.io/library/golang:1.22-bookworm@sha256:<SHA>                                                                                                                                      0.0s
 => [stage-1 1/2] FROM docker.io/library/debian:bookworm@sha256:<SHA>                                                                                                                                           0.0s
 => [internal] load build context                                                                                                                                                                               0.0s
 => => transferring context: 113B                                                                                                                                                                               0.0s
 => CACHED [builder 2/4] WORKDIR /<project-name>                                                                                                                                                                        0.0s
 => CACHED [builder 3/4] COPY . .                                                                                                                                                                               0.0s
 => CACHED [builder 4/4] RUN CGO_ENABLED=0 GOOS=linux go build -v -o executable                                                                                                                                 0.0s
 => CACHED [stage-1 2/2] COPY --from=builder /<project-name>/executable /<project-name>                                                                                                                                         0.0s
 => exporting to image                                                                                                                                                                                          0.0s
 => => exporting layers                                                                                                                                                                                         0.0s
 => => writing image sha256:<SHA>                                                                                                                                                                               0.0s
 => => naming to registry.fly.io/<project-name>:deployment-<DEPLOYMENT_ID>                                                                                                                                              0.0s
--> Building image done
==> Pushing image to fly
The push refers to repository [registry.fly.io/<project-name>]
ef6234e47ff4: Layer already exists
0238a1790324: Layer already exists
deployment-<DEPLOYMENT_ID>: digest: sha256:<SHA> size: 740
--> Pushing image done
image: registry.fly.io/<project-name>:deployment-<DEPLOYMENT_ID>
image size: 136 MB

Watch your deployment at https://fly.io/apps/<project-name>/monitoring



-------
Updating existing machines in '<project-name>' with rolling strategy

-------
 ✖ [1/9] Machine <VM_ID> [<project-name>] update failed: failed to update VM <VM_ID>: invalid stop_config.signal, must be one of [SIGTERM SIGFPE SIGPIPE SIGUSR1 SIGILL SIGHUP SIGKILL SIGQUIT SIGSEGV SIGAL…
   [2/9] Waiting for job
   [3/9] Waiting for job
   [4/9] Waiting for job
   [5/9] Waiting for job
   [6/9] Waiting for job
   [7/9] Waiting for job
   [8/9] Waiting for job
   [9/9] Waiting for job
-------
Checking DNS configuration for <project-name>.fly.dev
Error: failed to update VM <VM_ID>: invalid stop_config.signal, must be one of [SIGTERM SIGFPE SIGPIPE SIGUSR1 SIGILL SIGHUP SIGKILL SIGQUIT SIGSEGV SIGALRM SIGINT SIGTRAP SIGABRT] (Request ID: <REQUEST_ID>)

It’s probably just missing in the backend from the VM manager, would be really useful if this could be fixed as SIGUSR2 is crucial for our use case.

1 Like

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.