mirror of
https://github.com/MariaDB/server.git
synced 2025-07-24 12:14:59 +02:00
![]() A spider_conn may outlive its associated ha_spider (in the field queued_ping_spider) used for connecting to and pinging the data node (a call to spider_db_ping(), guarded by the boolean field queued_ping). In a call to ha_spider::close() (which is often preceded with the deletion of the ha_spider itself), many cleanups happen, including freeing the associated spider_share, which is used by the spider_conn in spider_db_ping. Therefore it is necessary to reset both the queued_ping_spider and queued_ping fields, so that any further spider interaction with the data node will not trigger the call using the ha_spider including its freed spider_share. Also out of caution added an assert and internal error in case a connection has not been established (the db_conn field of type MYSQL * is NULL), and attempt to connect is skipped because both queued_connect and queued_ping are false. Note that this unlikely (if not impossible) scenario would not be a regression caused by this change, as it strictly falls under the scenario of this bug. |
||
---|---|---|
.. | ||
archive | ||
blackhole | ||
cassandra | ||
columnstore | ||
connect | ||
csv | ||
example | ||
federated | ||
federatedx | ||
heap | ||
innobase | ||
maria | ||
mroonga | ||
myisam | ||
myisammrg | ||
oqgraph | ||
perfschema | ||
rocksdb | ||
sequence | ||
sphinx | ||
spider | ||
test_sql_discovery | ||
tokudb |