i’m having a hard time debugging this one. i have a node script to setup a swapfile after build before running:
#!/usr/bin/env node
import { writeFile } from 'node:fs/promises'
import { $ } from 'execa'
console.log('setting up swapfile...')
await $`fallocate -l 512M /swapfile`
await $`chmod 0600 /swapfile`
await $`mkswap /swapfile`
await writeFile('/proc/sys/vm/swappiness', '10')
await $`swapon /swapfile`
await writeFile('/proc/sys/vm/overcommit_memory', '1')
console.log('swapfile setup complete')
and i get an error: swapon failed: Invalid argument .
i tried to ssh into the machine and run the steps manually as well and get stuck with the same error (see repro below):
How can i enable swap on a fly machine?
1 Like
The easiest way is to set it in the swap_size_mb option in fly.toml .
4 Likes
works well, thanks for making me aware of this option jp.
That didn’t work
Added swap_size_mb = 512
to my fly.toml
file and the error continues:
level=INFO msg="executing command: node [./other/setup-swap.js]"
setting up swapfile...
file:///myapp/node_modules/execa/lib/error.js:60
error = new Error(message);
^
Error: Command failed with exit code 255: swapon /swapfile
swapon: /swapfile: swapon failed: Invalid argument
at makeError (file:///myapp/node_modules/execa/lib/error.js:60:11)
at handlePromise (file:///myapp/node_modules/execa/index.js:124:26)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async file:///myapp/other/setup-swap.js:11:1 {
shortMessage: 'Command failed with exit code 255: swapon /swapfile',
command: 'swapon /swapfile',
escapedCommand: 'swapon "/swapfile"',
exitCode: 255,
signal: undefined,
signalDescription: undefined,
stdout: '',
stderr: 'swapon: /swapfile: swapon failed: Invalid argument',
cwd: '/myapp',
failed: true,
timedOut: false,
isCanceled: false,
killed: false
}
Node.js v20.12.2
ERROR: cannot exec: sync cmd: cannot run command: exit status 1
level=INFO msg="270A70BEF3E0B35F: exiting primary, destroying lease"
INFO Main child exited normally with code: 1
INFO Starting clean up.
INFO Umounting /dev/vdd from /data
WARN could not unmount /rootfs: EINVAL: Invalid argument
My setup swap file is exactly the same as @justinthareja
since you’re using the swap_size_mb
option provided by fly, you no longer need to run the ./other/setup-swap.js
node script. you can remove that step during your deployment and the error will go away
1 Like
system
Closed
April 28, 2024, 5:07pm
6
This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.