Supervisor/supervisor

reread and update ignore changes to event listeners

borntyping opened this issue · 14 comments

If I change the configuration file for an event listener:

$ nano /etc/supervisor/conf.d/event_listener.conf
$ supervisorctl reread
No config updates to processes
$ supervisorctl update
$

If I change the configuration file for a program:

$ nano /etc/supervisor/conf.d/program.conf
$  sudo supervisorctl reread                    
riemann-dash: changed
$ sudo supervisorctl update                         
riemann-dash: stopped
riemann-dash: updated process group
jean commented

This bites me too. Any way to read the new event listener config short of restarting the whole supervisord?

it also ignores new environment variables. "reread" is misleading

I met this trouble in the latest version(3.1.1) too. Strongly hope to be fixed soon.

I renamed the event listener as a workaround, then ran update and supervisor removed the old config and added the new one.

The workaround I mentioned before is not good enough. The old EventListenerPools are still there, and I keep getting error logs like this: 2014-09-10 17:31:00,295 ERRO pool crashmailbatch0 event buffer overflowed, discarding event 8673

I found a workaround.
You have to stop and remove the process of your event listener with supervisorct remove method and then re-add it with supervisorctl add method.
It works for me.

EDIT: it works only once, I can't reproduce it... weird

I've faced the same problem, it turns out that the solution for me (version 3.1.2) is to

supervisorctl stop crashmailbatch
supervisorctl remove crashmailbatch
supervisorctl update

This seems to work, even repeatedly. The config file I have for it is

[eventlistener:crashmailbatch]
command=crashmailbatch -t "mymail@company.com" -f "user@server.com" -H "host.company.com" -s "Service error"
events=PROCESS_STATE,TICK_60
buffer_size=10

I do not know if the buffer_size is needed, as I did receive the notification I was expecting, despite the bufffer overflow errors...

still not solved..

Hi guys, I've changed my configuration file, and did

supervisorctl stop crashmailbatch
supervisorctl remove crashmailbatch
supervisorctl update

With the following in the config file:

[eventlistener:crashmailbatch]
command=/bin/bash -c "/usr/local/bin/crashmailbatch -t email@company.com -f email@company.com -i 10 -s "supervisor $HOSTNAME""
events=PROCESS_STATE,TICK_60

However, crashmailbatch stopped working, I've killed a process, and it didn't sent an error email. There's nothing in the supervisord.log. I rolled back to the previous config, and it still don't send emails.

Anyone knows what can I do?

Best regards

Also just discovered this confusing behaviour. Was on 3.0 and upgraded to 3.2 but no luck! In the interim, would be great to document this behaviour.

I have made a fix available here: #777

Got this issue too while using superlance, kinda annoying, however @gdelnegro did provide an easy workaround.

In my case the workers files are not included, so i had to add

[include]
files = /etc/supervisor/conf.d/*.conf

at the end of /etc/supervisord.conf and restart the daemon

Got bumped into this issue. As a quick fix, I renamed eventlistener process group and reread picked it up.

P.S. It's not just eventlistener group that is not updated. If you change the event type in program group, even that doesn't get picked up by reread