# Ruby File Copy SEG-FAULT on 64-bit System

**URL:** <https://www.ruby-forum.com/t/ruby-file-copy-seg-fault-on-64-bit-system/79393>\
**Category:** Ruby\
**Created:** [December 14, 2006, 8:18pm UTC](https://www.ruby-forum.com/t/ruby-file-copy-seg-fault-on-64-bit-system/79393 "2006-12-14T20:18:51Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![cjeness](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/a183cd/32.png) [@cjeness](https://www.ruby-forum.com/u/cjeness)\
**Post date:** [December 14, 2006, 8:18pm UTC](https://www.ruby-forum.com/t/ruby-file-copy-seg-fault-on-64-bit-system/79393/1 "2006-12-14T20:18:51Z")

</div>

I have a Ruby script which copies certain files from one subdirectory to  
another.  
I am running the latest version of Ruby (1.8.51.10) available  
from Suse under Suse Linux 9.3. On my 32-bit computer, my Ruby script  
executes successfully. However, on my 64-bit AMD computer the script  
fails with the following error:

/usr/lib64/ruby/1.8/ftools.rb:27: [BUG] Segmentation faul  
ruby 1.8.1 (2003-12-25) [x86\_64-linux]

Here is the line from my Ruby script which copies the file:

File::syscopy(path1, path2)

“path1” is the source file name and “path2” is the target file name.  
I  
have verified that both names are correct. The file being copied is  
130  
Mb and the copy consistently fails on the 64-bit computer afterr 77 Mb  
have  
been copied. I have tried the script on 2 64-bit computers running  
Suse  
9.3 and the copy fails in an idential manner. I have also tried the  
scrip  
on 1 32-bit computer running Suse 9.3 and the copy consistently  
succeeds.  
There is no issue on any of the computers on smaller files.

Since the failure occurs midway through the execution of “syscopy”, it  
seems to me that the issue may lie with the 64-bit version of ftools.rb.

Any suggestions would be greatly appreciated.

---

<div class="post-metadata">

**Author:** ![cjeness](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/a183cd/32.png) [@cjeness](https://www.ruby-forum.com/u/cjeness)\
**Post date:** [December 14, 2006, 8:52pm UTC](https://www.ruby-forum.com/t/ruby-file-copy-seg-fault-on-64-bit-system/79393/2 "2006-12-14T20:52:55Z")

</div>

Cynthia Jeness wrote:

> I have a Ruby script which copies certain files from one subdirectory to  
> another.  
> I am running the latest version of Ruby (1.8.51.10) available  
> from Suse under Suse Linux 9.3. On my 32-bit computer, my Ruby script  
> executes successfully. However, on my 64-bit AMD computer the script  
> fails with the following error:
> 
> /usr/lib64/ruby/1.8/ftools.rb:27: [BUG] Segmentation faul  
> ruby 1.8.1 (2003-12-25) [x86\_64-linux]

I’m confused - are you running 1.8.5 or 1.8.1 on your 64 bit machine?

> Since the failure occurs midway through the execution of “syscopy”, it  
> seems to me that the issue may lie with the 64-bit version of ftools.rb.

Quite possible, as I’ve hit obscure segfaults with ftools that I’ve  
never been able to narrow down. My suggestion, for the immediate time,  
is to use FileUtils.cp instead. In the meantime, consider submitting a  
bug on RubyForge (assuming this really is for 1.8.5 and not 1.8.1).

Regards,

Dan

---

<div class="post-metadata">

**Author:** ![cjeness](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/a183cd/32.png) [@cjeness](https://www.ruby-forum.com/u/cjeness)\
**Post date:** [December 14, 2006, 9:55pm UTC](https://www.ruby-forum.com/t/ruby-file-copy-seg-fault-on-64-bit-system/79393/3 "2006-12-14T21:55:59Z")

</div>

Daniel B. wrote:

> Cynthia Jeness wrote:
> 
> > I have a Ruby script which copies certain files from one subdirectory to  
> > another.  
> > I am running the latest version of Ruby (1.8.51.10) available  
> > from Suse under Suse Linux 9.3. On my 32-bit computer, my Ruby script  
> > executes successfully. However, on my 64-bit AMD computer the script  
> > fails with the following error:
> > 
> > /usr/lib64/ruby/1.8/ftools.rb:27: [BUG] Segmentation faul  
> > ruby 1.8.1 (2003-12-25) [x86\_64-linux]
> 
> I’m confused - are you running 1.8.5 or 1.8.1 on your 64 bit machine?

I am running the same version on all computers: 1.8.1-51.10. In my  
original post I neglected to include the “1-” in front of the “51”. I  
also went back to the Suse site and verified that nothing later is  
available through their update process.

> > Since the failure occurs midway through the execution of “syscopy”, it  
> > seems to me that the issue may lie with the 64-bit version of ftools.rb.
> 
> Quite possible, as I’ve hit obscure segfaults with ftools that I’ve  
> never been able to narrow down. My suggestion, for the immediate time,  
> is to use FileUtils.cp instead. In the meantime, consider submitting a  
> bug on RubyForge (assuming this really is for 1.8.5 and not 1.8.1).

I changed to FileUtils.cp but received a similar segmentation fault.  
Of course, it occurred on a different line number (423). However, in  
both the case of fstools and FileUtils, the line is simply copying using  
sysread and syswrite.

Cindy

---

<div class="post-metadata">

**Author:** ![cjeness](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/a183cd/32.png) [@cjeness](https://www.ruby-forum.com/u/cjeness)\
**Post date:** [December 14, 2006, 10:18pm UTC](https://www.ruby-forum.com/t/ruby-file-copy-seg-fault-on-64-bit-system/79393/4 "2006-12-14T22:18:46Z")

</div>

Cynthia Jeness wrote:

> Daniel B. wrote:
> 
> > Cynthia Jeness wrote:
> > 
> > > I have a Ruby script which copies certain files from one subdirectory to  
> > > another.  
> > > I am running the latest version of Ruby (1.8.51.10) available  
> > > from Suse under Suse Linux 9.3. On my 32-bit computer, my Ruby script  
> > > executes successfully. However, on my 64-bit AMD computer the script  
> > > fails with the following error:
> > > 
> > > /usr/lib64/ruby/1.8/ftools.rb:27: [BUG] Segmentation faul  
> > > ruby 1.8.1 (2003-12-25) [x86\_64-linux]
> > 
> > I’m confused - are you running 1.8.5 or 1.8.1 on your 64 bit machine?
> 
> I am running the same version on all computers: 1.8.1-51.10. In my  
> original post I neglected to include the “1-” in front of the “51”. I  
> also went back to the Suse site and verified that nothing later is  
> available through their update process.
> 
> > > Since the failure occurs midway through the execution of “syscopy”, it  
> > > seems to me that the issue may lie with the 64-bit version of ftools.rb.
> > 
> > Quite possible, as I’ve hit obscure segfaults with ftools that I’ve  
> > never been able to narrow down. My suggestion, for the immediate time,  
> > is to use FileUtils.cp instead. In the meantime, consider submitting a  
> > bug on RubyForge (assuming this really is for 1.8.5 and not 1.8.1).
> 
> I changed to FileUtils.cp but received a similar segmentation fault.  
> Of course, it occurred on a different line number (423). However, in  
> both the case of fstools and FileUtils, the line is simply copying using  
> sysread and syswrite.
> 
> Cindy

I downloaded the latest source code from the Ruby site (1.8.5-p2) and  
compiled it. This resolved my problem. So Suse needs to upgrade  
their rpm to a more recent version so that Ruby can be handled by the  
normal Suse update process (especially for security bugs.)

Cindy
