mirror of
https://github.com/MariaDB/server.git
synced 2025-02-01 03:21:53 +01:00
Bug #13819630 ARCHIVE TABLE WITH 1000+ PARTITIONS CRASHES SERVER
ON "DROP TABLE" In the function ha_archive::write_row(), there is an error code path that exits the function without releasing the mutex that was acquired earlier. rb#1743 approved by ramil.
This commit is contained in:
parent
7b145111f1
commit
090ea1f849
1 changed files with 7 additions and 6 deletions
|
@ -898,10 +898,11 @@ int ha_archive::write_row(uchar *buf)
|
|||
table->timestamp_field->set_time();
|
||||
mysql_mutex_lock(&share->mutex);
|
||||
|
||||
if (!share->archive_write_open)
|
||||
if (init_archive_writer())
|
||||
DBUG_RETURN(HA_ERR_CRASHED_ON_USAGE);
|
||||
|
||||
if (!share->archive_write_open && init_archive_writer())
|
||||
{
|
||||
rc= HA_ERR_CRASHED_ON_USAGE;
|
||||
goto error;
|
||||
}
|
||||
|
||||
if (table->next_number_field && record == table->record[0])
|
||||
{
|
||||
|
@ -980,8 +981,8 @@ int ha_archive::write_row(uchar *buf)
|
|||
rc= real_write_row(buf, &(share->archive_write));
|
||||
error:
|
||||
mysql_mutex_unlock(&share->mutex);
|
||||
my_free(read_buf);
|
||||
|
||||
if (read_buf)
|
||||
my_free(read_buf);
|
||||
DBUG_RETURN(rc);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue