ConnectionPool wait_timeout no longer used for different types of timeouts. #6441 #6463

Merged
merged 1 commit into from May 23, 2012
Commits on May 23, 2012
  1. ConnectionPool wait_timeout no longer used for different types of tim…

    jrochkind committed May 23, 2012
    …eouts. #6441
    
    An AR ConnectionSpec `wait_timeout` is pre-patch used for three
    different things:
    
    * mysql2 uses it for MySQL's own wait_timeout (how long MySQL
      should allow an idle connection before closing it), and
      defaults to 2592000 seconds.
    * ConnectionPool uses it for "number of seconds to block and
      wait for a connection before giving up and raising a timeout error",
      default 5 seconds.
    * ConnectionPool uses it for the Reaper, for deciding if a 'dead'
      connection can be reaped. Default 5 seconds.
    
    Previously, if you want to change these from defaults, you need
    to change them all together. This is problematic _especially_
    for the mysql2/ConnectionPool conflict, you will generally _not_
    want them to be the same, as evidenced by their wildly different
    defaults. This has caused real problems for people #6441 #2894
    
    But as long as we're changing this, forcing renaming the
    ConnectionPool key to be more specific, it made sense
    to seperate the two ConnectionPool uses too -- these two
    types of ConnectionPool timeouts ought to be able to be
    changed independently, you won't neccesarily want them
    to be the same, even though the defaults are (currently)
    the same.