delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2008/11/13/16:59:52

X-Recipient: archive-cygwin AT delorie DOT com
X-Spam-Check-By: sourceware.org
Message-ID: <BAY109-DAV7DDBCD6C7DDEE71666778CF170@phx.gbl>
X-Sender: robbosch AT msn DOT com
From: "Rob Bosch" <robbosch AT msn DOT com>
To: <cygwin AT cygwin DOT com>
References:
In-Reply-To:
Subject: RE: Re: 1.7 preallocate issue?
Date: Thu, 13 Nov 2008 14:58:51 -0700
Message-ID: <001f01c945db$0381c380$0a854a80$@com>
MIME-Version: 1.0
X-Mailer: Microsoft Office Outlook 12.0
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

We still get these issues when preallocating large file on our SAN.  It only
occurs when preallocating (posix_fallocate) files that are 20GB+ in size.
I'll try to get a trace but this will be difficult to replicating I think.
Is there any other information I can try to capture?

Rob

---- Original Message ----
I've been testing out the 1.7.0-28 build of cygwin using rsync 3.0.3 with
the preallocate patch.  My destination server setup is a Windows Server 2003
R2 machine with a fibre array (10TB).  The client is also running the same
version of cygwin and rsync on a Server 2003 box.  

I've noticed that when rsync is creating very large files using preallocate
(20GB+) then I will occasionally get a "Resource temporarily unavailable"
error returned from rsync on the destination side (the server with the 10TB
array).  I've removed the file on the destination file system and the file
will not get recreated using the preallocate option.  When I do not use the
preallocate option there are no issues with rsync.

The preallocate patch is pasted below.  The important code segment is here:

+#ifdef SUPPORT_PREALLOCATION
+int do_fallocate(int fd, OFF_T offset, OFF_T length) {
+	RETURN_ERROR_IF(dry_run, 0);
+	RETURN_ERROR_IF_RO_OR_LO;
+	/* TODO: Use FALLOC_FL_KEEP_SIZE to avoid the need to truncate. */
#if 
+defined HAVE_FALLOCATE
+	return fallocate(fd, 0, offset, length); #elif defined 
+HAVE_SYS_FALLOCATE
+	return syscall(SYS_fallocate, fd, 0, (loff_t) offset, (loff_t) 
+length); #elif defined HAVE_EFFICIENT_POSIX_FALLOCATE
+	return posix_fallocate(fd, offset, length); #else #error coding
error 
+in SUPPORT_PREALLOCATION #endif } #endif

Any idea on why this error would occur when using the posix_fallocate
option?

Rob

FULL PATCH AVAILABLE BY LOOKING IN PATCHES PROVIDED BY RSYNC DOWNLOAD



--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019