From: aruprakshit@... Date: 2014-12-16T04:23:52+00:00 Subject: [ruby-core:66868] [ruby-trunk - Bug #10603] [Open] Ruby process memory is crashing Issue #10603 has been reported by arup rakshit. ---------------------------------------- Bug #10603: Ruby process memory is crashing https://bugs.ruby-lang.org/issues/10603 * Author: arup rakshit * Status: Open * Priority: Normal * Assignee: * Category: * Target version: * ruby -v: ruby 2.1.4p265 (2014-10-27 revision 48166) [i686-linux] * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN ---------------------------------------- I got one issue while I was writing tests in RSpec framework for my some ruby codes. Issue I found, when I wrote the below code : describe "::add" do let(:item) { double(item) } it 'should store the item on the class' do subject.add(item) expect(subject.all).to include(item) end end My complete code for which I was writing test :- ========================= simple_store.rb ========================= class SimpleStore def initialize(attributes = {}) update(attributes) end def destroy self.class.remove(self) self.freeze end def update(attributes) attributes.each_pair do |attribute, value| self.public_send "#{attribute}=", value end end def save self.class.add(self) end def id self.class.items.key(self) end def self.add(item) items.store(next_id, item) end def self.all items.values end def self.create(*arguments) item = new(*arguments) add(item) item end def self.items @items ||= Hash.new end def self.get(id) items.fetch(id.to_i) end def self.remove(item) items.delete(item.id) end def self.next_id @next_id ||= 0 @next_id += 1 end end And the corresponding test :- require 'rspec' require './simple_store' describe SimpleStore do describe 'instance methods' do let(:subject_class) { Class.new(described_class) } subject { subject_class.new } describe "#save" do it 'stores the item on the class' do subject.save expect(subject_class.all).to include(subject) end end describe "#destroy" do before do subject_class.add(subject) end it 'removes the item from the class storage' do subject.destroy expect(subject_class.all).not_to include(subject) end end describe "#id" do before do subject_class.add(subject) end it 'returns the key that has been saved to in the collection' do expect(subject.id).to eq(1) end end describe 'class methods' do subject { Class.new(described_class) } describe '::all' do it 'should be empty until something has been added' do expect(subject.all).to be_empty end end describe "::add" do let(:item) { double(item) } it 'should store the item on the class' do subject.add(item) expect(subject.all).to include(item) end end describe "::create" do it 'should create a new item, store it into the class and return it' do new_item = subject.create expect(subject.all).to include(new_item) end end end end end ============= Here is some more details about my environment :- [arup@to_do_app]$ ruby -v ruby 2.1.4p265 (2014-10-27 revision 48166) [i686-linux] [arup@to_do_app]$ gem list --local *** LOCAL GEMS *** bigdecimal (1.2.4) bundler (1.7.4) bundler-unload (1.0.2) diff-lcs (1.2.5) executable-hooks (1.3.2) gem-wrappers (1.2.7) io-console (0.4.2) json (1.8.1) minitest (4.7.5) psych (2.0.5) rack (1.5.2) rack-protection (1.5.3) rake (10.1.0) rdoc (4.1.0) rspec (3.1.0) rspec-core (3.1.7) rspec-expectations (3.1.2) rspec-mocks (3.1.3) rspec-support (3.1.2) rubygems-bundler (1.4.4) rvm (1.11.3.9) sinatra (1.4.5) test-unit (2.1.4.0) tilt (1.4.1) [arup@to_do_app]$ Please find the attached error file, which is I am getting due to the `rspec spec/simple_store_spec.rb`. ---Files-------------------------------- error.txt (28.1 KB) -- https://bugs.ruby-lang.org/