voltrb / volt

A Ruby web framework where your Ruby runs on both server and client
MIT License
3.22k stars 196 forks source link

`can't add a new key into hash during iteration` following autoreload #322

Open balmoral opened 9 years ago

balmoral commented 9 years ago

after a tiny change to css file, this error on the reload...

RuntimeError at /product/edit/eb58966ebbe72ebc632b3060
can't add a new key into hash during iteration

Ruby    /Users/col/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/set.rb: in replace, line 151
Web GET 192.168.0.4/product/edit/eb58966ebbe72ebc632b3060
Jump to:
GETPOSTCookiesENV
Traceback (innermost first)

/Users/col/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/set.rb: in replace
      @hash.replace(enum.instance_variable_get(:@hash))...
/Users/col/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/set.rb: in replace
      @hash.replace(enum.instance_variable_get(:@hash))...
/Users/col/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/set.rb: in collect!
    replace(set)...
/Users/col/.rvm/gems/ruby-2.2.1/gems/sprockets-3.4.0/lib/sprockets/loader.rb: in asset_from_cache
          asset[:metadata][:dependencies].map!      { |uri| uri.start_with?("file-digest://") ? expand_from_root(uri) : uri } if asset[:metadata][:dependencies]...
/Users/col/.rvm/gems/ruby-2.2.1/gems/sprockets-3.4.0/lib/sprockets/loader.rb: in block in load
              asset_from_cache(UnloadedAsset.new(uri_from_cache, self).asset_key)...
/Users/col/.rvm/gems/ruby-2.2.1/gems/sprockets-3.4.0/lib/sprockets/loader.rb: in block in fetch_asset_from_dependency_cache
          if asset = yield(expanded_deps)...
/Users/col/.rvm/gems/ruby-2.2.1/gems/sprockets-3.4.0/lib/sprockets/loader.rb: in each
        history.each_with_index do |deps, index|...
/Users/col/.rvm/gems/ruby-2.2.1/gems/sprockets-3.4.0/lib/sprockets/loader.rb: in each_with_index
        history.each_with_index do |deps, index|...
/Users/col/.rvm/gems/ruby-2.2.1/gems/sprockets-3.4.0/lib/sprockets/loader.rb: in fetch_asset_from_dependency_cache
        history.each_with_index do |deps, index|...
/Users/col/.rvm/gems/ruby-2.2.1/gems/sprockets-3.4.0/lib/sprockets/loader.rb: in load
        asset = fetch_asset_from_dependency_cache(unloaded) do |paths|...
/Users/col/.rvm/gems/ruby-2.2.1/gems/sprockets-3.4.0/lib/sprockets/cached_environment.rb: in block in initialize
      @uris    = Hash.new { |h, k| h[k] = _load(k) }...
/Users/col/.rvm/gems/ruby-2.2.1/gems/sprockets-3.4.0/lib/sprockets/cached_environment.rb: in yield
      @uris[uri]...
/Users/col/.rvm/gems/ruby-2.2.1/gems/sprockets-3.4.0/lib/sprockets/cached_environment.rb: in load
      @uris[uri]...
/Users/col/.rvm/gems/ruby-2.2.1/gems/sprockets-3.4.0/lib/sprockets/base.rb: in find_asset
        load(uri)...
/Users/col/.rvm/gems/ruby-2.2.1/gems/sprockets-3.4.0/lib/sprockets/environment.rb: in find_asset
      cached.find_asset(*args)...
/Users/col/.rvm/gems/ruby-2.2.1/gems/sprockets-3.4.0/lib/sprockets/base.rb: in []
      find_asset(*args)...
/Users/col/.rvm/gems/ruby-2.2.1/gems/opal-0.8.1/lib/opal/sprockets/processor.rb: in load_asset_code
      asset = sprockets[name.sub(/(\.(js|rb|opal))*#{REGEXP_END}/, '.js')]...
/Users/col/.rvm/gems/ruby-2.2.1/gems/opal-0.8.1/lib/opal/sprockets/server.rb: in javascript_include_tag
        scripts << %{<script>#{Opal::Processor.load_asset_code(sprockets, name)}</script>}...
/Users/col/.rvm/gems/ruby-2.2.1/bundler/gems/volt-244a5176df44/lib/volt/server/rack/asset_files.rb: in javascript_tags
        scripts << @opal_tag_generator.javascript_include_tag(volt_path)...
/Users/col/.rvm/gems/ruby-2.2.1/bundler/gems/volt-244a5176df44/lib/volt/server/rack/index_files.rb: in javascript_tags
      AssetFiles.from_cache(@volt_app.app_url, 'main', @component_paths).javascript_tags(@volt_app)...
(erb): in html
/Users/col/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/erb.rb: in eval
      eval(@src, b, (@filename || '(erb)'), @lineno)...
/Users/col/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/erb.rb: in result
      eval(@src, b, (@filename || '(erb)'), @lineno)...
/Users/col/.rvm/gems/ruby-2.2.1/bundler/gems/volt-244a5176df44/lib/volt/server/rack/index_files.rb: in html
      ERB.new(html, nil, '-').result(binding)...
/Users/col/.rvm/gems/ruby-2.2.1/bundler/gems/volt-244a5176df44/lib/volt/server/rack/index_files.rb: in call
        [200, { 'Content-Type' => 'text/html; charset=utf-8' }, [html]]...
/Users/col/.rvm/gems/ruby-2.2.1/gems/rack-1.5.5/lib/rack/urlmap.rb: in block in call
        return app.call(env)...
/Users/col/.rvm/gems/ruby-2.2.1/gems/rack-1.5.5/lib/rack/urlmap.rb: in each
      @mapping.each do |host, location, match, app|...
/Users/col/.rvm/gems/ruby-2.2.1/gems/rack-1.5.5/lib/rack/urlmap.rb: in call
      @mapping.each do |host, location, match, app|...
/Users/col/.rvm/gems/ruby-2.2.1/gems/rack-1.5.5/lib/rack/showexceptions.rb: in call
      @app.call(env)...
/Users/col/.rvm/gems/ruby-2.2.1/bundler/gems/volt-244a5176df44/lib/volt/server/rack/quiet_common_logger.rb: in call
    status, header, body = @app.call(env)...
/Users/col/.rvm/gems/ruby-2.2.1/gems/rack-1.5.5/lib/rack/session/abstract/id.rb: in context
          status, headers, body = app.call(env)...
/Users/col/.rvm/gems/ruby-2.2.1/gems/rack-1.5.5/lib/rack/session/abstract/id.rb: in call
          context(env)...
/Users/col/.rvm/gems/ruby-2.2.1/bundler/gems/volt-244a5176df44/lib/volt/server/rack/http_content_types.rb: in call
      return @app.call(env) unless parser...
/Users/col/.rvm/gems/ruby-2.2.1/gems/rack-1.5.5/lib/rack/etag.rb: in call
      status, headers, body = @app.call(env)...
/Users/col/.rvm/gems/ruby-2.2.1/gems/rack-1.5.5/lib/rack/conditionalget.rb: in call
        status, headers, body = @app.call(env)...
/Users/col/.rvm/gems/ruby-2.2.1/bundler/gems/volt-244a5176df44/lib/volt/server/rack/keep_alive.rb: in call
      status, headers, body = @app.call(env)...
/Users/col/.rvm/gems/ruby-2.2.1/gems/rack-1.5.5/lib/rack/content_length.rb: in call
      status, headers, body = @app.call(env)...
/Users/col/.rvm/gems/ruby-2.2.1/gems/rack-1.5.5/lib/rack/builder.rb: in call
      to_app.call(env)...
/Users/col/.rvm/gems/ruby-2.2.1/bundler/gems/volt-244a5176df44/lib/volt/server/middleware/middleware_stack.rb: in call
      @builder.call(env)...
/Users/col/.rvm/gems/ruby-2.2.1/bundler/gems/volt-244a5176df44/lib/volt/server/forking_server.rb: in call_on_child
      status, headers, body = @rack_app.call(env)...
/Users/col/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/drb/drb.rb: in perform_without_block
          @obj.__send__(@msg_id, *@argv)...
/Users/col/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/drb/drb.rb: in perform
            @result = perform_without_block...
/Users/col/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/drb/drb.rb: in block (2 levels) in main_loop
            succ, result = invoke_method.perform...
/Users/col/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/drb/drb.rb: in loop
        loop do...
/Users/col/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/drb/drb.rb: in block in main_loop
        loop do...
Request information

GET
No GET data.
POST
No POST data.
COOKIES
No cookie data.
Rack ENV
Variable    Value
GATEWAY_INTERFACE   
CGI/1.2
HTTP_ACCEPT 
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
HTTP_ACCEPT_ENCODING    
gzip, deflate, sdch
HTTP_ACCEPT_LANGUAGE    
en-US,en;q=0.8
HTTP_CACHE_CONTROL  
max-age=0
HTTP_CONNECTION 
keep-alive
HTTP_HOST   
192.168.0.4:3000
HTTP_IF_NONE_MATCH  
"454e694214a3240b22324fd62dd2e6fb"
HTTP_REFERER    
http://192.168.0.4:3000/product/edit/eb58966ebbe72ebc632b3060
HTTP_UPGRADE_INSECURE_REQUESTS  
1
HTTP_USER_AGENT 
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.85 Safari/537.36
HTTP_VERSION    
HTTP/1.1
PATH_INFO   
/product/edit/eb58966ebbe72ebc632b3060
QUERY_STRING    
REMOTE_ADDR 
192.168.0.4
REQUEST_METHOD  
GET
REQUEST_PATH    
/product/edit/eb58966ebbe72ebc632b3060
REQUEST_URI 
/product/edit/eb58966ebbe72ebc632b3060
SCRIPT_NAME 
SERVER_NAME 
192.168.0.4
SERVER_PORT 
3000
SERVER_PROTOCOL 
HTTP/1.1
SERVER_SOFTWARE 
thin 1.6.4 codename Gob Bluth
async.callback  
#<DRb::DRbObject:0x007ff6eb342120 @uri="druby://192.168.0.4:54908", @ref=70349172139000>
async.close 
#<EventMachine::DefaultDeferrable:0x007ff6eb3402a8>
rack.errors 
#<DRb::DRbObject:0x007ff6eb353df8 @uri="druby://192.168.0.4:54908", @ref=70349169775220>
rack.input  
#<DRb::DRbObject:0x007ff6eb368820 @uri="druby://192.168.0.4:54908", @ref=70349172142200>
rack.multiprocess   
false
rack.multithread    
true
rack.request.cookie_hash    
{}
rack.request.query_hash 
{}
rack.request.query_string   
rack.run_once   
false
rack.session    
#<Rack::Session::Abstract::SessionHash:0x3ffb7596de98 not yet loaded>
rack.session.options    
{:path=>"/", :domain=>nil, :expire_after=>2592000, :secure=>false, :httponly=>true, :defer=>false, :renew=>false, :sidbits=>128, :secure_random=>SecureRandom, :secret=>"u98VCaibtoY36BRn8yepU8993ylmYijqdPd6U9JASIqAx1pQgRpnSiNB5ibw34j-FTM", :coder=>#<Rack::Session::Cookie::Base64::Marshal:0x007ff6e432d498>}
rack.url_scheme 
http
rack.version    
[1, 0]
You're seeing this error because you use Rack::ShowExceptions.