mirror of
https://github.com/frappe/gunicorn.git
synced 2026-01-14 11:09:11 +08:00
This changes improve the binary upgrade behaviour using USR2: - only one binary upgrade can happen at a time: the old arbiter needs to be killed to promote the new arbiter. - if a new arbiter is already spawned, until one is killed USR2 has no action - if a new arbiter has been spawned, the unix socket won't be unlinked - until the old arbiter have been killed the newly created pidfile has the name <pidfile>.2 and the name Master.2 . Note: there is no dialog between both arbiters to handle this features. Instead they will supervise each others until one is killed. So isolation is still guaranted. fix #1267
16 lines
382 B
Python
16 lines
382 B
Python
try:
|
|
import unittest.mock as mock
|
|
except ImportError:
|
|
import mock
|
|
|
|
from gunicorn import sock
|
|
|
|
|
|
@mock.patch('os.getpid')
|
|
@mock.patch('os.unlink')
|
|
@mock.patch('socket.fromfd')
|
|
def test_unix_socket_close_unlink(fromfd, unlink, getpid):
|
|
gsock = sock.UnixSocket('test.sock', mock.Mock(), mock.Mock(), mock.Mock())
|
|
gsock.close()
|
|
unlink.assert_called_with("test.sock")
|