{"action":"opened","issue":{"url":"https://api.github.com/repos/puma/puma/issues/659","labels_url":"https://api.github.com/repos/puma/puma/issues/659/labels{/name}","comments_url":"https://api.github.com/repos/puma/puma/issues/659/comments","events_url":"https://api.github.com/repos/puma/puma/issues/659/events","html_url":"https://github.com/puma/puma/issues/659","id":58988929,"number":659,"title":"Puma hot restart hangs workers","user":{"login":"SavithaK","id":3604771,"avatar_url":"https://avatars.githubusercontent.com/u/3604771?v=3","gravatar_id":"","url":"https://api.github.com/users/SavithaK","html_url":"https://github.com/SavithaK","followers_url":"https://api.github.com/users/SavithaK/followers","following_url":"https://api.github.com/users/SavithaK/following{/other_user}","gists_url":"https://api.github.com/users/SavithaK/gists{/gist_id}","starred_url":"https://api.github.com/users/SavithaK/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SavithaK/subscriptions","organizations_url":"https://api.github.com/users/SavithaK/orgs","repos_url":"https://api.github.com/users/SavithaK/repos","events_url":"https://api.github.com/users/SavithaK/events{/privacy}","received_events_url":"https://api.github.com/users/SavithaK/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-02-25T23:39:11Z","updated_at":"2015-02-25T23:39:11Z","closed_at":null,"body":"We upgraded to Puma 2.11.1 and bundler 1.8.3. It looks like we can no longer hot restart the application. We are running puma in cluster mode. Not all workers go down on restart and this hangs the application (3-6 of them seem to stick around)\r\nOnly killing the master process brings the puma process back up.\r\n\r\nPuma config:\r\n\r\nthreads 8,32\r\nworkers 16\r\nbind \"unix:///tmp/persona.puma.sock\"\r\nenvironment \"production\"\r\npidfile \"/opt/persona/current/tmp/pids/puma.pid\"\r\nactivate_control_app 'tcp://0.0.0.0:8081', { no_token: true }\r\ndirectory '/opt/persona/current'\r\nprune_bundler\r\n\r\n# Log puma output to files\r\nstdout_redirect '/opt/persona/current/log/puma.stdout.log',\r\n  '/opt/persona/current/log/puma.stderr.log', true\r\n\r\n# Read VERSION file for git SHA\r\n@git_sha = File.exists?('/opt/persona/current/VERSION') &&\r\n  File.read('/opt/persona/current/VERSION')[0,8]\r\n\r\n# Tag master process with git SHA\r\ntag @git_sha\r\n\r\n# Log worker boot with git SHA\r\non_worker_boot do\r\n  puts \"[#{Process.pid}] Booting puma worker: git rev #{@git_sha}\" if @git_sha\r\nend\r\n\r\nWe see this in the puma log but not much else:\r\n[628] Booting puma worker: git rev fabffddb\r\n[18036] - Worker 5 (pid: 628) booted, phase: 1\r\n[18036] - Stopping 18080 for phased upgrade...\r\n[18036] - TERM sent to 18080...\r\n[18036] - TERM sent to 18080...\r\n[18036] - TERM sent to 18080...\r\n[18036] - TERM sent to 18080...\r\n[18036] - TERM sent to 18080...\r\n[18036] - TERM sent to 18080...\r\n[18036] - KILL sent to 18080...\r\n[765] + Gemfile in context: /opt/persona/releases/20150225015400/Gemfile"}}