Commit 91873163 authored by heikki@donna.mysql.fi's avatar heikki@donna.mysql.fi
Browse files

sync0sync.c Do not use in-line assembly in GCC

srv0start.c	Eliminate a deadlock of threads at startup
row0mysql.c	Several bug fixes
row0umod.c	Several bug fixes
row0upd.c	Several bug fixes
os0file.c	Revert back to fsync as default flush method
log0recv.c	Several bug fixes
ibuf0ibuf.c	Several bug fixes
fsp0fsp.c	Several bug fixes
trx0undo.c	Put some assertions to uncover possible bugs
dict0boot.c	Several bug fixes
parent fbd72506
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -313,6 +313,11 @@ dict_boot(void)

	mtr_commit(&mtr);
	/*-------------------------*/

	/* Initialize the insert buffer table and index for each tablespace */

	ibuf_init_at_db_start();

	/* Load definitions of other indexes on system tables */

	dict_load_sys_table(dict_sys->sys_tables);
@@ -320,10 +325,6 @@ dict_boot(void)
	dict_load_sys_table(dict_sys->sys_indexes);
	dict_load_sys_table(dict_sys->sys_fields);
	
	/* Initialize the insert buffer table and index for each tablespace */

	ibuf_init_at_db_start();

	mutex_exit(&(dict_sys->mutex));
}

+12 −0
Original line number Diff line number Diff line
@@ -2536,6 +2536,10 @@ fseg_free_page(
	seg_inode = fseg_inode_get(seg_header, mtr);

	fseg_free_page_low(seg_inode, space, page, mtr);

#ifdef UNIV_DEBUG_FILE_ACCESSES
	buf_page_set_file_page_was_freed(space, page);
#endif
}

/**************************************************************************
@@ -2599,6 +2603,14 @@ fseg_free_extent(
	}

	fsp_free_extent(space, page, mtr);

#ifdef UNIV_DEBUG_FILE_ACCESSES
	for (i = 0; i < FSP_EXTENT_SIZE; i++) {

	        buf_page_set_file_page_was_freed(space,
						first_page_in_extent + i);
	}
#endif
}

/**************************************************************************
+8 −0
Original line number Diff line number Diff line
@@ -1382,6 +1382,9 @@ ibuf_remove_free_page(
	
	fseg_free_page(header_page + IBUF_HEADER + IBUF_TREE_SEG_HEADER,
							space, page_no, &mtr);
#ifdef UNIV_DEBUG_FILE_ACCESSES
	buf_page_reset_file_page_was_freed(space, page_no);
#endif
	ibuf_enter();
							
	mutex_enter(&ibuf_mutex);
@@ -1413,6 +1416,9 @@ ibuf_remove_free_page(

	ibuf_bitmap_page_set_bits(bitmap_page, page_no, IBUF_BITMAP_IBUF,
								FALSE, &mtr);
#ifdef UNIV_DEBUG_FILE_ACCESSES
	buf_page_set_file_page_was_freed(space, page_no);
#endif
	mtr_commit(&mtr);

	mutex_exit(&ibuf_mutex);
@@ -2431,6 +2437,8 @@ ibuf_merge_or_delete_for_page(

		block = buf_block_align(page);
		rw_lock_x_lock_move_ownership(&(block->lock));
		
		ut_a(fil_page_get_type(page) == FIL_PAGE_INDEX);
	}

	n_inserts = 0;
+3 −3
Original line number Diff line number Diff line
@@ -944,9 +944,9 @@ recv_read_in_area(
	}

	buf_read_recv_pages(FALSE, space, page_nos, n);

	/* printf("Recv pages at %lu n %lu\n", page_nos[0], n); */
	
	/*
        printf("Recv pages at %lu n %lu\n", page_nos[0], n);
	*/
	return(n);
}
			
+6 −0
Original line number Diff line number Diff line
@@ -11,6 +11,7 @@ Created 10/21/1995 Heikki Tuuri
#include "ut0mem.h"
#include "srv0srv.h"

#undef HAVE_FDATASYNC

#ifdef POSIX_ASYNC_IO
/* We assume in this case that the OS has standard Posix aio (at least SunOS
@@ -562,6 +563,11 @@ os_file_flush(
		return(TRUE);
	}
	
	fprintf(stderr,
		"InnoDB: Error: the OS said file flush did not succeed\n");

	os_file_handle_error(file, NULL);

	return(FALSE);
#endif
}
Loading