title: gunicorn doesn't kill worker even after timeout
body: <p>gunicorn doesn't seem to kill and re-spawn worker even after timeout.</p>
  
  <p>Here is my code (<strong>myapp.py</strong>):</p>
  
  <pre><code> def app(environ, start_response):
   data = b"Hello, World!\n"
   start_response("200 OK", [
       ("Content-Type", "text/plain"),
       ("Content-Length", str(len(data)))
   ])
   return iter([data])
  </code></pre>
  
  <p>Here is how I'm triggering gunicorn server:</p>
  
  <pre><code>gunicorn -t 10 -w 1 --log-level debug myapp:app
  </code></pre>
  
  <p>Here is the log:</p>
  
  <pre><code>[2019-02-22 09:56:15 -0800] [20969] [DEBUG] Current configuration:
    config: None
    bind: ['127.0.0.1:8000']
    backlog: 2048
    workers: 1
    worker_class: sync
    threads: 1
    worker_connections: 1000
    max_requests: 0
    max_requests_jitter: 0
    timeout: 10
    graceful_timeout: 30
    keepalive: 2
    limit_request_line: 4094
    limit_request_fields: 100
    limit_request_field_size: 8190
    reload: False
    reload_engine: auto
    reload_extra_files: []
    spew: False
    check_config: False
    preload_app: False
    sendfile: None
    reuse_port: False
    chdir: /Users/abc/experiments/gnuicorn_test
    daemon: False
    raw_env: []
    pidfile: None
    worker_tmp_dir: None
    user: 501
    group: 20
    umask: 0
    initgroups: False
    tmp_upload_dir: None
    secure_scheme_headers: {'X-FORWARDED-PROTOCOL': 'ssl', 'X-FORWARDED-PROTO': 'https', 'X-FORWARDED-SSL': 'on'}
    forwarded_allow_ips: ['127.0.0.1']
    accesslog: None
    disable_redirect_access_to_syslog: False
    access_log_format: %(h)s %(l)s %(u)s %(t)s "%(r)s" %(s)s %(b)s "%(f)s" "%(a)s"
    errorlog: -
    loglevel: debug
    capture_output: False
    logger_class: gunicorn.glogging.Logger
    logconfig: None
    logconfig_dict: {}
    syslog_addr: unix:///var/run/syslog
    syslog: False
    syslog_prefix: None
    syslog_facility: user
    enable_stdio_inheritance: False
    statsd_host: None
    statsd_prefix: 
    proc_name: None
    default_proc_name: myapp:app
    pythonpath: None
    paste: None
    on_starting: &lt;function OnStarting.on_starting at 0x1067a6730&gt;
    on_reload: &lt;function OnReload.on_reload at 0x1067a6840&gt;
    when_ready: &lt;function WhenReady.when_ready at 0x1067a6950&gt;
    pre_fork: &lt;function Prefork.pre_fork at 0x1067a6a60&gt;
    post_fork: &lt;function Postfork.post_fork at 0x1067a6b70&gt;
    post_worker_init: &lt;function PostWorkerInit.post_worker_init at 0x1067a6c80&gt;
    worker_int: &lt;function WorkerInt.worker_int at 0x1067a6d90&gt;
    worker_abort: &lt;function WorkerAbort.worker_abort at 0x1067a6ea0&gt;
    pre_exec: &lt;function PreExec.pre_exec at 0x1067b9048&gt;
    pre_request: &lt;function PreRequest.pre_request at 0x1067b9158&gt;
    post_request: &lt;function PostRequest.post_request at 0x1067b91e0&gt;
    child_exit: &lt;function ChildExit.child_exit at 0x1067b92f0&gt;
    worker_exit: &lt;function WorkerExit.worker_exit at 0x1067b9400&gt;
    nworkers_changed: &lt;function NumWorkersChanged.nworkers_changed at 0x1067b9510&gt;
    on_exit: &lt;function OnExit.on_exit at 0x1067b9620&gt;
    proxy_protocol: False
    proxy_allow_ips: ['127.0.0.1']
    keyfile: None
    certfile: None
    ssl_version: 2
    cert_reqs: 0
    ca_certs: None
    suppress_ragged_eofs: True
    do_handshake_on_connect: False
    ciphers: TLSv1
    raw_paste_global_conf: []
  [2019-02-22 09:56:15 -0800] [20969] [INFO] Starting gunicorn 19.9.0
  [2019-02-22 09:56:15 -0800] [20969] [DEBUG] Arbiter booted
  [2019-02-22 09:56:15 -0800] [20969] [INFO] Listening at: http://127.0.0.1:8000 (20969)
  [2019-02-22 09:56:15 -0800] [20969] [INFO] Using worker: sync
  [2019-02-22 09:56:15 -0800] [20972] [INFO] Booting worker with pid: 20972
  [2019-02-22 09:56:15 -0800] [20969] [DEBUG] 1 workers
  [2019-02-22 09:56:40 -0800] [20972] [DEBUG] GET /
  [2019-02-22 09:57:29 -0800] [20972] [DEBUG] GET /
  [2019-02-22 09:57:57 -0800] [20972] [DEBUG] GET /
  [2019-02-22 09:58:32 -0800] [20972] [DEBUG] GET /
  [2019-02-22 10:04:07 -0800] [20972] [DEBUG] GET /
  </code></pre>
  
  <p>As you can see the timeout was set for 10 seconds, but the worker never recycled even after 5 minutes of idle period.</p>
  
  <p>What am I missing here? Would really appreciate any help in this regard!</p>