Skip to content

Commit ade4761

Browse files
author
cod1k
committed
FIX: Supervisord crushes on exceptions while adding process-group
1 parent 412f8d7 commit ade4761

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

supervisor/events.py

+9
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,15 @@ def payload(self):
174174
class ProcessGroupAddedEvent(ProcessGroupEvent):
175175
pass
176176

177+
class AddProcessGroupFailedEvent(ProcessGroupEvent):
178+
def __init__(self, group, err = None):
179+
super().__init__(group)
180+
self.err = err
181+
182+
def payload(self):
183+
payload = super().payload()
184+
return payload+'error:%s\n' % self.err
185+
177186
class ProcessGroupRemovedEvent(ProcessGroupEvent):
178187
pass
179188

supervisor/supervisord.py

+6-1
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,12 @@ def add_process_group(self, config):
114114
name = config.name
115115
if name not in self.process_groups:
116116
config.after_setuid()
117-
self.process_groups[name] = config.make_group()
117+
try:
118+
self.process_groups[name] = config.make_group()
119+
except BaseException as why:
120+
self.options.logger.warn('Unable to add group %s: %s' % (name, why))
121+
events.notify(events.AddProcessGroupFailedEvent(name, why))
122+
return False
118123
events.notify(events.ProcessGroupAddedEvent(name))
119124
return True
120125
return False

0 commit comments

Comments
 (0)