X-Recipient: archive-cygwin AT delorie DOT com X-Spam-Check-By: sourceware.org Message-ID: X-Sender: robbosch AT msn DOT com From: "Rob Bosch" To: 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 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook 12.0 Content-Language: en-us Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , 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/