# Huge array allocation causes exit(1) in 64 bit environment

**URL:** <https://www.ruby-forum.com/t/huge-array-allocation-causes-exit-1-in-64-bit-environment/135482>\
**Category:** Development\
**Created:** [April 22, 2008, 4:37pm UTC](https://www.ruby-forum.com/t/huge-array-allocation-causes-exit-1-in-64-bit-environment/135482 "2008-04-22T16:37:18Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Yusuke\_ENDOH](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/c89c15/32.png) [@Yusuke\_ENDOH](https://www.ruby-forum.com/u/Yusuke_ENDOH)\
**Post date:** [April 22, 2008, 4:37pm UTC](https://www.ruby-forum.com/t/huge-array-allocation-causes-exit-1-in-64-bit-environment/135482/1 "2008-04-22T16:37:18Z")

</div>

e$B1sF#$H?=$7$^$9!#e(B

64 bit e$B4D6-$GBg$-$J%a%b%j$r3NJ]$7$h$&$H$9$k$H!"%(%i!\<I=\<($b$J$/e(B  
exit(1) e$B$9$k$h$&$G$9!#e(B

$ ./ruby -e ‘[1] \* (2\*\*32); p :foo’  
$ echo $?  
1

e$B$$$^$$$A2?$,5/$-$F$$$k$N$+$o$+$C$F$J$$$N$G$9$,!"e(B

- rb\_memerror e$B$Ge(B th-\>raised\_flag |= RAISED\_NOMEMORY e$B$9$ke(B
- rb\_longjmp e$B$Ge(B th-\>raised\_flag & RAISED\_EXCEPTION e$B$@$C$?$ie(B  
FATAL e$B$9$ke(B

e$B$H$$$&N.$l$G!"e(BRAISED\_\*  
e$B$,0J2\<$N$h$&$KDj5A$5$l$F$$$k$N$G$9$,!"e(B  
e$B$3$l$O0U?^E\*$J$b$N$G$7$g$&$+!#e(B

enum {  
RAISED\_EXCEPTION = 1,  
RAISED\_STACKOVERFLOW,  
RAISED\_NOMEMORY,  
};

e$B%U%i%0MQES$J$i!“e(BRAISED\_NOMEMORY e$B$Oe(B 4  
e$B$J$N$+$J!”$H;W$$$^$7$?!#e(B

# Index: eval\_intern.h

— eval\_intern.h (revision 16157)  
+++ eval\_intern.h (working copy)  
@@ -194,8 +194,8 @@

enum {  
RAISED\_EXCEPTION = 1,

- RAISED\_STACKOVERFLOW,
- RAISED\_NOMEMORY,

- RAISED\_STACKOVERFLOW = 2,
- RAISED\_NOMEMORY = 4,  
};  
int rb\_thread\_set\_raised(rb\_thread\_t \*th);  
int rb\_thread\_reset\_raised(rb\_thread\_t \*th);

# e$B$K$7$F$b!“e(BFATAL e$B$NI=\<($,$J$$$N$OB\>$K$b2?$+%P%0$,$”$k!)e(B

---

<div class="post-metadata">

**Author:** ![Yusuke\_ENDOH](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/c89c15/32.png) [@Yusuke\_ENDOH](https://www.ruby-forum.com/u/Yusuke_ENDOH)\
**Post date:** [April 23, 2008, 11:46am UTC](https://www.ruby-forum.com/t/huge-array-allocation-causes-exit-1-in-64-bit-environment/135482/2 "2008-04-23T11:46:02Z")

</div>

e$B$J$+$@$G$9!#e(B

At Tue, 22 Apr 2008 23:36:28 +0900,  
Yusuke ENDOH wrote in [ruby-dev:34489]:

> };
> 
> e$B%U%i%0MQES$J$i!“e(BRAISED\_NOMEMORY e$B$Oe(B 4 e$B$J$N$+$J!”$H;W$$$^$7$?!#e(B

e$B$G$9$M!#e(BBit  
Shifte$B$rF~$l$k$D$b$j$GK:$l$F$$$?$N$+$b!#$9$$$^$;$s!"e(B  
e$BD\>$7$F$\*$$$F$/$@$5$$!#e(B
