diff options
author | unknown <brian@zim.tangent.org> | 2006-02-13 04:11:22 -0800 |
---|---|---|
committer | unknown <brian@zim.tangent.org> | 2006-02-13 04:11:22 -0800 |
commit | f62cc1e661b8b9ca195e733af0316512e8f14a8f (patch) | |
tree | dabe500d9857127b7770bfa3e207110ae6ac46fe /sql/ha_archive.h | |
parent | 4e8f2a12bc0145224af14138aee964902b88648e (diff) | |
download | mariadb-git-f62cc1e661b8b9ca195e733af0316512e8f14a8f.tar.gz |
Discoved while debugging in 5.1 that there was a bug where a certain crash could lead to two problems. 1) An additional share in memory that was allocated but did not have the correct use_count (so it would never be fulled deleted). Also discovered that a thread that called repair would write new rows, but would not see them. All other threads were ok, and the data was fine, but the thread doing the repair was unable to see the new rows.
sql/ha_archive.cc:
Fix for leaked share and hidden rows.
sql/ha_archive.h:
Change in method
Diffstat (limited to 'sql/ha_archive.h')
-rw-r--r-- | sql/ha_archive.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sql/ha_archive.h b/sql/ha_archive.h index 56a4b9d1e27..0fa5cdc56ca 100644 --- a/sql/ha_archive.h +++ b/sql/ha_archive.h @@ -85,7 +85,7 @@ public: int get_row(gzFile file_to_read, byte *buf); int read_meta_file(File meta_file, ha_rows *rows); int write_meta_file(File meta_file, ha_rows rows, bool dirty); - ARCHIVE_SHARE *get_share(const char *table_name, TABLE *table); + ARCHIVE_SHARE *get_share(const char *table_name, TABLE *table, int *rc); int free_share(ARCHIVE_SHARE *share); bool auto_repair() const { return 1; } // For the moment we just do this int read_data_header(gzFile file_to_read); |