-
Priyanka Sangam authored
Fixes to handle timeouts on signals sent by mysqld through ndbapi to DBDICT. ndbd error inserts and fixes: Fixed crash in ndbd on ndbapi timeout. Connection to mysqld times out, so schema transaction is released, resulting in invalidation of schema transaction key. Then DBDICT fails to set up client request due to ndbapi timeout. On failure, DBDICT sends REF to self. REF handler for DBDICT attempts to find callback function based on lookup on transaction key. Assert fails since schema transaction key invalid. Removed assert and modified REF handler to skip callback instead of asserting if schema transaction key invalid. mysqld fixes: 1. Added and modified error checks so that timeout error detected and results in error return. 2. Added error insert to reduce timeout for dictionary signals ndbapi error inserts: Added error inserts in ndbapi to reduce dictionary signal timeout from 7 days to 1 second. ndbapi fixes: 1. Prevented timeout error code 4008 from being overwritten by 'not found' errors. 2. Mapped WST_WAIT_TIMEOUT state to timeout error 4008 for listing objects and forcing a GCP wait. ndbapi request IDs: Added unique request IDs to dictionary REQ signals as senderData. SenderData is copied to the REF or CONF in ndbd. So REF or CONF which is sent in reply to specific REQ should have same request ID in senderData. Added checks to verify that request ID in CONF/REF matches request ID sent in REQ. If not matching, CONF/REF discarded with warning.
Priyanka Sangam authoredFixes to handle timeouts on signals sent by mysqld through ndbapi to DBDICT. ndbd error inserts and fixes: Fixed crash in ndbd on ndbapi timeout. Connection to mysqld times out, so schema transaction is released, resulting in invalidation of schema transaction key. Then DBDICT fails to set up client request due to ndbapi timeout. On failure, DBDICT sends REF to self. REF handler for DBDICT attempts to find callback function based on lookup on transaction key. Assert fails since schema transaction key invalid. Removed assert and modified REF handler to skip callback instead of asserting if schema transaction key invalid. mysqld fixes: 1. Added and modified error checks so that timeout error detected and results in error return. 2. Added error insert to reduce timeout for dictionary signals ndbapi error inserts: Added error inserts in ndbapi to reduce dictionary signal timeout from 7 days to 1 second. ndbapi fixes: 1. Prevented timeout error code 4008 from being overwritten by 'not found' errors. 2. Mapped WST_WAIT_TIMEOUT state to timeout error 4008 for listing objects and forcing a GCP wait. ndbapi request IDs: Added unique request IDs to dictionary REQ signals as senderData. SenderData is copied to the REF or CONF in ndbd. So REF or CONF which is sent in reply to specific REQ should have same request ID in senderData. Added checks to verify that request ID in CONF/REF matches request ID sent in REQ. If not matching, CONF/REF discarded with warning.
Loading