Commit 9cd15740 authored by unknown's avatar unknown
Browse files

Merge gni@bk-internal.mysql.com:/home/bk/mysql-4.1

into  ts3-168.ts.cn.tlan:/home/ngb/mysql/mysql-4.1/mysql-4.1-ndb

parents 7c9c5409 4db3e9e1
Loading
Loading
Loading
Loading
+15 −3
Original line number Diff line number Diff line
@@ -123,12 +123,24 @@ bool
File_class::close()
{
  bool rc = true;
  int retval = 0;

  if (m_file != NULL)
  { 
    ::fflush(m_file);
    rc = (::fclose(m_file) == 0 ? true : false);
    m_file = NULL; // Try again?
    retval = ::fclose(m_file);
    while ( (retval != 0) && (errno == EINTR) ){
      retval = ::fclose(m_file);
    }
    if( retval == 0){
      rc = true;
    }
    else {
      rc = false;
      ndbout_c("ERROR: Close file error in File.cpp for %s",strerror(errno));
    }
  }  
  m_file = NULL;  

  return rc;
}
+8 −6
Original line number Diff line number Diff line
@@ -658,24 +658,26 @@ SimulatedBlock::allocRecord(const char * type, size_t s, size_t n, bool clear)

  void * p = NULL;
  size_t size = n*s;
  Uint64 real_size = (Uint64)((Uint64)n)*((Uint64)s);
  refresh_watch_dog(); 
  if (size > 0){
  if (real_size > 0){
#ifdef VM_TRACE_MEM
    ndbout_c("%s::allocRecord(%s, %u, %u) = %u bytes", 
    ndbout_c("%s::allocRecord(%s, %u, %u) = %llu bytes", 
	     getBlockName(number()), 
	     type,
	     s,
	     n,
	     size);
	     real_size);
#endif
    if( real_size == (Uint64)size )
      p = NdbMem_Allocate(size);
    if (p == NULL){
      char buf1[255];
      char buf2[255];
      BaseString::snprintf(buf1, sizeof(buf1), "%s could not allocate memory for %s", 
	       getBlockName(number()), type);
      BaseString::snprintf(buf2, sizeof(buf2), "Requested: %ux%u = %u bytes", 
	       (Uint32)s, (Uint32)n, (Uint32)size);
      BaseString::snprintf(buf2, sizeof(buf2), "Requested: %ux%u = %llu bytes", 
	       (Uint32)s, (Uint32)n, (Uint64)real_size);
      ERROR_SET(fatal, ERR_MEMALLOC, buf1, buf2);
    }