# 1.8.7 segfault

**URL:** <https://www.ruby-forum.com/t/1-8-7-segfault/154777>\
**Category:** Ruby\
**Created:** [December 3, 2008, 9:10pm UTC](https://www.ruby-forum.com/t/1-8-7-segfault/154777 "2008-12-03T21:10:24Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![izit](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/87869e/32.png) [@izit](https://www.ruby-forum.com/u/izit)\
**Post date:** [December 3, 2008, 9:10pm UTC](https://www.ruby-forum.com/t/1-8-7-segfault/154777/1 "2008-12-03T21:10:24Z")

</div>

Hi,

I have a Rails app that keeps on segfaulting if I request a very  
intensive task. The task involves reading a lot of DB records and  
parsing each record in hashes and arrays.

If I limit the DB record scope the segfault does not happen but with a  
larger set it happens every time. Strange thing is it only happens on my  
linux system not on my OS X dev system. Both run ruby 1.8.7 latest  
version compiled from source. The process eats a lot of memory, keeps  
growing and then the fault occurs.

I ran gdb on the faulty process, here is some output:

Program received signal SIGSEGV, Segmentation fault.  
[Switching to Thread 48005413886848 (LWP 29060)]  
ruby\_re\_compile\_pattern (pattern=0x10f3070 “:”, size=,  
bufp=0x96f51f0) at regex.c:2730  
2730 skip[c] = m;  
(gdb) whe  
#0 ruby\_re\_compile\_pattern (pattern=0x10f3070 “:”,  
size=, bufp=0x96f51f0) at regex.c:2730  
#1 0x0000000000461cae in rb\_reg\_initialize (obj=48005969553640,  
s=0x10f3070 “:”, len=1, options=) at re.c:643  
#2 0x0000000000461f51 in rb\_reg\_new (s=0x10f3070 “:”, len=1, options=0)  
at re.c:1459  
#3 0x0000000000461fba in rb\_reg\_regcomp (str=0) at re.c:1480  
#4 0x0000000000476abd in rb\_str\_split\_m (argc=,  
argv=, str=48005969558200) at string.c:3560  
#5 0x000000000041b84a in rb\_call0 (klass=48005399435280,  
recv=48005969558200,  
id=4665, oid=4665, argc=1, argv=0x7fffff953900, body=0x2ba920c7c9b0,  
flags=) at eval.c:5904  
#6 0x000000000041c598 in rb\_call (klass=48005399435280,  
recv=48005969558200,  
mid=4665, argc=1, argv=0x7fffff953900, scope=0, self=48005506071920)  
at eval.c:6151  
#7 0x000000000041713b in rb\_eval (self=48005506071920,  
n=) at eval.c:3492  
#8 0x0000000000417047 in rb\_eval (self=48005506071920,  
n=) at eval.c:3486  
#9 0x0000000000416701 in rb\_eval (self=48005506071920,  
n=) at eval.c:2997  
#10 0x0000000000417641 in rb\_eval (self=48005506071920,  
n=) at eval.c:3047  
#11 0x0000000000418b1e in rb\_eval (self=48005506071920,  
n=) at eval.c:3332

#12 0x000000000041c0b3 in rb\_call0 (klass=48005434552560,  
recv=48005506071920,  
id=51241, oid=, argc=32767,  
argv=0x7fffff955df0,  
body=0x2ba922eb97a8, flags=) at eval.c:6055  
#13 0x000000000041c598 in rb\_call (klass=48005434552560,  
recv=48005506071920,  
mid=51241, argc=2, argv=0x7fffff955de0, scope=1,  
self=48005506071920)  
at eval.c:6151  
#14 0x0000000000417273 in rb\_eval (self=,  
n=) at eval.c:3507  
#15 0x00000000004164ec in rb\_eval (self=48005506071920,  
n=) at eval.c:3677  
#16 0x000000000041c0b3 in rb\_call0 (klass=48005434552560,  
recv=48005506071920,  
id=3769, oid=, argc=32767, argv=0x7fffff957070,  
body=0x2ba922e69050, flags=) at eval.c:6055  
#17 0x000000000041c598 in rb\_call (klass=48005434552560,  
recv=48005506071920,  
mid=3769, argc=2, argv=0x7fffff957060, scope=1, self=48005506071920)  
at eval.c:6151  
#18 0x0000000000417273 in rb\_eval (self=,  
n=) at eval.c:3507  
#19 0x000000000041c0b3 in rb\_call0 (klass=48005457401280,  
recv=48005506071920,  
id=54129, oid=, argc=11177,  
argv=0x7fffff957c90,  
body=0x2ba924411fb0, flags=) at eval.c:6055

Does anyone have an idea ?

thanks

Jeroen

---

<div class="post-metadata">

**Author:** ![izit](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/87869e/32.png) [@izit](https://www.ruby-forum.com/u/izit)\
**Post date:** [December 3, 2008, 10:24pm UTC](https://www.ruby-forum.com/t/1-8-7-segfault/154777/2 "2008-12-03T22:24:45Z")

</div>

Quite often I find this is caused by a bad memory SIMM, try running  
memtst86 or equivalent to  
eliminate a H/W problem, then you can focus on potential S/W problems.

---

<div class="post-metadata">

**Author:** ![izit](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/87869e/32.png) [@izit](https://www.ruby-forum.com/u/izit)\
**Post date:** [December 3, 2008, 10:31pm UTC](https://www.ruby-forum.com/t/1-8-7-segfault/154777/3 "2008-12-03T22:31:48Z")

</div>

I am running on a VPS, so cannot check H/W. I am quite sure this is ok.

Jim M. wrote:

> Quite often I find this is caused by a bad memory SIMM, try running  
> memtst86 or equivalent to  
> eliminate a H/W problem, then you can focus on potential S/W problems.

---

<div class="post-metadata">

**Author:** ![izit](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/87869e/32.png) [@izit](https://www.ruby-forum.com/u/izit)\
**Post date:** [December 3, 2008, 11:02pm UTC](https://www.ruby-forum.com/t/1-8-7-segfault/154777/4 "2008-12-03T23:02:18Z")

</div>

Tim H. wrote:

> Izit I. wrote:
> 
> > Hi,

> > I ran gdb on the faulty process, here is some output:
> > 
> > Program received signal SIGSEGV, Segmentation fault.  
> > [Switching to Thread 48005413886848 (LWP 29060)]  
> > ruby\_re\_compile\_pattern (pattern=0x10f3070 “:”, size=,  
> > bufp=0x96f51f0) at regex.c:2730  
> > 2730 skip[c] = m;
> 
> Have you tried recompiling with less optimization?

I have compiled with only --enable-pthreads, the rest was all default.

---

<div class="post-metadata">

**Author:** ![izit](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/87869e/32.png) [@izit](https://www.ruby-forum.com/u/izit)\
**Post date:** [December 5, 2008, 4:20pm UTC](https://www.ruby-forum.com/t/1-8-7-segfault/154777/5 "2008-12-05T16:20:50Z")

</div>

Izit I. wrote:

> Tim H. wrote:
> 
> > Izit I. wrote:
> > 
> > > Hi,
> 
> > > I ran gdb on the faulty process, here is some output:
> > > 
> > > Program received signal SIGSEGV, Segmentation fault.  
> > > [Switching to Thread 48005413886848 (LWP 29060)]  
> > > ruby\_re\_compile\_pattern (pattern=0x10f3070 “:”, size=,  
> > > bufp=0x96f51f0) at regex.c:2730  
> > > 2730 skip[c] = m;
> > 
> > Have you tried recompiling with less optimization?
> 
> I have compiled with only --enable-pthreads, the rest was all default.

I have moved to ruby enterprise edition (latest version) and the problem  
is gone.

---

<div class="post-metadata">

**Author:** ![izit](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/87869e/32.png) [@izit](https://www.ruby-forum.com/u/izit)\
**Post date:** [December 3, 2008, 10:35pm UTC](https://www.ruby-forum.com/t/1-8-7-segfault/154777/6 "2008-12-03T22:35:23Z")

</div>

Izit I. wrote:

> Hi,
> 
> I have a Rails app that keeps on segfaulting if I request a very  
> intensive task. The task involves reading a lot of DB records and  
> parsing each record in hashes and arrays.
> 
> If I limit the DB record scope the segfault does not happen but with a  
> larger set it happens every time. Strange thing is it only happens on my  
> linux system not on my OS X dev system. Both run ruby 1.8.7 latest  
> version compiled from source. The process eats a lot of memory, keeps  
> growing and then the fault occurs.
> 
> I ran gdb on the faulty process, here is some output:
> 
> Program received signal SIGSEGV, Segmentation fault.  
> [Switching to Thread 48005413886848 (LWP 29060)]  
> ruby\_re\_compile\_pattern (pattern=0x10f3070 “:”, size=,  
> bufp=0x96f51f0) at regex.c:2730  
> 2730 skip[c] = m;

Have you tried recompiling with less optimization?

---

<div class="post-metadata">

**Author:** ![izit](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/i/87869e/32.png) [@izit](https://www.ruby-forum.com/u/izit)\
**Post date:** [December 5, 2008, 6:12pm UTC](https://www.ruby-forum.com/t/1-8-7-segfault/154777/7 "2008-12-05T18:12:07Z")

</div>

Hi,

In message “Re: 1.8.7 segfault”  
on Sat, 6 Dec 2008 00:14:46 +0900, Izit I. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
writes:

|I have moved to ruby enterprise edition (latest version) and the problem  
|is gone.

What?! I didn’t know REE is a panacea. Hmmm.

```
          matz.

```
