MySQL Lists are EOL. Please join:

List:Internals« Previous MessageNext Message »
From:monty Date:November 2 2003 1:55pm
Subject:bk commit into 4.0 tree (monty:1.1606)
View as plain text  
Below is the list of changes that have just been committed into a local
4.0 repository of monty. When monty does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://www.mysql.com/doc/I/n/Installing_source_tree.html

ChangeSet
  1.1606 03/11/02 15:55:02 monty@stripped +15 -0
  Call my_sync() after all data is written to .frm file
  Added my_sync() to mysys which will do fsync/fdatasync/_commit() on a file.

  BitKeeper/etc/logging_ok
    1.294 03/11/02 15:55:02 monty@stripped +1 -0
    Logging to logging@stripped accepted

  mysys/my_sync.c
    1.1 03/11/02 15:54:56 monty@stripped +60 -0

  sql/unireg.cc
    1.17 03/11/02 15:54:56 monty@stripped +6 -3
    Call my_sync() after all data is written to .frm file

  mysys/thr_alarm.c
    1.40 03/11/02 15:54:56 monty@stripped +7 -0
    Fix for link error on windows

  mysys/my_sync.c
    1.0 03/11/02 15:54:56 monty@stripped +0 -0
    BitKeeper file /my/mysql-4.0/mysys/my_sync.c

  mysys/my_symlink.c
    1.5 03/11/02 15:54:56 monty@stripped +2 -1
    Removed compiler warning

  mysys/errors.c
    1.13 03/11/02 15:54:56 monty@stripped +5 -3
    Added my_sync()

  mysys/Makefile.am
    1.45 03/11/02 15:54:56 monty@stripped +1 -1
    Added my_sync.c

  mysql-test/mysql-test-run.sh
    1.185 03/11/02 15:54:56 monty@stripped +3 -0
    Added option --valgrind-all

  myisam/mi_locking.c
    1.29 03/11/02 15:54:55 monty@stripped +4 -16
    Added my_sync()

  myisam/mi_extra.c
    1.33 03/11/02 15:54:55 monty@stripped +4 -16
    Added my_sync()

  isam/extra.c
    1.11 03/11/02 15:54:55 monty@stripped +4 -6
    Added my_sync()

  include/mysys_err.h
    1.10 03/11/02 15:54:55 monty@stripped +2 -1
    Added my_sync()

  include/my_sys.h
    1.102 03/11/02 15:54:55 monty@stripped +1 -0
    Added my_sync()

  configure.in
    1.290 03/11/02 15:54:55 monty@stripped +1 -1
    Added testing of fsync and fdatasync

  VC++Files/mysys/mysys.dsp
    1.9 03/11/02 15:54:55 monty@stripped +4 -0
    Added my_sync.c

# This is a BitKeeper patch.  What follows are the unified diffs for the
# set of deltas contained in the patch.  The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User:	monty
# Host:	narttu.mysql.fi
# Root:	/my/mysql-4.0

--- 1.289/configure.in	Tue Oct 21 19:41:17 2003
+++ 1.290/configure.in	Sun Nov  2 15:54:55 2003
@@ -1817,7 +1817,7 @@
  pthread_attr_create pthread_getsequence_np pthread_attr_setstacksize \
  pthread_attr_getstacksize \
  pthread_condattr_create rwlock_init pthread_rwlock_rdlock \
- fchmod getpass getpassphrase initgroups mlockall)
+ fsync fdatasync fchmod getpass getpassphrase initgroups mlockall)
 
 CFLAGS="$ORG_CFLAGS"
 

--- 1.101/include/my_sys.h	Wed Aug 27 19:22:12 2003
+++ 1.102/include/my_sys.h	Sun Nov  2 15:54:55 2003
@@ -566,6 +566,7 @@
 extern FILE *my_fdopen(File Filedes,const char *name, int Flags,myf MyFlags);
 extern int my_fclose(FILE *fd,myf MyFlags);
 extern int my_chsize(File fd,my_off_t newlength, int filler, myf MyFlags);
+extern int my_sync(File fd, myf my_flags);
 extern int my_error _VARARGS((int nr,myf MyFlags, ...));
 extern int my_printf_error _VARARGS((uint my_err, const char *format,
 				     myf MyFlags, ...)

--- 1.9/include/mysys_err.h	Wed May 29 15:07:26 2002
+++ 1.10/include/mysys_err.h	Sun Nov  2 15:54:55 2003
@@ -21,7 +21,7 @@
 #endif
 
 #define GLOB		0	/* Error maps */
-#define GLOBERRS	27	/* Max number of error messages in map's */
+#define GLOBERRS	28	/* Max number of error messages in map's */
 #define EE(X)	globerrs[ X ]	/* Defines to add error to right map */
 
 extern const char * NEAR globerrs[];	/* my_error_messages is here */
@@ -53,6 +53,7 @@
 #define EE_CANT_READLINK	24
 #define EE_CANT_SYMLINK		25
 #define EE_REALPATH		26
+#define EE_SYNC			27
 
   /* exit codes for all MySQL programs */
 

--- 1.10/isam/extra.c	Fri Nov 29 16:40:15 2002
+++ 1.11/isam/extra.c	Sun Nov  2 15:54:55 2003
@@ -250,17 +250,15 @@
     pthread_mutex_unlock(&THR_LOCK_isam);
     break;
   case HA_EXTRA_FLUSH:
-#ifdef __WIN__
     if (info->s->not_flushed)
     {
       info->s->not_flushed=0;
-      if (_commit(info->s->kfile))
-	error=errno;
-      if (_commit(info->dfile))
-	error=errno;
+      if (my_sync(info->s->kfile, MYF(0)))
+	error= my_errno;
+      if (my_sync(info->dfile, MYF(0)))
+	error= my_errno;
     }
     break;
-#endif
   case HA_EXTRA_NORMAL:				/* Theese isn't in use */
   case HA_EXTRA_QUICK:
   case HA_EXTRA_KEY_CACHE:

--- 1.32/myisam/mi_extra.c	Tue Jul  8 23:58:00 2003
+++ 1.33/myisam/mi_extra.c	Sun Nov  2 15:54:55 2003
@@ -336,22 +336,10 @@
     if (share->not_flushed)
     {
       share->not_flushed=0;
-#if defined(__WIN__)
-      if (_commit(share->kfile))
-	error=errno;
-      if (_commit(info->dfile))
-	error=errno;
-#elif defined(HAVE_FDATASYNC)
-      if (fdatasync(share->kfile))
-	error=errno;
-      if (fdatasync(share->dfile))
-	error=errno;
-#elif defined(HAVE_FSYNC)
-      if ( fsync(share->kfile))
-	error=errno;
-      if (fsync(share->dfile))
-	error=errno;
-#endif
+      if (my_sync(share->kfile, MYF(0)))
+	error= my_errno;
+      if (my_sync(info->dfile, MYF(0)))
+	error= my_errno;
       if (error)
       {
 	share->changed=1;

--- 1.28/myisam/mi_locking.c	Fri Sep  5 06:42:52 2003
+++ 1.29/myisam/mi_locking.c	Sun Nov  2 15:54:55 2003
@@ -88,22 +88,10 @@
 	  share->changed=0;
 	  if (myisam_flush)
 	  {
-#if defined(__WIN__)
-	    if (_commit(share->kfile))
-	      error=errno;
-	    if (_commit(info->dfile))
-	      error=errno;
-#elif defined(HAVE_FDATASYNC)
-	    if (fdatasync(share->kfile))
-	      error=errno;
-	    if (fdatasync(share->dfile))
-	      error=errno;
-#elif defined(HAVE_FSYNC)
-	    if (fsync(share->kfile))
-	      error=errno;
-	    if (fsync(share->dfile))
-	      error=errno;
-#endif
+	    if (my_sync(share->kfile, MYF(0)))
+	      error= my_errno;
+	    if (my_sync(info->dfile, MYF(0)))
+	      error= my_errno;
 	  }
 	  else
 	    share->not_flushed=1;

--- 1.184/mysql-test/mysql-test-run.sh	Thu Oct 30 17:12:16 2003
+++ 1.185/mysql-test/mysql-test-run.sh	Sun Nov  2 15:54:56 2003
@@ -353,6 +353,9 @@
       TMP=`$ECHO "$1" | $SED -e "s;--valgrind-options=;;"`
       VALGRIND="$VALGRIND $TMP"
       ;;
+    --valgrind-all)
+      VALGRIND="$VALGRIND -v --show-reachable=yes"
+      ;;
     --skip-*)
       EXTRA_MASTER_MYSQLD_OPT="$EXTRA_MASTER_MYSQLD_OPT $1"
       EXTRA_SLAVE_MYSQLD_OPT="$EXTRA_SLAVE_MYSQLD_OPT $1"

--- 1.44/mysys/Makefile.am	Tue Jan 28 08:38:21 2003
+++ 1.45/mysys/Makefile.am	Sun Nov  2 15:54:56 2003
@@ -47,7 +47,7 @@
 			my_delete.c my_rename.c my_redel.c my_tempnam.c \
 			my_chsize.c my_lread.c my_lwrite.c my_clock.c \
 			my_quick.c my_lockmem.c my_static.c \
-			my_getopt.c my_mkdir.c \
+			my_sync.c my_getopt.c my_mkdir.c \
 			default.c my_compress.c checksum.c raid.cc \
 			my_net.c my_semaphore.c my_port.c  my_sleep.c \
 			my_vsnprintf.c charset.c my_bitmap.c my_bit.c md5.c \

--- 1.12/mysys/errors.c	Thu Dec  6 14:10:41 2001
+++ 1.13/mysys/errors.c	Sun Nov  2 15:54:56 2003
@@ -48,6 +48,7 @@
   "Can't read value for symlink '%s' (Error %d)",
   "Can't create symlink '%s' pointing at '%s' (Error %d)",
   "Error on realpath() on '%s' (Error %d)",
+  "Can't sync file '%s' to disk (Errcode: %d)",
 };
 
 void init_glob_errs(void)
@@ -84,8 +85,9 @@
   EE(EE_CANT_MKDIR)	="Can't create directory '%s' (Errcode: %d)";
   EE(EE_UNKNOWN_CHARSET)= "Character set is not a compiled character set and is not specified in the %s file";
   EE(EE_OUT_OF_FILERESOURCES)="Out of resources when opening file '%s' (Errcode: %d)";
-  EE(EE_CANT_READLINK)="Can't read value for symlink '%s' (Error %d)";
-  EE(EE_CANT_SYMLINK)="Can't create symlink '%s' pointing at '%s' (Error %d)";
-  EE(EE_REALPATH)="Error on realpath() on '%s' (Error %d)";
+  EE(EE_CANT_READLINK)=	"Can't read value for symlink '%s' (Error %d)";
+  EE(EE_CANT_SYMLINK)=	"Can't create symlink '%s' pointing at '%s' (Error %d)";
+  EE(EE_REALPATH)=	"Error on realpath() on '%s' (Error %d)";
+  EE(EE_SYNC)=		"Can't sync file '%s' to disk (Errcode: %d)";
 }
 #endif

--- 1.39/mysys/thr_alarm.c	Wed Oct 15 16:55:21 2003
+++ 1.40/mysys/thr_alarm.c	Sun Nov  2 15:54:56 2003
@@ -714,6 +714,9 @@
   bzero((char*) info, sizeof(*info));
 }
 
+void resize_thr_alarm(uint max_alarms)
+{
+}
 
 /*****************************************************************************
   thr_alarm for win95
@@ -791,6 +794,10 @@
 void thr_alarm_info(ALARM_INFO *info)
 {
   bzero((char*) info, sizeof(*info));
+}
+
+void resize_thr_alarm(uint max_alarms)
+{
 }
 
 #endif /* __WIN__ */

--- 1.16/sql/unireg.cc	Tue Dec  3 13:08:22 2002
+++ 1.17/sql/unireg.cc	Sun Nov  2 15:54:56 2003
@@ -150,16 +150,19 @@
 
   my_free((gptr) screen_buff,MYF(0));
   my_afree((gptr) keybuff);
-  VOID(my_close(file,MYF(MY_WME)));
-  if (ha_create_table(file_name,create_info,0))
+  if (my_sync(file, MYF(MY_WME)))
     goto err2;
+  if (my_close(file,MYF(MY_WME)) ||
+      ha_create_table(file_name,create_info,0))
+    goto err3;
   DBUG_RETURN(0);
 
 err:
   my_free((gptr) screen_buff,MYF(0));
   my_afree((gptr) keybuff);
+err2:
   VOID(my_close(file,MYF(MY_WME)));
- err2:
+err3:
   my_delete(file_name,MYF(0));
   DBUG_RETURN(1);
 } /* rea_create_table */

--- 1.293/BitKeeper/etc/logging_ok	Thu Oct 30 11:25:15 2003
+++ 1.294/BitKeeper/etc/logging_ok	Sun Nov  2 15:55:02 2003
@@ -66,6 +66,7 @@
 monty@mashka.(none)
 monty@stripped
 monty@stripped
+monty@stripped
 monty@narttu.
 monty@stripped
 monty@rescue.

--- 1.8/VC++Files/mysys/mysys.dsp	Mon Aug 25 14:27:30 2003
+++ 1.9/VC++Files/mysys/mysys.dsp	Sun Nov  2 15:54:55 2003
@@ -426,6 +426,10 @@
 # End Source File
 # Begin Source File
 
+SOURCE=.\my_sync.c
+# End Source File
+# Begin Source File
+
 SOURCE=.\my_tempnam.c
 # End Source File
 # Begin Source File

--- 1.4/mysys/my_symlink.c	Thu Sep 26 10:20:47 2002
+++ 1.5/mysys/my_symlink.c	Sun Nov  2 15:54:56 2003
@@ -103,7 +103,8 @@
 #define BUFF_LEN FN_LEN
 #endif
 
-int my_realpath(char *to, const char *filename, myf MyFlags)
+int my_realpath(char *to, const char *filename,
+		myf MyFlags __attribute__((unused)))
 {
 #if defined(HAVE_REALPATH) && !defined(HAVE_purify) && !defined(HAVE_BROKEN_REALPATH)
   int result=0;
--- New file ---
+++ mysys/my_sync.c	03/11/02 15:54:56
/* Copyright (C) 2003 MySQL AB

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2 of the License, or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */

#include "mysys_priv.h"
#include "mysys_err.h"
#include <errno.h>

/*
  Sync data in file to disk

  SYNOPSIS
    my_sync()
    fd			File descritor to sync
    my_flags		Flags (now only MY_WME is supported)

  NOTE
    If file system supports its, only file data is synced, not inode date

  RETURN
    0 ok
    -1 error
*/

int my_sync(File fd, myf my_flags)
{
  int res;
  DBUG_ENTER("my_sync");
  DBUG_PRINT("my",("Fd: %d  my_flags: %d", fd, my_flags));

#if defined(HAVE_FDATASYNC)
  res= fdatasync(fd);
#elif defined(HAVE_FSYNC)
  res=fsync(fd);
#elif defined(__WIN__)
    res= _commit(fd);
#else
  res= 0;					/* No sync (strange OS) */
#endif
  if (res)
  {
    if (!(my_errno= errno))
      my_errno= -1;				/* Unknown error */
    if (my_flags & MY_WME)
      my_error(EE_SYNC, MYF(ME_BELL+ME_WAITTANG), my_filename(fd), my_errno);
  }
  DBUG_RETURN(res);
} /* my_read */

Thread
bk commit into 4.0 tree (monty:1.1606)monty2 Nov