Burgestrand/Hallon — Issue #82: Crash on loading remote data
Author: cptobvious
Created: 2012-02-27 02:32:43+00:00
State: open

I just encountered a problem and I'm not sure whether this is a problem with Hallon or with Ruby so here it goes:

When I want to load all starred tracks of a user with `session.wait_for {starred_tracks.loaded?}` Ruby crashes and gives me the trace attached below.

It's weird because it was working with Hallon 0.12, but then it stopped working and updating to 0.13 didn't fix it.

```
1.9.2p290 :013 > session.wait_for {starred.loaded?}
/Users/chris/.rvm/gems/ruby-1.9.2-p290/gems/hallon-0.13.0/lib/hallon/ext/spotify.rb:119: [BUG] Segmentation fault
ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin11.2.0]

-- control frame ----------
c:0051 p:---- s:0187 b:0187 l:000186 d:000186 CFUNC :track_add_ref
c:0050 p:0089 s:0183 b:0183 l:000182 d:000182 METHOD /Users/chris/.rvm/gems/ruby-1.9.2-p290/gems/hallon-0.13.0/lib/hallon/ext/spotify.rb:119
c:0049 p:---- s:0177 b:0177 l:000176 d:000176 FINISH
c:0048 p:---- s:0175 b:0175 l:000174 d:000174 CFUNC :new
c:0047 p:0024 s:0169 b:0169 l:000159 d:000168 BLOCK /Users/chris/.rvm/gems/ruby-1.9.2-p290/gems/hallon-0.13.0/lib/hallon/observable/playlist.rb:189
c:0046 p:---- s:0165 b:0165 l:000164 d:000164 FINISH
c:0045 p:---- s:0163 b:0163 l:000162 d:000162 CFUNC :map
c:0044 p:0020 s:0160 b:0160 l:000159 d:000159 METHOD /Users/chris/.rvm/gems/ruby-1.9.2-p290/gems/hallon-0.13.0/lib/hallon/observable/playlist.rb:188
c:0043 p:0020 s:0155 b:0152 l:000151 d:000151 METHOD /Users/chris/.rvm/gems/ruby-1.9.2-p290/gems/hallon-0.13.0/lib/hallon/observable/playlist.rb:42
c:0042 p:---- s:0145 b:0145 l:000144 d:000144 FINISH
c:0041 p:---- s:0143 b:0143 l:000142 d:000142 CFUNC :call
c:0040 p:---- s:0141 b:0141 l:000140 d:000140 CFUNC :session_process_events
c:0039 p:0025 s:0136 b:0136 l:000124 d:000135 BLOCK /Users/chris/.rvm/gems/ruby-1.9.2-p290/gems/hallon-0.13.0/lib/hallon/session.rb:142
c:0038 p:---- s:0133 b:0133 l:000132 d:000132 FINISH
c:0037 p:---- s:0131 b:0131 l:000130 d:000130 CFUNC :initialize
c:0036 p:---- s:0129 b:0129 l:000128 d:000128 CFUNC :new
c:0035 p:0021 s:0125 b:0125 l:000124 d:000124 METHOD /Users/chris/.rvm/gems/ruby-1.9.2-p290/gems/hallon-0.13.0/lib/hallon/session.rb:141
c:0034 p:0011 s:0122 b:0122 l:001c20 d:000e60 BLOCK /Users/chris/.rvm/gems/ruby-1.9.2-p290/gems/hallon-0.13.0/lib/hallon/session.rb:164
c:0033 p:---- s:0117 b:0117 l:000116 d:000116 FINISH
c:0032 p:---- s:0115 b:0115 l:000114 d:000114 CFUNC :loop
c:0031 p:0065 s:0112 b:0112 l:001c20 d:001c98 BLOCK /Users/chris/.rvm/gems/ruby-1.9.2-p290/gems/hallon-0.13.0/lib/hallon/session.rb:162
c:0030 p:0024 s:0108 b:0108 l:000107 d:000107 METHOD /Users/chris/.rvm/gems/ruby-1.9.2-p290/gems/hallon-0.13.0/lib/hallon/observable.rb:127
c:0029 p:0018 s:0104 b:0104 l:001c20 d:001c20 METHOD /Users/chris/.rvm/gems/ruby-1.9.2-p290/gems/hallon-0.13.0/lib/hallon/session.rb:156
c:0028 p:0011 s:0100 b:0100 l:000268 d:000378 EVAL (irb):13
c:0027 p:---- s:0098 b:0098 l:000097 d:000097 FINISH
c:0026 p:---- s:0096 b:0096 l:000095 d:000095 CFUNC :eval
c:0025 p:0028 s:0089 b:0089 l:000088 d:000088 METHOD /Users/chris/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/irb/workspace.rb:80
c:0024 p:0033 s:0082 b:0081 l:000080 d:000080 METHOD /Users/chris/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/irb/context.rb:254
c:0023 p:0031 s:0076 b:0076 l:001fb8 d:000075 BLOCK /Users/chris/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/irb.rb:159
c:0022 p:0042 s:0068 b:0068 l:000067 d:000067 METHOD /Users/chris/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/irb.rb:273
c:0021 p:0011 s:0063 b:0063 l:001fb8 d:000062 BLOCK /Users/chris/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/irb.rb:156
c:0020 p:0144 s:0059 b:0059 l:000042 d:000058 BLOCK /Users/chris/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/irb/ruby-lex.rb:243
c:0019 p:---- s:0056 b:0056 l:000055 d:000055 FINISH
c:0018 p:---- s:0054 b:0054 l:000053 d:000053 CFUNC :loop
c:0017 p:0009 s:0051 b:0051 l:000042 d:000050 BLOCK /Users/chris/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/irb/ruby-lex.rb:229
c:0016 p:---- s:0049 b:0049 l:000048 d:000048 FINISH
c:0015 p:---- s:0047 b:0047 l:000046 d:000046 CFUNC :catch
c:0014 p:0023 s:0043 b:0043 l:000042 d:000042 METHOD /Users/chris/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/irb/ruby-lex.rb:228
c:0013 p:0046 s:0040 b:0040 l:001fb8 d:001fb8 METHOD /Users/chris/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/irb.rb:155
c:0012 p:0011 s:0037 b:0037 l:000828 d:000036 BLOCK /Users/chris/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/irb.rb:70
c:0011 p:---- s:0035 b:0035 l:000034 d:000034 FINISH
c:0010 p:---- s:0033 b:0033 l:000032 d:000032 CFUNC :catch
c:0009 p:0183 s:0029 b:0029 l:000828 d:000828 METHOD /Users/chris/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/irb.rb:69
c:0008 p:0210 s:0024 b:0024 l:001cf0 d:001cf0 METHOD /Users/chris/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.0.11/lib/rails/commands/console.rb:44
c:0007 p:0019 s:0020 b:0020 l:000019 d:000019 METHOD /Users/chris/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.0.11/lib/rails/commands/console.rb:8
c:0006 p:0430 s:0016 b:0016 l:000015 d:000015 TOP /Users/chris/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.0.11/lib/rails/commands.rb:23
c:0005 p:---- s:0012 b:0012 l:000011 d:000011 FINISH
c:0004 p:---- s:0010 b:0010 l:000009 d:000009 CFUNC :require
c:0003 p:0061 s:0006 b:0006 l:0002b8 d:0022e8 EVAL script/rails:6
c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH
c:0001 p:0000 s:0002 b:0002 l:0002b8 d:0002b8 TOP
---------------------------
-- Ruby level backtrace information ----------------------------------------
script/rails:6:in `

'
script/rails:6:in `require'
/Users/chris/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.0.11/lib/rails/commands.rb:23:in `'
/Users/chris/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.0.11/lib/rails/commands/console.rb:8:in `start'
/Users/chris/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.0.11/lib/rails/commands/console.rb:44:in `start'
/Users/chris/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/irb.rb:69:in `start'
/Users/chris/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/irb.rb:69:in `catch'
/Users/chris/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/irb.rb:70:in `block in start'
/Users/chris/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/irb.rb:155:in `eval_input'
/Users/chris/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/irb/ruby-lex.rb:228:in `each_top_level_statement'
/Users/chris/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/irb/ruby-lex.rb:228:in `catch'
/Users/chris/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/irb/ruby-lex.rb:229:in `block in each_top_level_statement'
/Users/chris/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/irb/ruby-lex.rb:229:in `loop'
/Users/chris/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/irb/ruby-lex.rb:243:in `block (2 levels) in each_top_level_statement'
/Users/chris/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/irb.rb:156:in `block in eval_input'
/Users/chris/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/irb.rb:273:in `signal_status'
/Users/chris/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/irb.rb:159:in `block (2 levels) in eval_input'
/Users/chris/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/irb/context.rb:254:in `evaluate'
/Users/chris/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/irb/workspace.rb:80:in `evaluate'
/Users/chris/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/irb/workspace.rb:80:in `eval'
(irb):13:in `irb_binding'
/Users/chris/.rvm/gems/ruby-1.9.2-p290/gems/hallon-0.13.0/lib/hallon/session.rb:156:in `process_events_on'
/Users/chris/.rvm/gems/ruby-1.9.2-p290/gems/hallon-0.13.0/lib/hallon/observable.rb:127:in `protecting_handlers'
/Users/chris/.rvm/gems/ruby-1.9.2-p290/gems/hallon-0.13.0/lib/hallon/session.rb:162:in `block in process_events_on'
/Users/chris/.rvm/gems/ruby-1.9.2-p290/gems/hallon-0.13.0/lib/hallon/session.rb:162:in `loop'
/Users/chris/.rvm/gems/ruby-1.9.2-p290/gems/hallon-0.13.0/lib/hallon/session.rb:164:in `block (2 levels) in process_events_on'
/Users/chris/.rvm/gems/ruby-1.9.2-p290/gems/hallon-0.13.0/lib/hallon/session.rb:141:in `process_events'
/Users/chris/.rvm/gems/ruby-1.9.2-p290/gems/hallon-0.13.0/lib/hallon/session.rb:141:in `new'
/Users/chris/.rvm/gems/ruby-1.9.2-p290/gems/hallon-0.13.0/lib/hallon/session.rb:141:in `initialize'
/Users/chris/.rvm/gems/ruby-1.9.2-p290/gems/hallon-0.13.0/lib/hallon/session.rb:142:in `block in process_events'
/Users/chris/.rvm/gems/ruby-1.9.2-p290/gems/hallon-0.13.0/lib/hallon/session.rb:142:in `session_process_events'
/Users/chris/.rvm/gems/ruby-1.9.2-p290/gems/hallon-0.13.0/lib/hallon/session.rb:142:in `call'
/Users/chris/.rvm/gems/ruby-1.9.2-p290/gems/hallon-0.13.0/lib/hallon/observable/playlist.rb:42:in `tracks_removed_callback'
/Users/chris/.rvm/gems/ruby-1.9.2-p290/gems/hallon-0.13.0/lib/hallon/observable/playlist.rb:188:in `callback_make_tracks'
/Users/chris/.rvm/gems/ruby-1.9.2-p290/gems/hallon-0.13.0/lib/hallon/observable/playlist.rb:188:in `map'
/Users/chris/.rvm/gems/ruby-1.9.2-p290/gems/hallon-0.13.0/lib/hallon/observable/playlist.rb:189:in `block in callback_make_tracks'
/Users/chris/.rvm/gems/ruby-1.9.2-p290/gems/hallon-0.13.0/lib/hallon/observable/playlist.rb:189:in `new'
/Users/chris/.rvm/gems/ruby-1.9.2-p290/gems/hallon-0.13.0/lib/hallon/ext/spotify.rb:119:in `initialize'
/Users/chris/.rvm/gems/ruby-1.9.2-p290/gems/hallon-0.13.0/lib/hallon/ext/spotify.rb:119:in `track_add_ref'

-- C level backtrace information -------------------------------------------

[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html

Abort trap: 6
```