List:Commits« Previous MessageNext Message »
From:Jonas Oreland Date:November 17 2008 9:03pm
Subject:bzr push into mysql-5.1 branch (jonas:3075 to 3077)
View as plain text  
 3077 Jonas Oreland	2008-11-17
      ndb - win32 (my_socket_win32.h) - fix error handling
        causing spurious "node failures" in mtr
modified:
  include/my_socket_win32.h

 3076 Jonas Oreland	2008-11-17
      ndb - win32 - fix partial read also with pread
modified:
  storage/ndb/src/kernel/blocks/ndbfs/Win32AsyncFile.cpp

 3075 Jonas Oreland	2008-11-17
      ndb - enable pread/pwrite for windows
modified:
  storage/ndb/src/kernel/blocks/ndbfs/Win32AsyncFile.cpp

=== modified file 'include/my_socket_win32.h'
--- a/include/my_socket_win32.h	2008-08-21 12:02:12 +0000
+++ b/include/my_socket_win32.h	2008-11-17 21:00:50 +0000
@@ -53,13 +53,19 @@ static inline int my_socket_nfds(my_sock
 
 static inline size_t my_recv(my_socket s, char* buf, size_t len, int flags)
 {
-  return recv(s.s, buf, len, flags);
+  int ret= recv(s.s, buf, len, flags);
+  if (ret == SOCKET_ERROR)
+    return -1;
+  return ret;
 }
 
 static inline
 size_t my_send(my_socket s, const char* buf, size_t len, int flags)
 {
-  return send(s.s, buf, len, flags);
+  int ret= send(s.s, buf, len, flags);
+  if (ret == SOCKET_ERROR)
+    return -1;
+  return ret;
 }
 
 static inline int my_socket_reuseaddr(my_socket s, int enable)
@@ -180,7 +186,8 @@ static inline ssize_t my_socket_readv(my
                                       int iovcnt)
 {
   DWORD rv=0;
-  WSARecv(s.s,(LPWSABUF)iov,iovcnt,&rv,0,0,0);
+  if (WSARecv(s.s,(LPWSABUF)iov,iovcnt,&rv,0,0,0) == SOCKET_ERROR)
+    return -1;
   return rv;
 }
 
@@ -188,7 +195,8 @@ static inline ssize_t my_socket_writev(m
                                        int iovcnt)
 {
   DWORD rv=0;
-  WSASend(s.s,(LPWSABUF)iov,iovcnt,&rv,0,0,0);
+  if (WSASend(s.s,(LPWSABUF)iov,iovcnt,&rv,0,0,0) == SOCKET_ERROR)
+    return -1;
   return rv;
 }
 

=== modified file 'storage/ndb/src/kernel/blocks/ndbfs/Win32AsyncFile.cpp'
--- a/storage/ndb/src/kernel/blocks/ndbfs/Win32AsyncFile.cpp	2008-11-17 14:42:22 +0000
+++ b/storage/ndb/src/kernel/blocks/ndbfs/Win32AsyncFile.cpp	2008-11-17 20:58:11 +0000
@@ -225,7 +225,12 @@ Win32AsyncFile::readBuffer(Request* req,
                           &dwBytesRead,
                           &ov);
     if(!bRead){
-      return GetLastError();
+      int err = GetLastError();
+      if (err == ERROR_HANDLE_EOF && req->action == Request::readPartial)
+      {
+        return 0;
+      }
+      return err;
     }
     bytes_read = dwBytesRead;
 

Thread
bzr push into mysql-5.1 branch (jonas:3075 to 3077) Jonas Oreland17 Nov