Bug #103299 Fetch resultset > 70kB fails
Submitted: 13 Apr 2021 10:34 Modified: 16 Apr 2021 10:19
Reporter: Fredrik Hemlig Email Updates:
Status: Duplicate Impact on me:
None 
Category:MySQL Router Severity:S1 (Critical)
Version:8.0.22-8.0.23 OS:Windows
Assigned to: MySQL Verification Team CPU Architecture:Any

[13 Apr 2021 10:34] Fredrik Hemlig
Description:
Selecting "too much data" from InnoDB cluster makes MySQL router fail with:
  2021-04-13 11:54:50 routing INFO [24ac] client::write() failed: A non-blocking socket operation could not be completed immediately. (system:10035)

My table has AVG row length of 157, select * with limit 420 works, but not limit 450. Selecting just the ID (uint) I can select many more rows without failure. So the breaking result set limit might be around 70kB.

When trying from Workbench (8.0.23) a failed query will hang for 30s then return OK but no fetched rows. The log message from above will be written to the log.

Relates to https://bugs.mysql.com/bug.php?id=101406 but creating a new bug report since I can only reproduce this issue when the router is running on Windows.

How to repeat:
Create and populate a table with a bunch of columns (AVG row length around 157) and a few thousand rows.

SELECT * FROM theTable limit 500;

We've successfully reproduced this issue with various versions of InnoDB cluster. The MySQL router 8.0.20 seems to work, as do all the linux versions.

Suggested fix:
No known workaround except running older version: 8.0.20.
[13 Apr 2021 12:29] Fredrik Hemlig
MySQL router 8.0.21 is not affected.
[16 Apr 2021 10:19] MySQL Verification Team
Hi,

It is not windows related (the behavior is bit different but both are affected), we know about the problem, solving it, should be fixed in the next release.

Thanks
Bogdan

Duplicate of #101406