Bug #117462 Feature request: Introduce timeouts for connection API
Submitted: 13 Feb 9:56 Modified: 18 Jul 2:34
Reporter: Val Doroshchuk Email Updates:
Status: Closed Impact on me:
None 
Category:Connector / C++ Severity:S4 (Feature request)
Version:8.0.30 OS:Any
Assigned to: CPU Architecture:Any

[13 Feb 9:56] Val Doroshchuk
Description:
The original ticket: https://bugs.mysql.com/bug.php?id=116580

> Definitely having an option to control read timeout would help to handle that situation better. Still please report a feature request for this -- that would help us to manage the change.

Since the timeouts are not implemented in `TLS::Read_op::common_read` and `connection::detail::recv_some` and if there is no activity on the socket, it will hang forever. 

It would be very nice to provide some (default?) timeout param to avoid infinite hangs or waiting.
Thanks

How to repeat:
Please follow https://bugs.mysql.com/bug.php?id=116580
[13 Feb 10:05] MySQL Verification Team
Hello Val Doroshchuk,

Thank you for the feature request.

regards,
Umesh
[17 Jun 12:34] Rafal Somla
Posted by developer:
 
This feature was implemented by WL#16924
Pushed to 9.4.0 release branch: f89f766f46249fcc6969424b80821b3847b62ba7
[18 Jul 2:34] Daniel So
Posted by developer:
 
Added the following entry to the Connector/C++ 9.4.0 changelog: 

"The X DevAPI and X DevAPI for C now support configurable read and write timeouts. These timeouts can be set in milliseconds with the following methods:

- For both APIs, with the connection options read-timeout and write-timeout in the connection string.

- For the X DevAPI, with the SessionOption enumeration constants READ_TIMEOUT and WRITE_TIMEOUT in the mysqlx::Session or mysqlx::SessionSettings constructor.

- For the X DevAPI for C, with the MYSQLX_OPT_READ_TIMEOUT and MYSQLX_OPT_WRITE_TIMEOUT enumeration constants or the OPT_READ_TIMEOUT() and OPT_WRITE_TIMEOUT() macros, using the mysqlx_session_option_set() function. 

The timeouts can only be set at the time of connection. See the MySQL Connector/C++ X DevAPI Reference for details."