Description:
When connecting through MySQL Router in a C# Application
(via MySQL .NET Connector), an exception gets thrown,
when the query returns about 1000 Rows.
No exception appears, when exactly the same query gets executed
from within HeidiSQL via MySQL Router.
I'm using .NET Connector with Version 6.9.8 but also tried it with version 6.9.9.
Excerpt of the MySQL Router log:
------------
2017-05-30 13:06:41 DEBUG [2658] [routing:failover] TCP connection from 680 accepted at 127.0.0.1:3310
2017-05-30 13:06:41 DEBUG [2fbc] [routing:failover] source [127.0.0.1]:51045 - dest [192.168.1.8]:3306
2017-05-30 13:06:43 DEBUG [d18] Write error: SystemError: Ein nicht blockierender Socketvorgang konnte nicht sofort ausgeführt werden.
2017-05-30 13:06:43 DEBUG [d18] [routing:failover] Routing stopped (up:1047513b;down:34890b) Copy server-client failed: SystemError: Ein nicht blockierender Socketvorgang konnte nicht sofort ausgeführt werden.
------------
I know that you will say that it must be a bug in MySQL-Router.
But why does the same query work with HeidiSQL via the same MySQL-Router instance?
How to repeat:
Create a Test-Table:
----------------------
CREATE TABLE `TEST_BUG` (
`tb_id` INT(10) NOT NULL AUTO_INCREMENT,
`tbv_num` INT(11) NOT NULL,
`tb_rgnr_tmp` SMALLINT(6) NOT NULL,
`tbd_id` TINYINT(4) NOT NULL DEFAULT '-1',
`if_id` INT(11) NOT NULL,
`tbt_id` SMALLINT(6) NOT NULL DEFAULT '100',
`ev_id` SMALLINT(6) NOT NULL DEFAULT '1',
`tb_condition` TINYINT(3) NOT NULL DEFAULT '0',
`tb_condition_before` TINYINT(3) NOT NULL DEFAULT '0',
`GERA_ABRG_NR` INT(10) UNSIGNED NULL DEFAULT NULL,
`tb_id_orig` INT(10) NULL DEFAULT NULL,
`tb_id_predecessor` INT(10) NULL DEFAULT NULL,
`tb_rechnr` VARCHAR(15) NOT NULL DEFAULT '',
`tb_lab_id` VARCHAR(20) NOT NULL DEFAULT '',
`tb_num_staple` INT(11) NOT NULL DEFAULT '-1',
`tb_case` VARCHAR(30) NOT NULL DEFAULT '',
`mand_num` INT(11) NOT NULL,
`tb_sub_account` VARCHAR(4) NOT NULL DEFAULT '',
`tb_sub_doc` INT(10) UNSIGNED NOT NULL DEFAULT '0',
`bene_id` INT(10) NULL DEFAULT NULL,
`con_id_bene` INT(11) NULL DEFAULT NULL,
`tb_mandant_hba_nr` VARCHAR(40) NOT NULL DEFAULT '',
`tb_mandant_tax_id` VARCHAR(20) NOT NULL DEFAULT '',
`tb_mandant_kzv_nr` INT(11) NOT NULL DEFAULT '0',
`tb_kasse` TINYINT(4) NOT NULL DEFAULT '-1',
`tb_kasse_long` INT(10) UNSIGNED NOT NULL DEFAULT '0',
`tb_kasse_name` VARCHAR(30) NOT NULL DEFAULT '',
`tb_ins_state` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',
`tb_ins_state_char` VARCHAR(5) NOT NULL DEFAULT '',
`tb_isunfall` TINYINT(1) NOT NULL DEFAULT '0',
`tb_cust` SMALLINT(6) NOT NULL DEFAULT '0',
`tb_valuta` DATE NULL DEFAULT NULL,
`tb_pos_amount_should` SMALLINT(6) NOT NULL DEFAULT '0',
`tb_fee_doc` DECIMAL(9,2) NOT NULL DEFAULT '0.00',
`tb_fee_common` DECIMAL(9,2) NOT NULL DEFAULT '0.00',
`tb_fee_special` DECIMAL(9,2) NOT NULL DEFAULT '0.00',
`tb_rbet` DECIMAL(11,2) NOT NULL DEFAULT '0.00',
`tb_rbet_pas` DECIMAL(11,2) NOT NULL DEFAULT '0.00',
`tb_value_brutto` DECIMAL(10,2) NOT NULL DEFAULT '0.00',
`tb_anzahlung` DECIMAL(9,2) NOT NULL DEFAULT '0.00',
`tb_nachlass` DECIMAL(9,2) NOT NULL DEFAULT '0.00',
`tb_share_val` DECIMAL(9,2) NOT NULL DEFAULT '0.00',
`tb_share_val_expected` DECIMAL(8,2) NOT NULL DEFAULT '0.00',
`tb_share_percent` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0',
`tb_share_own` DECIMAL(9,2) NOT NULL DEFAULT '0.00',
`tb_share_type` TINYINT(3) UNSIGNED NOT NULL DEFAULT '1',
`tb_sharer_id` INT(20) UNSIGNED NOT NULL DEFAULT '0',
`tb_contraction_rate` DECIMAL(5,2) NOT NULL DEFAULT '0.00',
`tb_remission_rate` DECIMAL(5,2) NOT NULL DEFAULT '0.00',
`tb_pay_extra` DECIMAL(9,2) NOT NULL DEFAULT '0.00',
`tb_pay_extra_note` CHAR(1) NOT NULL DEFAULT '0',
`tb_insta_arranger` CHAR(1) NOT NULL DEFAULT 'P',
`tb_insta_val_first` DECIMAL(9,2) NOT NULL DEFAULT '0.00',
`tb_insta_amount` INT(3) UNSIGNED NOT NULL DEFAULT '0',
`tb_insta_start` DATE NULL DEFAULT NULL,
`tb_insta_duration` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0',
`tb_insta_value` DECIMAL(8,2) NOT NULL DEFAULT '0.00',
`tb_insta_type` CHAR(1) NOT NULL DEFAULT '',
`tb_insta_mandate_reference` VARCHAR(40) NOT NULL DEFAULT '',
`tb_creditor_id` VARCHAR(20) NOT NULL DEFAULT '',
`tb_reb_num` VARCHAR(8) NOT NULL DEFAULT '',
`tb_txt_abr_anw` MEDIUMTEXT NOT NULL,
`tb_txt_diag` MEDIUMTEXT NOT NULL,
`tb_txt_rg_anf` MEDIUMTEXT NOT NULL,
`tb_txt_rg_end` MEDIUMTEXT NOT NULL,
`tb_vertragsart` TINYINT(3) UNSIGNED NOT NULL DEFAULT '1',
`tb_anlage_kz` CHAR(1) NOT NULL,
`insu_id` INT(10) NULL DEFAULT NULL,
`tb_cust_id` VARCHAR(10) NOT NULL DEFAULT '',
`tb_cust_anrede` CHAR(1) NOT NULL DEFAULT '0',
`tb_cust_titel` VARCHAR(20) NOT NULL DEFAULT '',
`tb_cust_namensvorsatz` VARCHAR(50) NOT NULL DEFAULT '',
`tb_cust_namenszusatz` VARCHAR(20) NOT NULL DEFAULT '',
`tb_cust_name` VARCHAR(255) NOT NULL DEFAULT '',
`tb_cust_vorname` VARCHAR(50) NOT NULL DEFAULT '',
`tb_cust_nachname` VARCHAR(50) NOT NULL DEFAULT '',
`tb_cust_name_birth` VARCHAR(40) NOT NULL DEFAULT '',
`tb_cust_str` VARCHAR(50) NOT NULL DEFAULT '',
`tb_cust_hausnr` VARCHAR(16) NOT NULL DEFAULT '',
`tb_cust_lpo` VARCHAR(255) NOT NULL DEFAULT '',
`tb_cust_land` VARCHAR(3) NOT NULL DEFAULT '',
`tb_cust_plz` VARCHAR(10) NOT NULL DEFAULT '',
`tb_cust_ort` VARCHAR(50) NOT NULL DEFAULT '',
`tb_cust_an_zusatz` VARCHAR(255) NOT NULL DEFAULT '',
`tb_cust_postfach` VARCHAR(10) NOT NULL DEFAULT '',
`tb_cust_packstation` VARCHAR(10) NOT NULL DEFAULT '',
`tb_cust_staat` VARCHAR(3) NOT NULL DEFAULT '',
`tb_cust_gebdat` DATE NULL DEFAULT NULL,
`tb_cust_geschlecht` CHAR(1) NOT NULL DEFAULT '0',
`tb_cust_tel` VARCHAR(30) NOT NULL DEFAULT '',
`tb_cust_email` VARCHAR(40) NOT NULL DEFAULT '',
`tb_cust_blz` INT(10) UNSIGNED NOT NULL DEFAULT '0',
`tb_cust_kto` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0',
`tb_cust_iban` VARCHAR(34) NOT NULL DEFAULT '',
`tb_cust_bic` VARCHAR(12) NOT NULL DEFAULT '',
`tb_cust_bank` VARCHAR(70) NOT NULL DEFAULT '',
`tb_cust_bank_holder` VARCHAR(136) NOT NULL DEFAULT '',
`tb_cust_elv_eve` TINYINT(1) NOT NULL DEFAULT '0',
`con_id_minor` INT(10) NULL DEFAULT NULL,
`tb_min_id` VARCHAR(10) NOT NULL DEFAULT '',
`tb_min_anrede` CHAR(1) NOT NULL DEFAULT '0',
`tb_min_name` VARCHAR(255) NOT NULL DEFAULT '',
`tb_min_vorname` VARCHAR(50) NOT NULL DEFAULT '',
`tb_min_nachname` VARCHAR(50) NOT NULL DEFAULT '',
`tb_min_name_birth` VARCHAR(40) NOT NULL DEFAULT '',
`tb_min_gebdat` DATE NULL DEFAULT NULL,
`tb_min_geschlecht` CHAR(1) NOT NULL DEFAULT '',
`tb_min_namensvorsatz` VARCHAR(20) NOT NULL DEFAULT '',
`tb_min_namenszusatz` VARCHAR(20) NOT NULL DEFAULT '',
`tb_min_titel` VARCHAR(20) NOT NULL DEFAULT '',
`tb_min_str` VARCHAR(50) NOT NULL DEFAULT '',
`tb_min_hausnr` VARCHAR(9) NOT NULL DEFAULT '',
`tb_min_lpo` VARCHAR(255) NOT NULL DEFAULT '',
`tb_min_land` VARCHAR(3) NOT NULL DEFAULT '',
`tb_min_plz` VARCHAR(10) NOT NULL DEFAULT '',
`tb_min_ort` VARCHAR(50) NOT NULL DEFAULT '',
`tb_min_an_zusatz` VARCHAR(255) NOT NULL DEFAULT '',
`tb_min_staat` VARCHAR(3) NOT NULL DEFAULT '',
`tb_min_tel` VARCHAR(30) NOT NULL DEFAULT '',
`tb_min_email` VARCHAR(40) NOT NULL DEFAULT '',
`tb_min_relative` INT(1) UNSIGNED NOT NULL DEFAULT '0',
`tb_k_vunr` VARCHAR(7) NOT NULL DEFAULT '',
`tb_k_vnr` VARCHAR(12) NOT NULL DEFAULT '',
`tb_k_pnr` VARCHAR(10) NOT NULL DEFAULT '',
`tb_iknr` INT(9) UNSIGNED NOT NULL DEFAULT '0',
`tb_stat_dat_aufn` DATE NULL DEFAULT NULL,
`tb_stat_dat_entl` DATE NULL DEFAULT NULL,
`tb_stat_tage` SMALLINT(5) UNSIGNED NOT NULL DEFAULT '0',
`tb_stat_klasse` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0',
`tb_stat_text_kz` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0',
`tb_stat_abzug_kz` CHAR(1) NOT NULL DEFAULT '',
`tb_dat_plan` DATE NULL DEFAULT NULL,
`tb_dat_plan_ext` DATE NULL DEFAULT NULL,
`tb_dat_start` DATETIME NULL DEFAULT NULL,
`tb_dat_end` DATETIME NULL DEFAULT NULL,
`tb_case_description` VARCHAR(60) NOT NULL DEFAULT '',
`tb_case_diag_code` VARCHAR(6) NOT NULL DEFAULT '',
`tb_case_diag_system` VARCHAR(6) NOT NULL DEFAULT '',
`tb_case_diag_type` VARCHAR(255) NOT NULL DEFAULT '',
`tb_case_diag_kind` CHAR(1) NOT NULL DEFAULT '',
`tb_case_diag_date` DATE NULL DEFAULT NULL,
`tb_case_diag_surety` CHAR(1) NOT NULL DEFAULT '',
`tb_case_diag_loc` CHAR(1) NOT NULL DEFAULT '',
`tb_rechnungstyp` CHAR(1) NOT NULL DEFAULT '',
`tb_prozentsatz` DECIMAL(5,2) NOT NULL DEFAULT '0.00',
`tb_waehrung` CHAR(3) NOT NULL DEFAULT '',
`tb_mwst_proz` DECIMAL(4,2) NOT NULL DEFAULT '0.00',
`tb_tax_val` DECIMAL(5,2) NOT NULL DEFAULT '0.00',
`tb_druck_kz` CHAR(1) NOT NULL DEFAULT '',
`tb_df_num_2` SMALLINT(6) NOT NULL DEFAULT '0',
`tb_mandant_id` VARCHAR(16) NOT NULL DEFAULT '',
`tb_zahlungsart` CHAR(1) NOT NULL DEFAULT '',
`tb_abschlag` CHAR(1) NOT NULL DEFAULT '',
`tb_no_dunning` TINYINT(1) NOT NULL DEFAULT '0',
`tb_mahntage` INT(11) NOT NULL DEFAULT '0',
`tb_info` VARCHAR(255) NOT NULL DEFAULT '',
`tb_text` MEDIUMTEXT NOT NULL,
`tb_changes` MEDIUMTEXT NOT NULL,
`tb_val_edi` MEDIUMTEXT NOT NULL,
`tb_val_cobol` MEDIUMTEXT NOT NULL,
`tb_rule_message` VARCHAR(255) NOT NULL DEFAULT '',
`tb_rule_info` VARCHAR(255) NOT NULL DEFAULT '',
`tb_rule_warning` VARCHAR(255) NOT NULL DEFAULT '',
`tb_rule_error` VARCHAR(255) NOT NULL DEFAULT '',
`tb_options` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0',
`tb_errcode` INT(11) NOT NULL DEFAULT '0',
`tb_isdeleted` TINYINT(1) NOT NULL DEFAULT '0',
`udat_id_create` INT(10) UNSIGNED NULL DEFAULT NULL,
`tb_cdt` DATETIME NOT NULL,
`udat_id_mod` INT(10) UNSIGNED NULL DEFAULT NULL,
`tb_mdt` DATETIME NOT NULL,
PRIMARY KEY (`tb_id`),
UNIQUE INDEX `idx_tbv_num_tbd_id_tb_rgnr_tmp` (`tbv_num`, `tbd_id`, `tb_rgnr_tmp`) USING BTREE,
INDEX `idx_tb_id_predecessor` (`tb_id_predecessor`),
INDEX `idx_tb_id_orig` (`tb_id_orig`),
INDEX `idx_if_id` (`if_id`),
INDEX `idx_tb_rgnr_tmp` (`tb_rgnr_tmp`),
INDEX `idx_tbd_id_mand_num_tb_condition` (`tbd_id`, `mand_num`, `tb_condition`),
INDEX `idx_tb_cust_anrede_tb_cust_vorname_tbd_id` (`tb_cust_anrede`, `tb_cust_vorname`, `tbd_id`),
INDEX `idx_tb_condition_ev_id_tbd_id_tb_isdeleted` (`tb_condition`, `ev_id`, `tbd_id`, `tb_isdeleted`),
INDEX `idx_tbt_id` (`tbt_id`)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB
AUTO_INCREMENT=1
;
----------------------
Create about 3000 rows.
Query all rows.