mariadb/mysql-test/main/leaks.test
Monty 6a674c3142 MDEV-32476 LeakSanitizer errors in get_quick_select or Assertion ...
Problem was that JOIN_TAB::cleanup() was not run because
JOIN::top_join_tab_count was not set in case of early errors.

Fixed by setting JOIN::tab_join_tab_count when JOIN_TAB's are allocated.

Something that should eventually be fixed:
- Cleaning up JOIN_TAB's is now done in 3 different loops.
  JOIN_TAB::cleanup() is only doing a partial cleanup. Other cleanups
  are done outside of JOIN_TAB::cleanup().

The above should be fixed so that JOIN_TAB::cleanup() is freeing
everything related to it's own memory, including all its sub JOIN_ TAB's.
JOIN::cleanup() should only loop over all it's top JOIN_TAB's and call
JOIN_TAB::cleanup() on these.
This will greatly simplify and speedup the current code (as we now do some
cleanup's twice).
2023-10-19 16:17:01 +03:00

22 lines
562 B
Text

#
# Collection of small tests that finds leaks and does not fit in any other
# tests
#
--source include/have_innodb.inc
--echo #
--echo # MDEV-32476 LeakSanitizer errors in get_quick_select or
--echo # Assertion `status_var.local_memory_used == 0
--echo #
CREATE TABLE t1 (pk INT AUTO_INCREMENT, f INT, PRIMARY KEY (pk), KEY(f))
ENGINE=InnoDB;
INSERT INTO t1 VALUES (1,10),(2,20);
--error ER_TRUNCATED_WRONG_VALUE
INSERT INTO t1 (f) SELECT t2.f FROM t1 t2, t1 t3 WHERE t2.f = 10 AND t3.pk > 'foo';
DROP TABLE t1;
--echo #
--echo # End of 10.6 tests
--echo #