MySQL Lists are EOL. Please join:

List:Commits« Previous MessageNext Message »
From:Sergey Vojtovich Date:February 26 2010 9:04am
Subject:bzr commit into mysql-5.1-bugteam branch (svoj:3364) Bug#50691
View as plain text  
#At file:///home/svoj/devel/innodb-snapshots/mysql-5.1-bugteam/ based on revid:svoj@stripped

 3364 Sergey Vojtovich	2010-02-26
      Applying InnoDB snapshot, fixes BUG#50691
      
      Detailed revision comments:
      
      r6669 | jyang | 2010-02-11 12:24:19 +0200 (Thu, 11 Feb 2010) | 7 lines
      branches/5.1: Fix bug #50691, AIX implementation of readdir_r
      causes InnoDB errors. readdir_r() returns an non-NULL value
      in the case of reaching the end of a directory. It should
      not be treated as an error return.
      
      rb://238 approved by Marko

    modified:
      storage/innobase/os/os0file.c
=== modified file 'storage/innobase/os/os0file.c'
--- a/storage/innobase/os/os0file.c	2009-11-30 08:40:31 +0000
+++ b/storage/innobase/os/os0file.c	2010-02-26 09:04:24 +0000
@@ -759,7 +759,15 @@ next_file:
 #ifdef HAVE_READDIR_R
 	ret = readdir_r(dir, (struct dirent*)dirent_buf, &ent);
 
-	if (ret != 0) {
+	if (ret != 0
+#ifdef UNIV_AIX
+	    /* On AIX, only if we got non-NULL 'ent' (result) value and
+	    a non-zero 'ret' (return) value, it indicates a failed
+	    readdir_r() call. An NULL 'ent' with an non-zero 'ret'
+	    would indicate the "end of the directory" is reached. */
+	    && ent != NULL
+#endif
+	   ) {
 		fprintf(stderr,
 			"InnoDB: cannot read directory %s, error %lu\n",
 			dirname, (ulong)ret);


Attachment: [text/bzr-bundle] bzr/svoj@sun.com-20100226090424-chjo1i6hwbhjnmaf.bundle
Thread
bzr commit into mysql-5.1-bugteam branch (svoj:3364) Bug#50691Sergey Vojtovich26 Feb