From: "znz (Kazuhiro NISHIYAMA)" Date: 2013-06-11T09:47:23+09:00 Subject: [ruby-dev:47416] [ruby-trunk - Bug #8510][Open] assertion failed in ary_resize_capa Issue #8510 has been reported by znz (Kazuhiro NISHIYAMA). ---------------------------------------- Bug #8510: assertion failed in ary_resize_capa https://bugs.ruby-lang.org/issues/8510 Author: znz (Kazuhiro NISHIYAMA) Status: Open Priority: Normal Assignee: Category: core Target version: current: 2.1.0 ruby -v: ruby 2.1.0dev (2013-06-10 trunk 41220) [x86_64-linux] Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN -DARRAY_DEBUG を付けていると enc.mk のあたりで make が通りません。 generating enc.mk miniruby: .../ruby/array.c:153: ary_resize_capa: Assertion `!(!!((!(((VALUE)(ary) & RUBY_IMMEDIATE_MASK) || !!(((VALUE)(ary) & ~((VALUE)RUBY_Qnil)) == 0)) && (int)(((struct RBasic*)(ary))->flags & RUBY_T_MASK) != RUBY_T_NODE)?(((struct RBasic*)(ary))->flags&((((VALUE)1)<<11))):((((int)(long)(ary))&RUBY_FIXNUM_FLAG)||((((int)(long)(ary))&RUBY_FLONUM_MASK) == RUBY_FLONUM_FLAG))))' failed. Aborted (core dumped) 原因を調べてみたところ、 ary_make_shared で else if (OBJ_FROZEN(ary)) { ary_resize_capa(ary, ARY_HEAP_LEN(ary)); という条件で ary_resize_capa を呼び出しているのに、ary_resize_capa の中に assert(!OBJ_FROZEN(ary)); があるからのようです。 -- http://bugs.ruby-lang.org/