[MDEV-13153] Assertion `global_status_var.global_memory_used == 0 ' failed upon server restart with partitioned RocksDB table Created: 2017-06-22 Updated: 2017-07-28 Resolved: 2017-07-28 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Partitioning, Storage Engine - RocksDB |
| Affects Version/s: | 10.2 |
| Fix Version/s: | 10.2.8 |
| Type: | Bug | Priority: | Major |
| Reporter: | Elena Stepanova | Assignee: | Sergei Petrunia |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Description |
|
|
| Comments |
| Comment by Sergei Petrunia [ 2017-07-16 ] | |
|
If I use BIGINT in table definition
I get a bigger leak. | |
| Comment by Sergei Petrunia [ 2017-07-16 ] | |
|
Analysis: Ok ,the cause seems to be in ha_partition::change_partitions(). | |
| Comment by Sergei Petrunia [ 2017-07-16 ] | |
|
There are two possible solutions: The first one is easier to do but looks like a hack. | |
| Comment by Sergei Petrunia [ 2017-07-16 ] | |
|
Investigating how to do the second one ... fast_alter_partition_table() does partitioning DDL operation in several steps. Listing them in the order they are done: mysql_change_partitions/ ha_partition::change_partitions alter_close_table() mysql_rename_partitions() / ha_partition::rename_partitions() | |
| Comment by Sergei Petrunia [ 2017-07-16 ] | |
|
Looking at the above, I dont see where exactly ha_partition should delete its newly-created child partitions. The workflow is apparently tightly coupled with the SQL layer. (serg Any thoughts?) | |
| Comment by Sergei Golubchik [ 2017-07-18 ] | |
|
Could you do it from ha_partition::close() or from ha_partition::~ha_partition()? Both are called (in that order) after mysql_rename_partitions() at the end of fast_alter_partition_table(). | |
| Comment by Sergei Petrunia [ 2017-07-24 ] | |
|
serg, thanks for the reply! > Could you do it from ha_partition::close() Cannot do that from there, as I wrote above, alter_close_table() calls ha_partition->close(), and then ha_partition::rename_partitions() requires that newly created ha_xxx ojbects are still present. > or from ha_partition::~ha_partition()? This one seems to work, created a patch with this, now testing in buildbot. > Both are called (in that order) after mysql_rename_partitions() at the end of fast_alter_partition_table(). | |
| Comment by Sergei Petrunia [ 2017-07-24 ] | |
|
http://buildbot.askmonty.org/buildbot/grid?category=main&branch=bb-10.2-mdev13153 | |
| Comment by Sergei Petrunia [ 2017-07-24 ] | |
|
upstream MyRocks is not affected by this issue for some reason. |