1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-08 11:22:35 +03:00

Fixing bug when using alter table on locked maria table

Reset history when we reenable logging for transactional tables (safety fix)

mysql-test/r/maria2.result:
  New results
mysql-test/t/maria2.test:
  Added test case for alter table on locked maria table
mysql-test/valgrind.supp:
  Added suppression rules for warnings in libc / libld
storage/maria/ma_extra.c:
  Remove table from trnman list if we are going to drop or rename it; We don't want not existing shares in the list when we do commit!
storage/maria/ma_recovery.c:
  Ensure that info->state don't point to history event when we disable logging for a table;  This is needed as alter table will first do commit and then unlock, which would cause us to access a non existing object when we reenable logging.
  Reset history when we reenable logging (safety fix)
storage/maria/ma_state.c:
  Do less work when share->now_transactional is not set. (Safety fix)
  Added function to remove shares to be deleted from trnman->used_tables
  Added function to reset history to current context
storage/maria/ma_state.h:
  Prototypes for new function
This commit is contained in:
Michael Widenius
2008-07-12 17:14:28 +03:00
parent 7f02282404
commit 50fa1eb8b5
7 changed files with 140 additions and 21 deletions

View File

@@ -27,7 +27,7 @@
pthread allocate_tls memory loss
Memcheck:Leak
fun:calloc
obj:/lib64/ld*.so
obj:/lib*/ld*.so
fun:_dl_allocate_tls
fun:pthread_create*
}
@@ -388,40 +388,58 @@
}
{
dlopen / ptread_cancel_init memory loss on Suse Linux 10.3 64 bit
dlopen / ptread_cancel_init memory loss on Suse Linux 10.3 32/64 bit
Memcheck:Leak
fun:*alloc
obj:/lib64/ld-*.so
obj:/lib64/ld-*.so
obj:/lib64/ld-*.so
obj:/lib64/ld-*.so
obj:/lib64/ld-*.so
obj:/lib64/ld-*.so
obj:/lib64/libc-*.so
obj:/lib64/ld-*.so
obj:/lib64/libc-*.so
obj:/lib*/ld-*.so
obj:/lib*/ld-*.so
obj:/lib*/ld-*.so
obj:/lib*/ld-*.so
obj:/lib*/ld-*.so
obj:/lib*/ld-*.so
obj:/lib*/libc-*.so
obj:/lib*/ld-*.so
obj:/lib*/libc-*.so
fun:__libc_dlopen_mode
fun:pthread_cancel_init
fun:_Unwind_ForcedUnwind
}
{
dlopen / ptread_cancel_init memory loss on Suse Linux 10.3 64 bit
dlopen / ptread_cancel_init memory loss on Suse Linux 10.3 32/64 bit
Memcheck:Leak
fun:*alloc
obj:/lib64/ld-*.so
obj:/lib64/ld-*.so
obj:/lib64/ld-*.so
obj:/lib64/ld-*.so
obj:/lib64/libc-*.so
obj:/lib64/ld-*.so
obj:/lib64/libc-*.so
obj:/lib*/ld-*.so
obj:/lib*/ld-*.so
obj:/lib*/ld-*.so
obj:/lib*/ld-*.so
obj:/lib*/libc-*.so
obj:/lib*/ld-*.so
obj:/lib*/libc-*.so
fun:__libc_dlopen_mode
fun:pthread_cancel_init
fun:_Unwind_ForcedUnwind
}
#
# Reading wrong addresses on SuSe Linux 10.3 32 bit
#
{
Reading wrong data in libc_dlopen
Memcheck:Addr4
obj:/lib*/ld-*.so
obj:/lib*/ld-*.so
obj:/lib*/ld-*.so
obj:/lib*/ld-*.so
obj:/lib*/ld-*.so
obj:/lib*/ld-*.so
obj:/lib*/libc-*.so
obj:/lib*/ld-*.so
obj:/lib*/libc-*.so
fun:__libc_dlopen_mode
fun:pthread_cancel_init
}
#
# These seem to be libc threading stuff, not related to MySQL code (allocations