• unknown's avatar
    BUG#9678: Client library hangs after network communication failure · 0b2a28f5
    unknown authored
              (back-port to 4.0)
    
    Socket timeouts in client library were used only on Windows.
    Additionally, in 4.0 write operations erroneously set read timeout.
    
    The solution is to use socket timeouts in client library on all
    systems were they are supported, and to differentiate between read
    and write timeouts.
    
    No test case is provided because it is impossible to simulate network
    failure in current test suite.
    
    
    include/violite.h:
      Add argument to vio_timeout() to determine which timeout should be set:
      for read (false) or for write (true).
    libmysqld/lib_vio.c:
      Add argument to vio_timeout() to determine which timeout should be set:
      for read (false) or for write (true).
    sql/net_serv.cc:
      Add argument to vio_timeout() to determine which timeout should be set:
      for read (false) or for write (true).
    vio/viosocket.c:
      Add argument to vio_timeout() to determine which timeout should be set:
      for read (false) or for write (true).
      Implement socket timeouts on POSIX systems.
    0b2a28f5
net_serv.cc 25.6 KB