Avoid the error "checkstart entered FATAL state, too many start retries too quickly"
@lucasdiedrich @marcbria
It seems that supervisord is not correctly configured for running ojs-pre-start script, in the console I can see these 2 errors messages :
- INFO exited: checkstart (exit status 0; not expected)
- INFO gave up: checkstart entered FATAL state, too many start retries too quickly
one solution is to use the options "startsecs" and "exitcodes" in /etc/supervisord.conf
[program:checkstart]
command=/usr/local/bin/ojs-pre-start
startsecs=0
exitcodes=0
http://supervisord.org/configuration.html
after these modifications the new output of supervisord about checkstart process, no errors like "fatal state" :
- INFO spawned: 'checkstart' with pid 11
- INFO success: checkstart entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
- INFO exited: checkstart (exit status 0; expected)
- INFO success: apache entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
Thats awesome @Potomac54, the error occurs because supervisor normally need an service to be running, and the exit of ojs-pre-start its not a running process and i never found and work around. Can you please make a PR with that?
Or i will integrate this as soon as i'm possible.
Thanks
Can you tell me how can I make pull request in your github ?
Do I need to be a member of your github ? I tried to clone your github (php7-test branch), and then make a pull with my modifications, it doesn't accept my credentials
$ git push
Username for 'https://github.com': potomac
Password for 'https://[email protected]':
remote: Permission to lucasdiedrich/ojs.git denied to Potomac.
fatal: unable to access 'https://github.com/lucasdiedrich/ojs.git/': The requested URL returned error: 403
then I tried to use the "pull request" feature of your github, but not sure to understand how it works
In short:
- fork lucas repo.
- "git clone" your forked repo to your local computer.
- Make your chages.
- "git commit" to your local repo.
- "git push" to your forked repo.
- Visit github and the tool will ask you to create a PR with your changes.
- Delete your fork and local repo.
Here you have github's howto: https://help.github.com/en/articles/creating-a-pull-request
@marcbria @lucasdiedrich
Ok I forked lucas repo, I made the change in the "php7-test" branch, and I made a pull request : https://github.com/lucasdiedrich/ojs/pull/31
I notice a bug in my pull request, ojs-pre-start is not started when startsecs=0,
so the solution is to set this option to 1, like this :
[program:checkstart] command=/usr/local/bin/ojs-pre-start startsecs=1 exitcodes=0
@Potomac thanks for your help, unfortunetly your second PR included breaking code, i mentioned that over the PR, thanks.
@lucasdiedrich @marcbria : I fixed the wrong path in a new commit,
for the supervisor problem my fix doesn't really work, sometimes I get the message "fatal state", I think the main problem is that supervisord is designed to run daemons, not really simple bash scripts,
one solution would be to start ojs-pre-start with an init system like systemd, alpine linux uses a different init software, openRC : https://wiki.alpinelinux.org/wiki/Alpine_Linux_Init_System
another solution may be to use a cron script, with settings to run once ojs-pre-start script
@Potomac thats exactly the problem, supervisor is designed to run daemons, using alpine init system is the best option, as soon as possible going to look into this.