Action Controller: Exception caught

NoMethodError in PartialsController#show

undefined method `shopping_list_token' for # Did you mean? shopping_list_items shopping_list_items= shopping_list_ids

Extracted source (around line #433):
431
432
433
434
435
436
              
else
match = matched_attribute_method(method.to_s)
match ? attribute_missing(match, *args, &block) : super
end
end
Extracted source (around line #166):
164
165
166
167
168
169
              
def set_shopping_list_token_if_needed
self.shopping_list_token = generate_unique_shopping_list_token if self.shopping_list_token.blank? && self.consumer_id.blank?
end
def generate_unique_shopping_list_token
Extracted source (around line #152):
150
151
152
153
154
155
              
def get_token
set_shopping_list_token_if_needed
shopping_list_token
end
Extracted source (around line #17):
15
16
17
18
19
20
              
puts "🍕 Setting shopping list cookie for #{shopping_list.inspect}"
cookies[shopping_list_cookie_name(shopping_list.retailer.id)] = {
value: shopping_list.get_token,
expires: 1.year.from_now,
domain: :all,
httponly: false
Extracted source (around line #87):
85
86
87
88
89
90
              
def set_placeholder_shopping_list_cookie
provisional_shopping_list = ShoppingList.new(retailer: @retailer, current_list: true)
set_shopping_list_cookie(provisional_shopping_list)
end
def assign_shopping_list_to_consumer
Extracted source (around line #29):
27
28
29
30
31
32
              
set_shopping_list_from_param if @shopping_list.blank? && current_consumer.present?
set_shopping_list_from_consumer if @shopping_list.blank? && current_consumer.present?
set_placeholder_shopping_list_cookie if @shopping_list.blank?
@shopping_list = ShoppingList.new if @shopping_list.blank?
end
puts "Shopping list: #{@shopping_list.inspect}"
Extracted source (around line #382):
380
381
382
383
384
385
              
case filter
when Symbol
lambda { |target, _, &blk| target.send filter, &blk }
when String
l = eval "lambda { |value| #{filter} }"
lambda { |target, value| target.instance_exec(value, &l) }
Extracted source (around line #150):
148
149
150
151
152
153
              
if !halted && user_conditions.all? { |c| c.call(target, value) }
result_lambda = -> { user_callback.call target, value }
env.halted = halted_lambda.call(target, result_lambda)
if env.halted
target.send :halted_callback_hook, filter
Extracted source (around line #12):
10
11
12
13
14
15
              
included do
define_callbacks :process_action,
terminator: ->(controller, result_lambda) { result_lambda.call if result_lambda.is_a?(Proc); controller.performed? },
skip_after_callbacks_if_terminated: true
end
Extracted source (around line #151):
149
150
151
152
153
154
              
if !halted && user_conditions.all? { |c| c.call(target, value) }
result_lambda = -> { user_callback.call target, value }
env.halted = halted_lambda.call(target, result_lambda)
if env.halted
target.send :halted_callback_hook, filter
end
Extracted source (around line #454):
452
453
454
455
456
457
              
def call(arg)
@before.each { |b| b.call(arg) }
value = @call.call(arg)
@after.each { |a| a.call(arg) }
value
Extracted source (around line #454):
452
453
454
455
456
457
              
def call(arg)
@before.each { |b| b.call(arg) }
value = @call.call(arg)
@after.each { |a| a.call(arg) }
value
Extracted source (around line #454):
452
453
454
455
456
457
              
def call(arg)
@before.each { |b| b.call(arg) }
value = @call.call(arg)
@after.each { |a| a.call(arg) }
value
Extracted source (around line #448):
446
447
448
449
450
451
              
CallbackSequence.new do |arg|
around.call(arg) {
self.call(arg)
}
end
end
Extracted source (around line #286):
284
285
286
287
288
289
              
else
user_callback.call(target, value) {
run.call.value
}
env
end
Extracted source (around line #45):
43
44
45
46
47
48
              
begin
Thread.current[:ahoy] = ahoy
yield
ensure
Thread.current[:ahoy] = previous_value
end
Extracted source (around line #382):
380
381
382
383
384
385
              
case filter
when Symbol
lambda { |target, _, &blk| target.send filter, &blk }
when String
l = eval "lambda { |value| #{filter} }"
lambda { |target, value| target.instance_exec(value, &l) }
Extracted source (around line #285):
283
284
285
286
287
288
              
run.call
else
user_callback.call(target, value) {
run.call.value
}
env
Extracted source (around line #447):
445
446
447
448
449
450
              
def around(&around)
CallbackSequence.new do |arg|
around.call(arg) {
self.call(arg)
}
end
Extracted source (around line #455):
453
454
455
456
457
458
              
def call(arg)
@before.each { |b| b.call(arg) }
value = @call.call(arg)
@after.each { |a| a.call(arg) }
value
end
Extracted source (around line #101):
99
100
101
102
103
104
              
runner = callbacks.compile
e = Filters::Environment.new(self, false, nil, block)
runner.call(e).value
end
end
Extracted source (around line #750):
748
749
750
751
752
753
              
module_eval <<-RUBY, __FILE__, __LINE__ + 1
def _run_#{name}_callbacks(&block)
__run_callbacks__(_#{name}_callbacks, &block)
end
RUBY
end
Extracted source (around line #90):
88
89
90
91
92
93
              
# end
def run_callbacks(kind, &block)
send "_run_#{kind}_callbacks", &block
end
private
Extracted source (around line #19):
17
18
19
20
21
22
              
# process_action callbacks around the normal behavior.
def process_action(*args)
run_callbacks(:process_action) do
super
end
end
Extracted source (around line #20):
18
19
20
21
22
23
              
private
def process_action(*args)
super
rescue Exception => exception
request.env['action_dispatch.show_detailed_exceptions'] ||= show_detailed_exceptions?
rescue_with_handler(exception) || raise
Extracted source (around line #32):
30
31
32
33
34
35
              
ActiveSupport::Notifications.instrument("process_action.action_controller", raw_payload) do |payload|
begin
result = super
payload[:status] = response.status
result
ensure
Extracted source (around line #164):
162
163
164
165
166
167
              
def instrument(name, payload = {})
if notifier.listening?(name)
instrumenter.instrument(name, payload) { yield payload if block_given? }
else
yield payload if block_given?
end
Extracted source (around line #21):
19
20
21
22
23
24
              
listeners_state = start name, payload
begin
yield payload
rescue Exception => e
payload[:exception] = [e.class.name, e.message]
payload[:exception_object] = e
Extracted source (around line #164):
162
163
164
165
166
167
              
def instrument(name, payload = {})
if notifier.listening?(name)
instrumenter.instrument(name, payload) { yield payload if block_given? }
else
yield payload if block_given?
end
Extracted source (around line #30):
28
29
30
31
32
33
              
ActiveSupport::Notifications.instrument("start_processing.action_controller", raw_payload.dup)
ActiveSupport::Notifications.instrument("process_action.action_controller", raw_payload) do |payload|
begin
result = super
payload[:status] = response.status
Extracted source (around line #248):
246
247
248
249
250
251
              
request.filtered_parameters.merge! wrapped_filtered_hash
end
super
end
private
Extracted source (around line #18):
16
17
18
19
20
21
              
# and it won't be cleaned up by the method below.
ActiveRecord::LogSubscriber.reset_runtime
super
end
def cleanup_view_runtime
Extracted source (around line #126):
124
125
126
127
128
129
              
@_response_body = nil
process_action(action_name, *args)
end
# Delegates to the class' ::controller_path
Extracted source (around line #30):
28
29
30
31
32
33
              
def process(*) #:nodoc:
old_config, I18n.config = I18n.config, I18nProxy.new(I18n.config, lookup_context)
super
ensure
I18n.config = old_config
end
Extracted source (around line #190):
188
189
190
191
192
193
              
set_request!(request)
set_response!(response)
process(name)
request.commit_flash
to_a
end
Extracted source (around line #262):
260
261
262
263
264
265
              
middleware_stack.build(name) { |env| new.dispatch(name, req, res) }.call req.env
else
new.dispatch(name, req, res)
end
end
end
Extracted source (around line #50):
48
49
50
51
52
53
              
def dispatch(controller, action, req, res)
controller.dispatch(action, req, res)
end
end
Extracted source (around line #32):
30
31
32
33
34
35
              
controller = controller req
res = controller.make_response! req
dispatch(controller, params[:action], req, res)
rescue ActionController::RoutingError
if @raise_on_name_error
raise
Extracted source (around line #39):
37
38
39
40
41
42
              
req.path_parameters = set_params.merge parameters
status, headers, body = route.app.serve(req)
if 'pass' == headers['X-Cascade']
req.script_name = script_name
Extracted source (around line #26):
24
25
26
27
28
29
              
def serve(req)
find_routes(req).each do |match, parameters, route|
set_params = req.path_parameters
path_info = req.path_info
script_name = req.script_name
Extracted source (around line #26):
24
25
26
27
28
29
              
def serve(req)
find_routes(req).each do |match, parameters, route|
set_params = req.path_parameters
path_info = req.path_info
script_name = req.script_name
Extracted source (around line #727):
725
726
727
728
729
730
              
req = make_request(env)
req.path_info = Journey::Router::Utils.normalize_path(req.path_info)
@router.serve(req)
end
def recognize_path(path, environment = {})
Extracted source (around line #522):
520
521
522
523
524
525
              
def call(env)
req = build_request env
app.call req.env
end
# Defines additional Rack env configuration that is added on each call.
Extracted source (around line #193):
191
192
193
194
195
196
              
def method_missing(name, *args, &block)
if instance.respond_to?(name)
instance.public_send(name, *args, &block)
else
super
end
Extracted source (around line #193):
191
192
193
194
195
196
              
def method_missing(name, *args, &block)
if instance.respond_to?(name)
instance.public_send(name, *args, &block)
else
super
end
Extracted source (around line #17):
15
16
17
18
19
20
              
SERVE = ->(app, req) { app.serve req }
CALL = ->(app, req) { app.call req.env }
def initialize(app, constraints, strategy)
# Unwrap Constraints objects. I don't actually think it's possible
Extracted source (around line #46):
44
45
46
47
48
49
              
return [ 404, {'X-Cascade' => 'pass'}, [] ] unless matches?(req)
@strategy.call @app, req
end
private
Extracted source (around line #39):
37
38
39
40
41
42
              
req.path_parameters = set_params.merge parameters
status, headers, body = route.app.serve(req)
if 'pass' == headers['X-Cascade']
req.script_name = script_name
Extracted source (around line #26):
24
25
26
27
28
29
              
def serve(req)
find_routes(req).each do |match, parameters, route|
set_params = req.path_parameters
path_info = req.path_info
script_name = req.script_name
Extracted source (around line #26):
24
25
26
27
28
29
              
def serve(req)
find_routes(req).each do |match, parameters, route|
set_params = req.path_parameters
path_info = req.path_info
script_name = req.script_name
Extracted source (around line #727):
725
726
727
728
729
730
              
req = make_request(env)
req.path_info = Journey::Router::Utils.normalize_path(req.path_info)
@router.serve(req)
end
def recognize_path(path, environment = {})
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #25):
23
24
25
26
27
28
              
super
else
@app.call(env)
end
end
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #30):
28
29
30
31
32
33
              
def traced_call(env)
@app.call(env)
end
end
end
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #32):
30
31
32
33
34
35
              
def traced_call(env)
result = @app.call(env) # [status, headers, response]
js_to_inject = NewRelic::Agent.browser_timing_header
if (js_to_inject != "") && should_instrument?(env, result[0], result[1])
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #32):
30
31
32
33
34
35
              
end
@app.call(env)
end
end
end
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #27):
25
26
27
28
29
30
              
def call(env)
status, headers, body = @app.call(env)
if etag_status?(status) && etag_body?(body) && !skip_caching?(headers)
original_body = body
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #27):
25
26
27
28
29
30
              
case env[REQUEST_METHOD]
when "GET", "HEAD"
status, headers, body = @app.call(env)
headers = Utils::HeaderHash.new(headers)
if status == 200 && fresh?(env, headers)
status = 304
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #14):
12
13
14
15
16
17
              
def call(env)
status, headers, body = @app.call(env)
if env[REQUEST_METHOD] == HEAD
[
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #269):
267
268
269
270
271
272
              
req = make_request env
prepare_session(req)
status, headers, body = app.call(req.env)
res = Rack::Response::Raw.new status, headers
commit_session(req, res)
[status, headers, body]
Extracted source (around line #263):
261
262
263
264
265
266
              
def call(env)
context(env)
end
def context(env, app = @app)
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #613):
611
612
613
614
615
616
              
request = ActionDispatch::Request.new env
status, headers, body = @app.call(env)
if request.have_cookie_jar?
cookie_jar = request.cookie_jar
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #38):
36
37
38
39
40
41
              
result = run_callbacks :call do
begin
@app.call(env)
rescue => error
end
end
Extracted source (around line #97):
95
96
97
98
99
100
              
def __run_callbacks__(callbacks, &block)
if callbacks.empty?
yield if block_given?
else
runner = callbacks.compile
e = Filters::Environment.new(self, false, nil, block)
Extracted source (around line #750):
748
749
750
751
752
753
              
module_eval <<-RUBY, __FILE__, __LINE__ + 1
def _run_#{name}_callbacks(&block)
__run_callbacks__(_#{name}_callbacks, &block)
end
RUBY
end
Extracted source (around line #90):
88
89
90
91
92
93
              
# end
def run_callbacks(kind, &block)
send "_run_#{kind}_callbacks", &block
end
private
Extracted source (around line #36):
34
35
36
37
38
39
              
def call(env)
error = nil
result = run_callbacks :call do
begin
@app.call(env)
rescue => error
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #79):
77
78
79
80
81
82
              
req = ActionDispatch::Request.new env
req.remote_ip = GetIp.new(req, check_ip, proxies)
@app.call(req.env)
end
# The GetIp class exists as a way to defer processing of the request data
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #49):
47
48
49
50
51
52
              
def call(env)
request = ActionDispatch::Request.new env
_, headers, body = response = @app.call(env)
if headers['X-Cascade'] == 'pass'
body.close if body.respond_to?(:close)
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #31):
29
30
31
32
33
34
              
def call(env)
request = ActionDispatch::Request.new env
@app.call(env)
rescue Exception => exception
if request.show_exceptions?
render_exception(request, exception)
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #36):
34
35
36
37
38
39
              
instrumenter.start 'request.action_dispatch', request: request
logger.info { started_request_message(request) }
resp = @app.call(env)
resp[2] = ::Rack::BodyProxy.new(resp[2]) { finish(request) }
resp
rescue Exception
Extracted source (around line #24):
22
23
24
25
26
27
              
if logger.respond_to?(:tagged)
logger.tagged(compute_tags(request)) { call_app(request, env) }
else
call_app(request, env)
end
Extracted source (around line #69):
67
68
69
70
71
72
              
def tagged(*tags)
formatter.tagged(*tags) { yield self }
end
def flush
Extracted source (around line #26):
24
25
26
27
28
29
              
def tagged(*tags)
new_tags = push_tags(*tags)
yield self
ensure
pop_tags(new_tags.size)
end
Extracted source (around line #69):
67
68
69
70
71
72
              
def tagged(*tags)
formatter.tagged(*tags) { yield self }
end
def flush
Extracted source (around line #24):
22
23
24
25
26
27
              
if logger.respond_to?(:tagged)
logger.tagged(compute_tags(request)) { call_app(request, env) }
else
call_app(request, env)
end
Extracted source (around line #22):
20
21
22
23
24
25
              
end
else
call_without_quiet_ahoy(env)
end
end
alias_method :call_without_quiet_ahoy, :call
Extracted source (around line #41):
39
40
41
42
43
44
              
end
else
super
end
end
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #19):
17
18
19
20
21
22
              
RequestStore.begin!
response = @app.call(env)
returned = response << Rack::BodyProxy.new(response.pop) do
RequestStore.end!
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #24):
22
23
24
25
26
27
              
req = ActionDispatch::Request.new env
req.request_id = make_request_id(req.x_request_id)
@app.call(env).tap { |_status, headers, _body| headers[X_REQUEST_ID] = req.request_id }
end
private
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #24):
22
23
24
25
26
27
              
end
@app.call(env)
end
def method_override(env)
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #24):
22
23
24
25
26
27
              
def call(env)
start_time = Utils.clock_time
status, headers, body = @app.call(env)
request_time = Utils.clock_time - start_time
unless headers.has_key?(@header_name)
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #28):
26
27
28
29
30
31
              
def call(env)
LocalCacheRegistry.set_cache_for(local_cache_key, LocalStore.new)
response = @app.call(env)
response[2] = ::Rack::BodyProxy.new(response[2]) do
LocalCacheRegistry.set_cache_for(local_cache_key, nil)
end
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #12):
10
11
12
13
14
15
              
state = @executor.run!
begin
response = @app.call(env)
returned = response << ::Rack::BodyProxy.new(response.pop) { state.complete! }
ensure
state.complete! unless returned
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #113):
111
112
113
114
115
116
              
def call(env)
status, headers, body = @app.call(env)
if body.respond_to?(:to_path)
case type = variation(env)
when 'X-Accel-Redirect'
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #97):
95
96
97
98
99
100
              
vary_resource = resource_for_path(env[PATH_INFO])
status, headers, body = @app.call env
if add_headers
headers = add_headers.merge(headers)
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #522):
520
521
522
523
524
525
              
def call(env)
req = build_request env
app.call req.env
end
# Defines additional Rack env configuration that is added on each call.
Extracted source (around line #193):
191
192
193
194
195
196
              
def method_missing(name, *args, &block)
if instance.respond_to?(name)
instance.public_send(name, *args, &block)
else
super
end
Extracted source (around line #193):
191
192
193
194
195
196
              
def method_missing(name, *args, &block)
if instance.respond_to?(name)
instance.public_send(name, *args, &block)
else
super
end
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #107):
105
106
107
108
109
110
              
begin
status, headers, body = @app.call(env)
rescue => e
if e.is_a?(Errno::ENOBUFS)
raise e
Extracted source (around line #149):
147
148
149
150
151
152
              
begin
if headers[REQUEST_METHOD] == GET
process_request(headers, connection, socket_wrapper, @protocol == :http)
elsif headers[REQUEST_METHOD] == PING
process_ping(headers, connection)
false
Extracted source (around line #110):
108
109
110
111
112
113
              
finish_callback.call
while true
hijacked = accept_and_process_next_request(socket_wrapper, channel, buffer)
socket_wrapper = Utils::UnseekableSocket.new if hijacked
end
rescue Interrupted
Extracted source (around line #419):
417
418
419
420
421
422
              
handler = thread_handler.new(self, main_socket_options)
handler.install
handler.main_loop(set_initialization_state_to_true)
ensure
set_initialization_state.call(false)
unregister_current_thread
Extracted source (around line #113):
111
112
113
114
115
116
              
Thread.current.abort_on_exception = true
begin
yield(*args)
rescue SystemExit
raise
rescue Exception => e

Rails.root: /var/www/core

Application Trace | Framework Trace | Full Trace
app/models/shopping_list.rb:166:in `set_shopping_list_token_if_needed'
app/models/shopping_list.rb:152:in `get_token'
app/controllers/concerns/shopping_list_cookie_management.rb:17:in `set_shopping_list_cookie'
app/controllers/concerns/shopping_list_management.rb:87:in `set_placeholder_shopping_list_cookie'
app/controllers/concerns/shopping_list_management.rb:29:in `set_shopping_list'
vendor/bundle/ruby/2.5.0/gems/activemodel-5.0.7.2/lib/active_model/attribute_methods.rb:433:in `method_missing'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:382:in `block in make_lambda'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:150:in `block (2 levels) in halting_and_conditional'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/abstract_controller/callbacks.rb:12:in `block (2 levels) in '
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:151:in `block in halting_and_conditional'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:454:in `block in call'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:454:in `each'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:454:in `call'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:448:in `block (2 levels) in around'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:286:in `block (2 levels) in halting'
vendor/bundle/ruby/2.5.0/gems/ahoy_matey-3.0.0/lib/ahoy/controller.rb:45:in `set_ahoy_request_store'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:382:in `block in make_lambda'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:285:in `block in halting'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:447:in `block in around'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:455:in `call'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:101:in `__run_callbacks__'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:750:in `_run_process_action_callbacks'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:90:in `run_callbacks'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/abstract_controller/callbacks.rb:19:in `process_action'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_controller/metal/rescue.rb:20:in `process_action'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_controller/metal/instrumentation.rb:32:in `block in process_action'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/notifications.rb:164:in `block in instrument'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/notifications/instrumenter.rb:21:in `instrument'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/notifications.rb:164:in `instrument'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_controller/metal/instrumentation.rb:30:in `process_action'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_controller/metal/params_wrapper.rb:248:in `process_action'
vendor/bundle/ruby/2.5.0/gems/activerecord-5.0.7.2/lib/active_record/railties/controller_runtime.rb:18:in `process_action'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/abstract_controller/base.rb:126:in `process'
vendor/bundle/ruby/2.5.0/gems/actionview-5.0.7.2/lib/action_view/rendering.rb:30:in `process'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_controller/metal.rb:190:in `dispatch'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_controller/metal.rb:262:in `dispatch'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/route_set.rb:50:in `dispatch'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/route_set.rb:32:in `serve'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:39:in `block in serve'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:26:in `each'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:26:in `serve'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/route_set.rb:727:in `call'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/engine.rb:522:in `call'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/railtie.rb:193:in `public_send'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/railtie.rb:193:in `method_missing'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/mapper.rb:17:in `block in '
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/mapper.rb:46:in `serve'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:39:in `block in serve'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:26:in `each'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:26:in `serve'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/route_set.rb:727:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/bundler/gems/front_end_builds-8b743f6fee91/lib/front_end_builds/middleware/admin_assets.rb:25:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/rack/agent_hooks.rb:30:in `traced_call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/rack/browser_monitoring.rb:32:in `traced_call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/remotipart-1.4.2/lib/remotipart/middleware.rb:32:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/etag.rb:27:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/conditional_get.rb:27:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/head.rb:14:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/session/abstract/id.rb:269:in `context'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/session/abstract/id.rb:263:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/cookies.rb:613:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/callbacks.rb:38:in `block in call'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:97:in `__run_callbacks__'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:750:in `_run_call_callbacks'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:90:in `run_callbacks'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/callbacks.rb:36:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/remote_ip.rb:79:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/debug_exceptions.rb:49:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/show_exceptions.rb:31:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/rack/logger.rb:36:in `call_app'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/rack/logger.rb:24:in `block in call'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/tagged_logging.rb:69:in `block in tagged'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/tagged_logging.rb:26:in `tagged'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/tagged_logging.rb:69:in `tagged'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/rack/logger.rb:24:in `call'
vendor/bundle/ruby/2.5.0/gems/ahoy_matey-3.0.0/lib/ahoy/engine.rb:22:in `call_with_quiet_ahoy'
vendor/bundle/ruby/2.5.0/gems/silencer-1.0.1/lib/silencer/rails/logger.rb:41:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/request_store-1.5.0/lib/request_store/middleware.rb:19:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/request_id.rb:24:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/method_override.rb:24:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/runtime.rb:24:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/executor.rb:12:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/sendfile.rb:113:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-cors-1.0.2/lib/rack/cors.rb:97:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/engine.rb:522:in `call'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/railtie.rb:193:in `public_send'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/railtie.rb:193:in `method_missing'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
/usr/share/ruby/vendor_ruby/phusion_passenger/rack/thread_handler_extension.rb:107:in `process_request'
/usr/share/ruby/vendor_ruby/phusion_passenger/request_handler/thread_handler.rb:149:in `accept_and_process_next_request'
/usr/share/ruby/vendor_ruby/phusion_passenger/request_handler/thread_handler.rb:110:in `main_loop'
/usr/share/ruby/vendor_ruby/phusion_passenger/request_handler.rb:419:in `block (3 levels) in start_threads'
/usr/share/ruby/vendor_ruby/phusion_passenger/utils.rb:113:in `block in create_thread_and_abort_on_exception'
vendor/bundle/ruby/2.5.0/gems/activemodel-5.0.7.2/lib/active_model/attribute_methods.rb:433:in `method_missing'
app/models/shopping_list.rb:166:in `set_shopping_list_token_if_needed'
app/models/shopping_list.rb:152:in `get_token'
app/controllers/concerns/shopping_list_cookie_management.rb:17:in `set_shopping_list_cookie'
app/controllers/concerns/shopping_list_management.rb:87:in `set_placeholder_shopping_list_cookie'
app/controllers/concerns/shopping_list_management.rb:29:in `set_shopping_list'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:382:in `block in make_lambda'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:150:in `block (2 levels) in halting_and_conditional'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/abstract_controller/callbacks.rb:12:in `block (2 levels) in '
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:151:in `block in halting_and_conditional'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:454:in `block in call'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:454:in `each'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:454:in `call'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:448:in `block (2 levels) in around'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:286:in `block (2 levels) in halting'
vendor/bundle/ruby/2.5.0/gems/ahoy_matey-3.0.0/lib/ahoy/controller.rb:45:in `set_ahoy_request_store'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:382:in `block in make_lambda'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:285:in `block in halting'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:447:in `block in around'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:455:in `call'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:101:in `__run_callbacks__'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:750:in `_run_process_action_callbacks'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:90:in `run_callbacks'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/abstract_controller/callbacks.rb:19:in `process_action'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_controller/metal/rescue.rb:20:in `process_action'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_controller/metal/instrumentation.rb:32:in `block in process_action'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/notifications.rb:164:in `block in instrument'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/notifications/instrumenter.rb:21:in `instrument'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/notifications.rb:164:in `instrument'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_controller/metal/instrumentation.rb:30:in `process_action'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_controller/metal/params_wrapper.rb:248:in `process_action'
vendor/bundle/ruby/2.5.0/gems/activerecord-5.0.7.2/lib/active_record/railties/controller_runtime.rb:18:in `process_action'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/abstract_controller/base.rb:126:in `process'
vendor/bundle/ruby/2.5.0/gems/actionview-5.0.7.2/lib/action_view/rendering.rb:30:in `process'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_controller/metal.rb:190:in `dispatch'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_controller/metal.rb:262:in `dispatch'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/route_set.rb:50:in `dispatch'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/route_set.rb:32:in `serve'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:39:in `block in serve'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:26:in `each'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:26:in `serve'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/route_set.rb:727:in `call'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/engine.rb:522:in `call'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/railtie.rb:193:in `public_send'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/railtie.rb:193:in `method_missing'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/mapper.rb:17:in `block in '
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/mapper.rb:46:in `serve'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:39:in `block in serve'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:26:in `each'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:26:in `serve'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/route_set.rb:727:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/bundler/gems/front_end_builds-8b743f6fee91/lib/front_end_builds/middleware/admin_assets.rb:25:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/rack/agent_hooks.rb:30:in `traced_call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/rack/browser_monitoring.rb:32:in `traced_call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/remotipart-1.4.2/lib/remotipart/middleware.rb:32:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/etag.rb:27:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/conditional_get.rb:27:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/head.rb:14:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/session/abstract/id.rb:269:in `context'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/session/abstract/id.rb:263:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/cookies.rb:613:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/callbacks.rb:38:in `block in call'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:97:in `__run_callbacks__'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:750:in `_run_call_callbacks'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:90:in `run_callbacks'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/callbacks.rb:36:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/remote_ip.rb:79:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/debug_exceptions.rb:49:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/show_exceptions.rb:31:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/rack/logger.rb:36:in `call_app'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/rack/logger.rb:24:in `block in call'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/tagged_logging.rb:69:in `block in tagged'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/tagged_logging.rb:26:in `tagged'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/tagged_logging.rb:69:in `tagged'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/rack/logger.rb:24:in `call'
vendor/bundle/ruby/2.5.0/gems/ahoy_matey-3.0.0/lib/ahoy/engine.rb:22:in `call_with_quiet_ahoy'
vendor/bundle/ruby/2.5.0/gems/silencer-1.0.1/lib/silencer/rails/logger.rb:41:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/request_store-1.5.0/lib/request_store/middleware.rb:19:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/request_id.rb:24:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/method_override.rb:24:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/runtime.rb:24:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/executor.rb:12:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/sendfile.rb:113:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-cors-1.0.2/lib/rack/cors.rb:97:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/engine.rb:522:in `call'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/railtie.rb:193:in `public_send'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/railtie.rb:193:in `method_missing'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
/usr/share/ruby/vendor_ruby/phusion_passenger/rack/thread_handler_extension.rb:107:in `process_request'
/usr/share/ruby/vendor_ruby/phusion_passenger/request_handler/thread_handler.rb:149:in `accept_and_process_next_request'
/usr/share/ruby/vendor_ruby/phusion_passenger/request_handler/thread_handler.rb:110:in `main_loop'
/usr/share/ruby/vendor_ruby/phusion_passenger/request_handler.rb:419:in `block (3 levels) in start_threads'
/usr/share/ruby/vendor_ruby/phusion_passenger/utils.rb:113:in `block in create_thread_and_abort_on_exception'

Request

Parameters:

{"consumer_credentials"=>"", "retailer_id"=>"48", "version"=>"v3", "folder"=>"header", "id"=>"header_for_retailer_48"}
Toggle session dump
retailer_id: "48"
session_id: "bff85fd50f5ad76487ee5d7e2a514d2f"
Toggle env dump
HTTP_ACCEPT: "*/*"
HTTP_VERSION: "HTTP/1.1"
HTTP_X_FORWARDED_FOR: "35.167.147.24"
ORIGINAL_SCRIPT_NAME: ""
REMOTE_ADDR: "172.31.25.2"
SERVER_NAME: "grocery.core1.rails.webstophq.com"
SERVER_PROTOCOL: "HTTP/1.1"

Response

Headers:

None
Action Controller: Exception caught

NoMethodError in PartialsController#show

undefined method `shopping_list_token' for # Did you mean? shopping_list_items shopping_list_items= shopping_list_ids

Extracted source (around line #433):
431
432
433
434
435
436
              
else
match = matched_attribute_method(method.to_s)
match ? attribute_missing(match, *args, &block) : super
end
end
Extracted source (around line #166):
164
165
166
167
168
169
              
def set_shopping_list_token_if_needed
self.shopping_list_token = generate_unique_shopping_list_token if self.shopping_list_token.blank? && self.consumer_id.blank?
end
def generate_unique_shopping_list_token
Extracted source (around line #152):
150
151
152
153
154
155
              
def get_token
set_shopping_list_token_if_needed
shopping_list_token
end
Extracted source (around line #17):
15
16
17
18
19
20
              
puts "🍕 Setting shopping list cookie for #{shopping_list.inspect}"
cookies[shopping_list_cookie_name(shopping_list.retailer.id)] = {
value: shopping_list.get_token,
expires: 1.year.from_now,
domain: :all,
httponly: false
Extracted source (around line #87):
85
86
87
88
89
90
              
def set_placeholder_shopping_list_cookie
provisional_shopping_list = ShoppingList.new(retailer: @retailer, current_list: true)
set_shopping_list_cookie(provisional_shopping_list)
end
def assign_shopping_list_to_consumer
Extracted source (around line #29):
27
28
29
30
31
32
              
set_shopping_list_from_param if @shopping_list.blank? && current_consumer.present?
set_shopping_list_from_consumer if @shopping_list.blank? && current_consumer.present?
set_placeholder_shopping_list_cookie if @shopping_list.blank?
@shopping_list = ShoppingList.new if @shopping_list.blank?
end
puts "Shopping list: #{@shopping_list.inspect}"
Extracted source (around line #382):
380
381
382
383
384
385
              
case filter
when Symbol
lambda { |target, _, &blk| target.send filter, &blk }
when String
l = eval "lambda { |value| #{filter} }"
lambda { |target, value| target.instance_exec(value, &l) }
Extracted source (around line #150):
148
149
150
151
152
153
              
if !halted && user_conditions.all? { |c| c.call(target, value) }
result_lambda = -> { user_callback.call target, value }
env.halted = halted_lambda.call(target, result_lambda)
if env.halted
target.send :halted_callback_hook, filter
Extracted source (around line #12):
10
11
12
13
14
15
              
included do
define_callbacks :process_action,
terminator: ->(controller, result_lambda) { result_lambda.call if result_lambda.is_a?(Proc); controller.performed? },
skip_after_callbacks_if_terminated: true
end
Extracted source (around line #151):
149
150
151
152
153
154
              
if !halted && user_conditions.all? { |c| c.call(target, value) }
result_lambda = -> { user_callback.call target, value }
env.halted = halted_lambda.call(target, result_lambda)
if env.halted
target.send :halted_callback_hook, filter
end
Extracted source (around line #454):
452
453
454
455
456
457
              
def call(arg)
@before.each { |b| b.call(arg) }
value = @call.call(arg)
@after.each { |a| a.call(arg) }
value
Extracted source (around line #454):
452
453
454
455
456
457
              
def call(arg)
@before.each { |b| b.call(arg) }
value = @call.call(arg)
@after.each { |a| a.call(arg) }
value
Extracted source (around line #454):
452
453
454
455
456
457
              
def call(arg)
@before.each { |b| b.call(arg) }
value = @call.call(arg)
@after.each { |a| a.call(arg) }
value
Extracted source (around line #448):
446
447
448
449
450
451
              
CallbackSequence.new do |arg|
around.call(arg) {
self.call(arg)
}
end
end
Extracted source (around line #286):
284
285
286
287
288
289
              
else
user_callback.call(target, value) {
run.call.value
}
env
end
Extracted source (around line #45):
43
44
45
46
47
48
              
begin
Thread.current[:ahoy] = ahoy
yield
ensure
Thread.current[:ahoy] = previous_value
end
Extracted source (around line #382):
380
381
382
383
384
385
              
case filter
when Symbol
lambda { |target, _, &blk| target.send filter, &blk }
when String
l = eval "lambda { |value| #{filter} }"
lambda { |target, value| target.instance_exec(value, &l) }
Extracted source (around line #285):
283
284
285
286
287
288
              
run.call
else
user_callback.call(target, value) {
run.call.value
}
env
Extracted source (around line #447):
445
446
447
448
449
450
              
def around(&around)
CallbackSequence.new do |arg|
around.call(arg) {
self.call(arg)
}
end
Extracted source (around line #455):
453
454
455
456
457
458
              
def call(arg)
@before.each { |b| b.call(arg) }
value = @call.call(arg)
@after.each { |a| a.call(arg) }
value
end
Extracted source (around line #101):
99
100
101
102
103
104
              
runner = callbacks.compile
e = Filters::Environment.new(self, false, nil, block)
runner.call(e).value
end
end
Extracted source (around line #750):
748
749
750
751
752
753
              
module_eval <<-RUBY, __FILE__, __LINE__ + 1
def _run_#{name}_callbacks(&block)
__run_callbacks__(_#{name}_callbacks, &block)
end
RUBY
end
Extracted source (around line #90):
88
89
90
91
92
93
              
# end
def run_callbacks(kind, &block)
send "_run_#{kind}_callbacks", &block
end
private
Extracted source (around line #19):
17
18
19
20
21
22
              
# process_action callbacks around the normal behavior.
def process_action(*args)
run_callbacks(:process_action) do
super
end
end
Extracted source (around line #20):
18
19
20
21
22
23
              
private
def process_action(*args)
super
rescue Exception => exception
request.env['action_dispatch.show_detailed_exceptions'] ||= show_detailed_exceptions?
rescue_with_handler(exception) || raise
Extracted source (around line #32):
30
31
32
33
34
35
              
ActiveSupport::Notifications.instrument("process_action.action_controller", raw_payload) do |payload|
begin
result = super
payload[:status] = response.status
result
ensure
Extracted source (around line #164):
162
163
164
165
166
167
              
def instrument(name, payload = {})
if notifier.listening?(name)
instrumenter.instrument(name, payload) { yield payload if block_given? }
else
yield payload if block_given?
end
Extracted source (around line #21):
19
20
21
22
23
24
              
listeners_state = start name, payload
begin
yield payload
rescue Exception => e
payload[:exception] = [e.class.name, e.message]
payload[:exception_object] = e
Extracted source (around line #164):
162
163
164
165
166
167
              
def instrument(name, payload = {})
if notifier.listening?(name)
instrumenter.instrument(name, payload) { yield payload if block_given? }
else
yield payload if block_given?
end
Extracted source (around line #30):
28
29
30
31
32
33
              
ActiveSupport::Notifications.instrument("start_processing.action_controller", raw_payload.dup)
ActiveSupport::Notifications.instrument("process_action.action_controller", raw_payload) do |payload|
begin
result = super
payload[:status] = response.status
Extracted source (around line #248):
246
247
248
249
250
251
              
request.filtered_parameters.merge! wrapped_filtered_hash
end
super
end
private
Extracted source (around line #18):
16
17
18
19
20
21
              
# and it won't be cleaned up by the method below.
ActiveRecord::LogSubscriber.reset_runtime
super
end
def cleanup_view_runtime
Extracted source (around line #126):
124
125
126
127
128
129
              
@_response_body = nil
process_action(action_name, *args)
end
# Delegates to the class' ::controller_path
Extracted source (around line #30):
28
29
30
31
32
33
              
def process(*) #:nodoc:
old_config, I18n.config = I18n.config, I18nProxy.new(I18n.config, lookup_context)
super
ensure
I18n.config = old_config
end
Extracted source (around line #190):
188
189
190
191
192
193
              
set_request!(request)
set_response!(response)
process(name)
request.commit_flash
to_a
end
Extracted source (around line #262):
260
261
262
263
264
265
              
middleware_stack.build(name) { |env| new.dispatch(name, req, res) }.call req.env
else
new.dispatch(name, req, res)
end
end
end
Extracted source (around line #50):
48
49
50
51
52
53
              
def dispatch(controller, action, req, res)
controller.dispatch(action, req, res)
end
end
Extracted source (around line #32):
30
31
32
33
34
35
              
controller = controller req
res = controller.make_response! req
dispatch(controller, params[:action], req, res)
rescue ActionController::RoutingError
if @raise_on_name_error
raise
Extracted source (around line #39):
37
38
39
40
41
42
              
req.path_parameters = set_params.merge parameters
status, headers, body = route.app.serve(req)
if 'pass' == headers['X-Cascade']
req.script_name = script_name
Extracted source (around line #26):
24
25
26
27
28
29
              
def serve(req)
find_routes(req).each do |match, parameters, route|
set_params = req.path_parameters
path_info = req.path_info
script_name = req.script_name
Extracted source (around line #26):
24
25
26
27
28
29
              
def serve(req)
find_routes(req).each do |match, parameters, route|
set_params = req.path_parameters
path_info = req.path_info
script_name = req.script_name
Extracted source (around line #727):
725
726
727
728
729
730
              
req = make_request(env)
req.path_info = Journey::Router::Utils.normalize_path(req.path_info)
@router.serve(req)
end
def recognize_path(path, environment = {})
Extracted source (around line #522):
520
521
522
523
524
525
              
def call(env)
req = build_request env
app.call req.env
end
# Defines additional Rack env configuration that is added on each call.
Extracted source (around line #193):
191
192
193
194
195
196
              
def method_missing(name, *args, &block)
if instance.respond_to?(name)
instance.public_send(name, *args, &block)
else
super
end
Extracted source (around line #193):
191
192
193
194
195
196
              
def method_missing(name, *args, &block)
if instance.respond_to?(name)
instance.public_send(name, *args, &block)
else
super
end
Extracted source (around line #17):
15
16
17
18
19
20
              
SERVE = ->(app, req) { app.serve req }
CALL = ->(app, req) { app.call req.env }
def initialize(app, constraints, strategy)
# Unwrap Constraints objects. I don't actually think it's possible
Extracted source (around line #46):
44
45
46
47
48
49
              
return [ 404, {'X-Cascade' => 'pass'}, [] ] unless matches?(req)
@strategy.call @app, req
end
private
Extracted source (around line #39):
37
38
39
40
41
42
              
req.path_parameters = set_params.merge parameters
status, headers, body = route.app.serve(req)
if 'pass' == headers['X-Cascade']
req.script_name = script_name
Extracted source (around line #26):
24
25
26
27
28
29
              
def serve(req)
find_routes(req).each do |match, parameters, route|
set_params = req.path_parameters
path_info = req.path_info
script_name = req.script_name
Extracted source (around line #26):
24
25
26
27
28
29
              
def serve(req)
find_routes(req).each do |match, parameters, route|
set_params = req.path_parameters
path_info = req.path_info
script_name = req.script_name
Extracted source (around line #727):
725
726
727
728
729
730
              
req = make_request(env)
req.path_info = Journey::Router::Utils.normalize_path(req.path_info)
@router.serve(req)
end
def recognize_path(path, environment = {})
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #25):
23
24
25
26
27
28
              
super
else
@app.call(env)
end
end
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #30):
28
29
30
31
32
33
              
def traced_call(env)
@app.call(env)
end
end
end
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #32):
30
31
32
33
34
35
              
def traced_call(env)
result = @app.call(env) # [status, headers, response]
js_to_inject = NewRelic::Agent.browser_timing_header
if (js_to_inject != "") && should_instrument?(env, result[0], result[1])
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #32):
30
31
32
33
34
35
              
end
@app.call(env)
end
end
end
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #27):
25
26
27
28
29
30
              
def call(env)
status, headers, body = @app.call(env)
if etag_status?(status) && etag_body?(body) && !skip_caching?(headers)
original_body = body
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #27):
25
26
27
28
29
30
              
case env[REQUEST_METHOD]
when "GET", "HEAD"
status, headers, body = @app.call(env)
headers = Utils::HeaderHash.new(headers)
if status == 200 && fresh?(env, headers)
status = 304
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #14):
12
13
14
15
16
17
              
def call(env)
status, headers, body = @app.call(env)
if env[REQUEST_METHOD] == HEAD
[
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #269):
267
268
269
270
271
272
              
req = make_request env
prepare_session(req)
status, headers, body = app.call(req.env)
res = Rack::Response::Raw.new status, headers
commit_session(req, res)
[status, headers, body]
Extracted source (around line #263):
261
262
263
264
265
266
              
def call(env)
context(env)
end
def context(env, app = @app)
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #613):
611
612
613
614
615
616
              
request = ActionDispatch::Request.new env
status, headers, body = @app.call(env)
if request.have_cookie_jar?
cookie_jar = request.cookie_jar
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #38):
36
37
38
39
40
41
              
result = run_callbacks :call do
begin
@app.call(env)
rescue => error
end
end
Extracted source (around line #97):
95
96
97
98
99
100
              
def __run_callbacks__(callbacks, &block)
if callbacks.empty?
yield if block_given?
else
runner = callbacks.compile
e = Filters::Environment.new(self, false, nil, block)
Extracted source (around line #750):
748
749
750
751
752
753
              
module_eval <<-RUBY, __FILE__, __LINE__ + 1
def _run_#{name}_callbacks(&block)
__run_callbacks__(_#{name}_callbacks, &block)
end
RUBY
end
Extracted source (around line #90):
88
89
90
91
92
93
              
# end
def run_callbacks(kind, &block)
send "_run_#{kind}_callbacks", &block
end
private
Extracted source (around line #36):
34
35
36
37
38
39
              
def call(env)
error = nil
result = run_callbacks :call do
begin
@app.call(env)
rescue => error
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #79):
77
78
79
80
81
82
              
req = ActionDispatch::Request.new env
req.remote_ip = GetIp.new(req, check_ip, proxies)
@app.call(req.env)
end
# The GetIp class exists as a way to defer processing of the request data
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #49):
47
48
49
50
51
52
              
def call(env)
request = ActionDispatch::Request.new env
_, headers, body = response = @app.call(env)
if headers['X-Cascade'] == 'pass'
body.close if body.respond_to?(:close)
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #31):
29
30
31
32
33
34
              
def call(env)
request = ActionDispatch::Request.new env
@app.call(env)
rescue Exception => exception
if request.show_exceptions?
render_exception(request, exception)
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #36):
34
35
36
37
38
39
              
instrumenter.start 'request.action_dispatch', request: request
logger.info { started_request_message(request) }
resp = @app.call(env)
resp[2] = ::Rack::BodyProxy.new(resp[2]) { finish(request) }
resp
rescue Exception
Extracted source (around line #24):
22
23
24
25
26
27
              
if logger.respond_to?(:tagged)
logger.tagged(compute_tags(request)) { call_app(request, env) }
else
call_app(request, env)
end
Extracted source (around line #69):
67
68
69
70
71
72
              
def tagged(*tags)
formatter.tagged(*tags) { yield self }
end
def flush
Extracted source (around line #26):
24
25
26
27
28
29
              
def tagged(*tags)
new_tags = push_tags(*tags)
yield self
ensure
pop_tags(new_tags.size)
end
Extracted source (around line #69):
67
68
69
70
71
72
              
def tagged(*tags)
formatter.tagged(*tags) { yield self }
end
def flush
Extracted source (around line #24):
22
23
24
25
26
27
              
if logger.respond_to?(:tagged)
logger.tagged(compute_tags(request)) { call_app(request, env) }
else
call_app(request, env)
end
Extracted source (around line #22):
20
21
22
23
24
25
              
end
else
call_without_quiet_ahoy(env)
end
end
alias_method :call_without_quiet_ahoy, :call
Extracted source (around line #41):
39
40
41
42
43
44
              
end
else
super
end
end
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #19):
17
18
19
20
21
22
              
RequestStore.begin!
response = @app.call(env)
returned = response << Rack::BodyProxy.new(response.pop) do
RequestStore.end!
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #24):
22
23
24
25
26
27
              
req = ActionDispatch::Request.new env
req.request_id = make_request_id(req.x_request_id)
@app.call(env).tap { |_status, headers, _body| headers[X_REQUEST_ID] = req.request_id }
end
private
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #24):
22
23
24
25
26
27
              
end
@app.call(env)
end
def method_override(env)
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #24):
22
23
24
25
26
27
              
def call(env)
start_time = Utils.clock_time
status, headers, body = @app.call(env)
request_time = Utils.clock_time - start_time
unless headers.has_key?(@header_name)
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #28):
26
27
28
29
30
31
              
def call(env)
LocalCacheRegistry.set_cache_for(local_cache_key, LocalStore.new)
response = @app.call(env)
response[2] = ::Rack::BodyProxy.new(response[2]) do
LocalCacheRegistry.set_cache_for(local_cache_key, nil)
end
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #12):
10
11
12
13
14
15
              
state = @executor.run!
begin
response = @app.call(env)
returned = response << ::Rack::BodyProxy.new(response.pop) { state.complete! }
ensure
state.complete! unless returned
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #113):
111
112
113
114
115
116
              
def call(env)
status, headers, body = @app.call(env)
if body.respond_to?(:to_path)
case type = variation(env)
when 'X-Accel-Redirect'
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #97):
95
96
97
98
99
100
              
vary_resource = resource_for_path(env[PATH_INFO])
status, headers, body = @app.call env
if add_headers
headers = add_headers.merge(headers)
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #522):
520
521
522
523
524
525
              
def call(env)
req = build_request env
app.call req.env
end
# Defines additional Rack env configuration that is added on each call.
Extracted source (around line #193):
191
192
193
194
195
196
              
def method_missing(name, *args, &block)
if instance.respond_to?(name)
instance.public_send(name, *args, &block)
else
super
end
Extracted source (around line #193):
191
192
193
194
195
196
              
def method_missing(name, *args, &block)
if instance.respond_to?(name)
instance.public_send(name, *args, &block)
else
super
end
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #107):
105
106
107
108
109
110
              
begin
status, headers, body = @app.call(env)
rescue => e
if e.is_a?(Errno::ENOBUFS)
raise e
Extracted source (around line #149):
147
148
149
150
151
152
              
begin
if headers[REQUEST_METHOD] == GET
process_request(headers, connection, socket_wrapper, @protocol == :http)
elsif headers[REQUEST_METHOD] == PING
process_ping(headers, connection)
false
Extracted source (around line #110):
108
109
110
111
112
113
              
finish_callback.call
while true
hijacked = accept_and_process_next_request(socket_wrapper, channel, buffer)
socket_wrapper = Utils::UnseekableSocket.new if hijacked
end
rescue Interrupted
Extracted source (around line #419):
417
418
419
420
421
422
              
handler = thread_handler.new(self, main_socket_options)
handler.install
handler.main_loop(set_initialization_state_to_true)
ensure
set_initialization_state.call(false)
unregister_current_thread
Extracted source (around line #113):
111
112
113
114
115
116
              
Thread.current.abort_on_exception = true
begin
yield(*args)
rescue SystemExit
raise
rescue Exception => e

Rails.root: /var/www/core

Application Trace | Framework Trace | Full Trace
app/models/shopping_list.rb:166:in `set_shopping_list_token_if_needed'
app/models/shopping_list.rb:152:in `get_token'
app/controllers/concerns/shopping_list_cookie_management.rb:17:in `set_shopping_list_cookie'
app/controllers/concerns/shopping_list_management.rb:87:in `set_placeholder_shopping_list_cookie'
app/controllers/concerns/shopping_list_management.rb:29:in `set_shopping_list'
vendor/bundle/ruby/2.5.0/gems/activemodel-5.0.7.2/lib/active_model/attribute_methods.rb:433:in `method_missing'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:382:in `block in make_lambda'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:150:in `block (2 levels) in halting_and_conditional'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/abstract_controller/callbacks.rb:12:in `block (2 levels) in '
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:151:in `block in halting_and_conditional'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:454:in `block in call'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:454:in `each'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:454:in `call'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:448:in `block (2 levels) in around'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:286:in `block (2 levels) in halting'
vendor/bundle/ruby/2.5.0/gems/ahoy_matey-3.0.0/lib/ahoy/controller.rb:45:in `set_ahoy_request_store'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:382:in `block in make_lambda'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:285:in `block in halting'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:447:in `block in around'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:455:in `call'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:101:in `__run_callbacks__'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:750:in `_run_process_action_callbacks'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:90:in `run_callbacks'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/abstract_controller/callbacks.rb:19:in `process_action'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_controller/metal/rescue.rb:20:in `process_action'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_controller/metal/instrumentation.rb:32:in `block in process_action'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/notifications.rb:164:in `block in instrument'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/notifications/instrumenter.rb:21:in `instrument'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/notifications.rb:164:in `instrument'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_controller/metal/instrumentation.rb:30:in `process_action'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_controller/metal/params_wrapper.rb:248:in `process_action'
vendor/bundle/ruby/2.5.0/gems/activerecord-5.0.7.2/lib/active_record/railties/controller_runtime.rb:18:in `process_action'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/abstract_controller/base.rb:126:in `process'
vendor/bundle/ruby/2.5.0/gems/actionview-5.0.7.2/lib/action_view/rendering.rb:30:in `process'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_controller/metal.rb:190:in `dispatch'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_controller/metal.rb:262:in `dispatch'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/route_set.rb:50:in `dispatch'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/route_set.rb:32:in `serve'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:39:in `block in serve'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:26:in `each'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:26:in `serve'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/route_set.rb:727:in `call'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/engine.rb:522:in `call'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/railtie.rb:193:in `public_send'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/railtie.rb:193:in `method_missing'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/mapper.rb:17:in `block in '
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/mapper.rb:46:in `serve'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:39:in `block in serve'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:26:in `each'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:26:in `serve'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/route_set.rb:727:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/bundler/gems/front_end_builds-8b743f6fee91/lib/front_end_builds/middleware/admin_assets.rb:25:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/rack/agent_hooks.rb:30:in `traced_call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/rack/browser_monitoring.rb:32:in `traced_call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/remotipart-1.4.2/lib/remotipart/middleware.rb:32:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/etag.rb:27:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/conditional_get.rb:27:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/head.rb:14:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/session/abstract/id.rb:269:in `context'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/session/abstract/id.rb:263:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/cookies.rb:613:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/callbacks.rb:38:in `block in call'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:97:in `__run_callbacks__'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:750:in `_run_call_callbacks'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:90:in `run_callbacks'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/callbacks.rb:36:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/remote_ip.rb:79:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/debug_exceptions.rb:49:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/show_exceptions.rb:31:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/rack/logger.rb:36:in `call_app'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/rack/logger.rb:24:in `block in call'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/tagged_logging.rb:69:in `block in tagged'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/tagged_logging.rb:26:in `tagged'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/tagged_logging.rb:69:in `tagged'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/rack/logger.rb:24:in `call'
vendor/bundle/ruby/2.5.0/gems/ahoy_matey-3.0.0/lib/ahoy/engine.rb:22:in `call_with_quiet_ahoy'
vendor/bundle/ruby/2.5.0/gems/silencer-1.0.1/lib/silencer/rails/logger.rb:41:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/request_store-1.5.0/lib/request_store/middleware.rb:19:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/request_id.rb:24:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/method_override.rb:24:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/runtime.rb:24:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/executor.rb:12:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/sendfile.rb:113:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-cors-1.0.2/lib/rack/cors.rb:97:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/engine.rb:522:in `call'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/railtie.rb:193:in `public_send'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/railtie.rb:193:in `method_missing'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
/usr/share/ruby/vendor_ruby/phusion_passenger/rack/thread_handler_extension.rb:107:in `process_request'
/usr/share/ruby/vendor_ruby/phusion_passenger/request_handler/thread_handler.rb:149:in `accept_and_process_next_request'
/usr/share/ruby/vendor_ruby/phusion_passenger/request_handler/thread_handler.rb:110:in `main_loop'
/usr/share/ruby/vendor_ruby/phusion_passenger/request_handler.rb:419:in `block (3 levels) in start_threads'
/usr/share/ruby/vendor_ruby/phusion_passenger/utils.rb:113:in `block in create_thread_and_abort_on_exception'
vendor/bundle/ruby/2.5.0/gems/activemodel-5.0.7.2/lib/active_model/attribute_methods.rb:433:in `method_missing'
app/models/shopping_list.rb:166:in `set_shopping_list_token_if_needed'
app/models/shopping_list.rb:152:in `get_token'
app/controllers/concerns/shopping_list_cookie_management.rb:17:in `set_shopping_list_cookie'
app/controllers/concerns/shopping_list_management.rb:87:in `set_placeholder_shopping_list_cookie'
app/controllers/concerns/shopping_list_management.rb:29:in `set_shopping_list'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:382:in `block in make_lambda'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:150:in `block (2 levels) in halting_and_conditional'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/abstract_controller/callbacks.rb:12:in `block (2 levels) in '
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:151:in `block in halting_and_conditional'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:454:in `block in call'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:454:in `each'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:454:in `call'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:448:in `block (2 levels) in around'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:286:in `block (2 levels) in halting'
vendor/bundle/ruby/2.5.0/gems/ahoy_matey-3.0.0/lib/ahoy/controller.rb:45:in `set_ahoy_request_store'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:382:in `block in make_lambda'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:285:in `block in halting'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:447:in `block in around'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:455:in `call'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:101:in `__run_callbacks__'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:750:in `_run_process_action_callbacks'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:90:in `run_callbacks'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/abstract_controller/callbacks.rb:19:in `process_action'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_controller/metal/rescue.rb:20:in `process_action'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_controller/metal/instrumentation.rb:32:in `block in process_action'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/notifications.rb:164:in `block in instrument'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/notifications/instrumenter.rb:21:in `instrument'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/notifications.rb:164:in `instrument'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_controller/metal/instrumentation.rb:30:in `process_action'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_controller/metal/params_wrapper.rb:248:in `process_action'
vendor/bundle/ruby/2.5.0/gems/activerecord-5.0.7.2/lib/active_record/railties/controller_runtime.rb:18:in `process_action'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/abstract_controller/base.rb:126:in `process'
vendor/bundle/ruby/2.5.0/gems/actionview-5.0.7.2/lib/action_view/rendering.rb:30:in `process'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_controller/metal.rb:190:in `dispatch'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_controller/metal.rb:262:in `dispatch'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/route_set.rb:50:in `dispatch'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/route_set.rb:32:in `serve'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:39:in `block in serve'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:26:in `each'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:26:in `serve'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/route_set.rb:727:in `call'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/engine.rb:522:in `call'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/railtie.rb:193:in `public_send'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/railtie.rb:193:in `method_missing'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/mapper.rb:17:in `block in '
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/mapper.rb:46:in `serve'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:39:in `block in serve'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:26:in `each'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:26:in `serve'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/route_set.rb:727:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/bundler/gems/front_end_builds-8b743f6fee91/lib/front_end_builds/middleware/admin_assets.rb:25:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/rack/agent_hooks.rb:30:in `traced_call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/rack/browser_monitoring.rb:32:in `traced_call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/remotipart-1.4.2/lib/remotipart/middleware.rb:32:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/etag.rb:27:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/conditional_get.rb:27:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/head.rb:14:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/session/abstract/id.rb:269:in `context'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/session/abstract/id.rb:263:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/cookies.rb:613:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/callbacks.rb:38:in `block in call'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:97:in `__run_callbacks__'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:750:in `_run_call_callbacks'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:90:in `run_callbacks'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/callbacks.rb:36:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/remote_ip.rb:79:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/debug_exceptions.rb:49:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/show_exceptions.rb:31:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/rack/logger.rb:36:in `call_app'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/rack/logger.rb:24:in `block in call'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/tagged_logging.rb:69:in `block in tagged'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/tagged_logging.rb:26:in `tagged'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/tagged_logging.rb:69:in `tagged'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/rack/logger.rb:24:in `call'
vendor/bundle/ruby/2.5.0/gems/ahoy_matey-3.0.0/lib/ahoy/engine.rb:22:in `call_with_quiet_ahoy'
vendor/bundle/ruby/2.5.0/gems/silencer-1.0.1/lib/silencer/rails/logger.rb:41:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/request_store-1.5.0/lib/request_store/middleware.rb:19:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/request_id.rb:24:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/method_override.rb:24:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/runtime.rb:24:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/executor.rb:12:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/sendfile.rb:113:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-cors-1.0.2/lib/rack/cors.rb:97:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/engine.rb:522:in `call'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/railtie.rb:193:in `public_send'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/railtie.rb:193:in `method_missing'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
/usr/share/ruby/vendor_ruby/phusion_passenger/rack/thread_handler_extension.rb:107:in `process_request'
/usr/share/ruby/vendor_ruby/phusion_passenger/request_handler/thread_handler.rb:149:in `accept_and_process_next_request'
/usr/share/ruby/vendor_ruby/phusion_passenger/request_handler/thread_handler.rb:110:in `main_loop'
/usr/share/ruby/vendor_ruby/phusion_passenger/request_handler.rb:419:in `block (3 levels) in start_threads'
/usr/share/ruby/vendor_ruby/phusion_passenger/utils.rb:113:in `block in create_thread_and_abort_on_exception'

Request

Parameters:

{"retailer_id"=>"48", "version"=>"v3", "folder"=>"sidenav_mobile", "id"=>"sidenav_mobile_for_retailer_48"}
Toggle session dump
retailer_id: "48"
session_id: "7ca7deb1705af382dfa2db5001584f49"
Toggle env dump
HTTP_ACCEPT: "*/*"
HTTP_VERSION: "HTTP/1.1"
HTTP_X_FORWARDED_FOR: "35.167.147.24"
ORIGINAL_SCRIPT_NAME: ""
REMOTE_ADDR: "172.31.4.5"
SERVER_NAME: "grocery.core1.rails.webstophq.com"
SERVER_PROTOCOL: "HTTP/1.1"

Response

Headers:

None

My Shopping List

New List Rename List Delete List
Ben's Birthday List Office Party List My 10/23/2018 List My 9/12/2018 List
  • Cras justo odio
  • Dapibus ac facilisis in
  • Morbi leo risus
  • Porta ac consectetur ac facilisis in
  • Vestibulum at eros
  • Cras justo odio
  • Dapibus ac facilisis in at eros
  • Morbi leo risus
  • Porta ac consectetur ac
  • Vestibulum at eros
  • Cras justo odio
  • Dapibus ac facilisis in
  • Morbi leo risus
  • Porta ac consectetur ac
  • Vestibulum at eros
  • Cras justo odio
  • Dapibus ac facilisis in
  • Morbi leo risus
  • Porta ac consectetur ac
  • Vestibulum at eros
Action Controller: Exception caught

NoMethodError in PartialsController#show

undefined method `shopping_list_token' for # Did you mean? shopping_list_items shopping_list_items= shopping_list_ids

Extracted source (around line #433):
431
432
433
434
435
436
              
else
match = matched_attribute_method(method.to_s)
match ? attribute_missing(match, *args, &block) : super
end
end
Extracted source (around line #166):
164
165
166
167
168
169
              
def set_shopping_list_token_if_needed
self.shopping_list_token = generate_unique_shopping_list_token if self.shopping_list_token.blank? && self.consumer_id.blank?
end
def generate_unique_shopping_list_token
Extracted source (around line #152):
150
151
152
153
154
155
              
def get_token
set_shopping_list_token_if_needed
shopping_list_token
end
Extracted source (around line #17):
15
16
17
18
19
20
              
puts "🍕 Setting shopping list cookie for #{shopping_list.inspect}"
cookies[shopping_list_cookie_name(shopping_list.retailer.id)] = {
value: shopping_list.get_token,
expires: 1.year.from_now,
domain: :all,
httponly: false
Extracted source (around line #87):
85
86
87
88
89
90
              
def set_placeholder_shopping_list_cookie
provisional_shopping_list = ShoppingList.new(retailer: @retailer, current_list: true)
set_shopping_list_cookie(provisional_shopping_list)
end
def assign_shopping_list_to_consumer
Extracted source (around line #29):
27
28
29
30
31
32
              
set_shopping_list_from_param if @shopping_list.blank? && current_consumer.present?
set_shopping_list_from_consumer if @shopping_list.blank? && current_consumer.present?
set_placeholder_shopping_list_cookie if @shopping_list.blank?
@shopping_list = ShoppingList.new if @shopping_list.blank?
end
puts "Shopping list: #{@shopping_list.inspect}"
Extracted source (around line #382):
380
381
382
383
384
385
              
case filter
when Symbol
lambda { |target, _, &blk| target.send filter, &blk }
when String
l = eval "lambda { |value| #{filter} }"
lambda { |target, value| target.instance_exec(value, &l) }
Extracted source (around line #150):
148
149
150
151
152
153
              
if !halted && user_conditions.all? { |c| c.call(target, value) }
result_lambda = -> { user_callback.call target, value }
env.halted = halted_lambda.call(target, result_lambda)
if env.halted
target.send :halted_callback_hook, filter
Extracted source (around line #12):
10
11
12
13
14
15
              
included do
define_callbacks :process_action,
terminator: ->(controller, result_lambda) { result_lambda.call if result_lambda.is_a?(Proc); controller.performed? },
skip_after_callbacks_if_terminated: true
end
Extracted source (around line #151):
149
150
151
152
153
154
              
if !halted && user_conditions.all? { |c| c.call(target, value) }
result_lambda = -> { user_callback.call target, value }
env.halted = halted_lambda.call(target, result_lambda)
if env.halted
target.send :halted_callback_hook, filter
end
Extracted source (around line #454):
452
453
454
455
456
457
              
def call(arg)
@before.each { |b| b.call(arg) }
value = @call.call(arg)
@after.each { |a| a.call(arg) }
value
Extracted source (around line #454):
452
453
454
455
456
457
              
def call(arg)
@before.each { |b| b.call(arg) }
value = @call.call(arg)
@after.each { |a| a.call(arg) }
value
Extracted source (around line #454):
452
453
454
455
456
457
              
def call(arg)
@before.each { |b| b.call(arg) }
value = @call.call(arg)
@after.each { |a| a.call(arg) }
value
Extracted source (around line #448):
446
447
448
449
450
451
              
CallbackSequence.new do |arg|
around.call(arg) {
self.call(arg)
}
end
end
Extracted source (around line #286):
284
285
286
287
288
289
              
else
user_callback.call(target, value) {
run.call.value
}
env
end
Extracted source (around line #45):
43
44
45
46
47
48
              
begin
Thread.current[:ahoy] = ahoy
yield
ensure
Thread.current[:ahoy] = previous_value
end
Extracted source (around line #382):
380
381
382
383
384
385
              
case filter
when Symbol
lambda { |target, _, &blk| target.send filter, &blk }
when String
l = eval "lambda { |value| #{filter} }"
lambda { |target, value| target.instance_exec(value, &l) }
Extracted source (around line #285):
283
284
285
286
287
288
              
run.call
else
user_callback.call(target, value) {
run.call.value
}
env
Extracted source (around line #447):
445
446
447
448
449
450
              
def around(&around)
CallbackSequence.new do |arg|
around.call(arg) {
self.call(arg)
}
end
Extracted source (around line #455):
453
454
455
456
457
458
              
def call(arg)
@before.each { |b| b.call(arg) }
value = @call.call(arg)
@after.each { |a| a.call(arg) }
value
end
Extracted source (around line #101):
99
100
101
102
103
104
              
runner = callbacks.compile
e = Filters::Environment.new(self, false, nil, block)
runner.call(e).value
end
end
Extracted source (around line #750):
748
749
750
751
752
753
              
module_eval <<-RUBY, __FILE__, __LINE__ + 1
def _run_#{name}_callbacks(&block)
__run_callbacks__(_#{name}_callbacks, &block)
end
RUBY
end
Extracted source (around line #90):
88
89
90
91
92
93
              
# end
def run_callbacks(kind, &block)
send "_run_#{kind}_callbacks", &block
end
private
Extracted source (around line #19):
17
18
19
20
21
22
              
# process_action callbacks around the normal behavior.
def process_action(*args)
run_callbacks(:process_action) do
super
end
end
Extracted source (around line #20):
18
19
20
21
22
23
              
private
def process_action(*args)
super
rescue Exception => exception
request.env['action_dispatch.show_detailed_exceptions'] ||= show_detailed_exceptions?
rescue_with_handler(exception) || raise
Extracted source (around line #32):
30
31
32
33
34
35
              
ActiveSupport::Notifications.instrument("process_action.action_controller", raw_payload) do |payload|
begin
result = super
payload[:status] = response.status
result
ensure
Extracted source (around line #164):
162
163
164
165
166
167
              
def instrument(name, payload = {})
if notifier.listening?(name)
instrumenter.instrument(name, payload) { yield payload if block_given? }
else
yield payload if block_given?
end
Extracted source (around line #21):
19
20
21
22
23
24
              
listeners_state = start name, payload
begin
yield payload
rescue Exception => e
payload[:exception] = [e.class.name, e.message]
payload[:exception_object] = e
Extracted source (around line #164):
162
163
164
165
166
167
              
def instrument(name, payload = {})
if notifier.listening?(name)
instrumenter.instrument(name, payload) { yield payload if block_given? }
else
yield payload if block_given?
end
Extracted source (around line #30):
28
29
30
31
32
33
              
ActiveSupport::Notifications.instrument("start_processing.action_controller", raw_payload.dup)
ActiveSupport::Notifications.instrument("process_action.action_controller", raw_payload) do |payload|
begin
result = super
payload[:status] = response.status
Extracted source (around line #248):
246
247
248
249
250
251
              
request.filtered_parameters.merge! wrapped_filtered_hash
end
super
end
private
Extracted source (around line #18):
16
17
18
19
20
21
              
# and it won't be cleaned up by the method below.
ActiveRecord::LogSubscriber.reset_runtime
super
end
def cleanup_view_runtime
Extracted source (around line #126):
124
125
126
127
128
129
              
@_response_body = nil
process_action(action_name, *args)
end
# Delegates to the class' ::controller_path
Extracted source (around line #30):
28
29
30
31
32
33
              
def process(*) #:nodoc:
old_config, I18n.config = I18n.config, I18nProxy.new(I18n.config, lookup_context)
super
ensure
I18n.config = old_config
end
Extracted source (around line #190):
188
189
190
191
192
193
              
set_request!(request)
set_response!(response)
process(name)
request.commit_flash
to_a
end
Extracted source (around line #262):
260
261
262
263
264
265
              
middleware_stack.build(name) { |env| new.dispatch(name, req, res) }.call req.env
else
new.dispatch(name, req, res)
end
end
end
Extracted source (around line #50):
48
49
50
51
52
53
              
def dispatch(controller, action, req, res)
controller.dispatch(action, req, res)
end
end
Extracted source (around line #32):
30
31
32
33
34
35
              
controller = controller req
res = controller.make_response! req
dispatch(controller, params[:action], req, res)
rescue ActionController::RoutingError
if @raise_on_name_error
raise
Extracted source (around line #39):
37
38
39
40
41
42
              
req.path_parameters = set_params.merge parameters
status, headers, body = route.app.serve(req)
if 'pass' == headers['X-Cascade']
req.script_name = script_name
Extracted source (around line #26):
24
25
26
27
28
29
              
def serve(req)
find_routes(req).each do |match, parameters, route|
set_params = req.path_parameters
path_info = req.path_info
script_name = req.script_name
Extracted source (around line #26):
24
25
26
27
28
29
              
def serve(req)
find_routes(req).each do |match, parameters, route|
set_params = req.path_parameters
path_info = req.path_info
script_name = req.script_name
Extracted source (around line #727):
725
726
727
728
729
730
              
req = make_request(env)
req.path_info = Journey::Router::Utils.normalize_path(req.path_info)
@router.serve(req)
end
def recognize_path(path, environment = {})
Extracted source (around line #522):
520
521
522
523
524
525
              
def call(env)
req = build_request env
app.call req.env
end
# Defines additional Rack env configuration that is added on each call.
Extracted source (around line #193):
191
192
193
194
195
196
              
def method_missing(name, *args, &block)
if instance.respond_to?(name)
instance.public_send(name, *args, &block)
else
super
end
Extracted source (around line #193):
191
192
193
194
195
196
              
def method_missing(name, *args, &block)
if instance.respond_to?(name)
instance.public_send(name, *args, &block)
else
super
end
Extracted source (around line #17):
15
16
17
18
19
20
              
SERVE = ->(app, req) { app.serve req }
CALL = ->(app, req) { app.call req.env }
def initialize(app, constraints, strategy)
# Unwrap Constraints objects. I don't actually think it's possible
Extracted source (around line #46):
44
45
46
47
48
49
              
return [ 404, {'X-Cascade' => 'pass'}, [] ] unless matches?(req)
@strategy.call @app, req
end
private
Extracted source (around line #39):
37
38
39
40
41
42
              
req.path_parameters = set_params.merge parameters
status, headers, body = route.app.serve(req)
if 'pass' == headers['X-Cascade']
req.script_name = script_name
Extracted source (around line #26):
24
25
26
27
28
29
              
def serve(req)
find_routes(req).each do |match, parameters, route|
set_params = req.path_parameters
path_info = req.path_info
script_name = req.script_name
Extracted source (around line #26):
24
25
26
27
28
29
              
def serve(req)
find_routes(req).each do |match, parameters, route|
set_params = req.path_parameters
path_info = req.path_info
script_name = req.script_name
Extracted source (around line #727):
725
726
727
728
729
730
              
req = make_request(env)
req.path_info = Journey::Router::Utils.normalize_path(req.path_info)
@router.serve(req)
end
def recognize_path(path, environment = {})
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #25):
23
24
25
26
27
28
              
super
else
@app.call(env)
end
end
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #30):
28
29
30
31
32
33
              
def traced_call(env)
@app.call(env)
end
end
end
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #32):
30
31
32
33
34
35
              
def traced_call(env)
result = @app.call(env) # [status, headers, response]
js_to_inject = NewRelic::Agent.browser_timing_header
if (js_to_inject != "") && should_instrument?(env, result[0], result[1])
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #32):
30
31
32
33
34
35
              
end
@app.call(env)
end
end
end
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #27):
25
26
27
28
29
30
              
def call(env)
status, headers, body = @app.call(env)
if etag_status?(status) && etag_body?(body) && !skip_caching?(headers)
original_body = body
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #27):
25
26
27
28
29
30
              
case env[REQUEST_METHOD]
when "GET", "HEAD"
status, headers, body = @app.call(env)
headers = Utils::HeaderHash.new(headers)
if status == 200 && fresh?(env, headers)
status = 304
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #14):
12
13
14
15
16
17
              
def call(env)
status, headers, body = @app.call(env)
if env[REQUEST_METHOD] == HEAD
[
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #269):
267
268
269
270
271
272
              
req = make_request env
prepare_session(req)
status, headers, body = app.call(req.env)
res = Rack::Response::Raw.new status, headers
commit_session(req, res)
[status, headers, body]
Extracted source (around line #263):
261
262
263
264
265
266
              
def call(env)
context(env)
end
def context(env, app = @app)
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #613):
611
612
613
614
615
616
              
request = ActionDispatch::Request.new env
status, headers, body = @app.call(env)
if request.have_cookie_jar?
cookie_jar = request.cookie_jar
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #38):
36
37
38
39
40
41
              
result = run_callbacks :call do
begin
@app.call(env)
rescue => error
end
end
Extracted source (around line #97):
95
96
97
98
99
100
              
def __run_callbacks__(callbacks, &block)
if callbacks.empty?
yield if block_given?
else
runner = callbacks.compile
e = Filters::Environment.new(self, false, nil, block)
Extracted source (around line #750):
748
749
750
751
752
753
              
module_eval <<-RUBY, __FILE__, __LINE__ + 1
def _run_#{name}_callbacks(&block)
__run_callbacks__(_#{name}_callbacks, &block)
end
RUBY
end
Extracted source (around line #90):
88
89
90
91
92
93
              
# end
def run_callbacks(kind, &block)
send "_run_#{kind}_callbacks", &block
end
private
Extracted source (around line #36):
34
35
36
37
38
39
              
def call(env)
error = nil
result = run_callbacks :call do
begin
@app.call(env)
rescue => error
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #79):
77
78
79
80
81
82
              
req = ActionDispatch::Request.new env
req.remote_ip = GetIp.new(req, check_ip, proxies)
@app.call(req.env)
end
# The GetIp class exists as a way to defer processing of the request data
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #49):
47
48
49
50
51
52
              
def call(env)
request = ActionDispatch::Request.new env
_, headers, body = response = @app.call(env)
if headers['X-Cascade'] == 'pass'
body.close if body.respond_to?(:close)
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #31):
29
30
31
32
33
34
              
def call(env)
request = ActionDispatch::Request.new env
@app.call(env)
rescue Exception => exception
if request.show_exceptions?
render_exception(request, exception)
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #36):
34
35
36
37
38
39
              
instrumenter.start 'request.action_dispatch', request: request
logger.info { started_request_message(request) }
resp = @app.call(env)
resp[2] = ::Rack::BodyProxy.new(resp[2]) { finish(request) }
resp
rescue Exception
Extracted source (around line #24):
22
23
24
25
26
27
              
if logger.respond_to?(:tagged)
logger.tagged(compute_tags(request)) { call_app(request, env) }
else
call_app(request, env)
end
Extracted source (around line #69):
67
68
69
70
71
72
              
def tagged(*tags)
formatter.tagged(*tags) { yield self }
end
def flush
Extracted source (around line #26):
24
25
26
27
28
29
              
def tagged(*tags)
new_tags = push_tags(*tags)
yield self
ensure
pop_tags(new_tags.size)
end
Extracted source (around line #69):
67
68
69
70
71
72
              
def tagged(*tags)
formatter.tagged(*tags) { yield self }
end
def flush
Extracted source (around line #24):
22
23
24
25
26
27
              
if logger.respond_to?(:tagged)
logger.tagged(compute_tags(request)) { call_app(request, env) }
else
call_app(request, env)
end
Extracted source (around line #22):
20
21
22
23
24
25
              
end
else
call_without_quiet_ahoy(env)
end
end
alias_method :call_without_quiet_ahoy, :call
Extracted source (around line #41):
39
40
41
42
43
44
              
end
else
super
end
end
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #19):
17
18
19
20
21
22
              
RequestStore.begin!
response = @app.call(env)
returned = response << Rack::BodyProxy.new(response.pop) do
RequestStore.end!
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #24):
22
23
24
25
26
27
              
req = ActionDispatch::Request.new env
req.request_id = make_request_id(req.x_request_id)
@app.call(env).tap { |_status, headers, _body| headers[X_REQUEST_ID] = req.request_id }
end
private
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #24):
22
23
24
25
26
27
              
end
@app.call(env)
end
def method_override(env)
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #24):
22
23
24
25
26
27
              
def call(env)
start_time = Utils.clock_time
status, headers, body = @app.call(env)
request_time = Utils.clock_time - start_time
unless headers.has_key?(@header_name)
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #28):
26
27
28
29
30
31
              
def call(env)
LocalCacheRegistry.set_cache_for(local_cache_key, LocalStore.new)
response = @app.call(env)
response[2] = ::Rack::BodyProxy.new(response[2]) do
LocalCacheRegistry.set_cache_for(local_cache_key, nil)
end
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #12):
10
11
12
13
14
15
              
state = @executor.run!
begin
response = @app.call(env)
returned = response << ::Rack::BodyProxy.new(response.pop) { state.complete! }
ensure
state.complete! unless returned
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #113):
111
112
113
114
115
116
              
def call(env)
status, headers, body = @app.call(env)
if body.respond_to?(:to_path)
case type = variation(env)
when 'X-Accel-Redirect'
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #97):
95
96
97
98
99
100
              
vary_resource = resource_for_path(env[PATH_INFO])
status, headers, body = @app.call env
if add_headers
headers = add_headers.merge(headers)
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #522):
520
521
522
523
524
525
              
def call(env)
req = build_request env
app.call req.env
end
# Defines additional Rack env configuration that is added on each call.
Extracted source (around line #193):
191
192
193
194
195
196
              
def method_missing(name, *args, &block)
if instance.respond_to?(name)
instance.public_send(name, *args, &block)
else
super
end
Extracted source (around line #193):
191
192
193
194
195
196
              
def method_missing(name, *args, &block)
if instance.respond_to?(name)
instance.public_send(name, *args, &block)
else
super
end
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #107):
105
106
107
108
109
110
              
begin
status, headers, body = @app.call(env)
rescue => e
if e.is_a?(Errno::ENOBUFS)
raise e
Extracted source (around line #149):
147
148
149
150
151
152
              
begin
if headers[REQUEST_METHOD] == GET
process_request(headers, connection, socket_wrapper, @protocol == :http)
elsif headers[REQUEST_METHOD] == PING
process_ping(headers, connection)
false
Extracted source (around line #110):
108
109
110
111
112
113
              
finish_callback.call
while true
hijacked = accept_and_process_next_request(socket_wrapper, channel, buffer)
socket_wrapper = Utils::UnseekableSocket.new if hijacked
end
rescue Interrupted
Extracted source (around line #419):
417
418
419
420
421
422
              
handler = thread_handler.new(self, main_socket_options)
handler.install
handler.main_loop(set_initialization_state_to_true)
ensure
set_initialization_state.call(false)
unregister_current_thread
Extracted source (around line #113):
111
112
113
114
115
116
              
Thread.current.abort_on_exception = true
begin
yield(*args)
rescue SystemExit
raise
rescue Exception => e

Rails.root: /var/www/core

Application Trace | Framework Trace | Full Trace
app/models/shopping_list.rb:166:in `set_shopping_list_token_if_needed'
app/models/shopping_list.rb:152:in `get_token'
app/controllers/concerns/shopping_list_cookie_management.rb:17:in `set_shopping_list_cookie'
app/controllers/concerns/shopping_list_management.rb:87:in `set_placeholder_shopping_list_cookie'
app/controllers/concerns/shopping_list_management.rb:29:in `set_shopping_list'
vendor/bundle/ruby/2.5.0/gems/activemodel-5.0.7.2/lib/active_model/attribute_methods.rb:433:in `method_missing'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:382:in `block in make_lambda'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:150:in `block (2 levels) in halting_and_conditional'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/abstract_controller/callbacks.rb:12:in `block (2 levels) in '
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:151:in `block in halting_and_conditional'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:454:in `block in call'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:454:in `each'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:454:in `call'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:448:in `block (2 levels) in around'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:286:in `block (2 levels) in halting'
vendor/bundle/ruby/2.5.0/gems/ahoy_matey-3.0.0/lib/ahoy/controller.rb:45:in `set_ahoy_request_store'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:382:in `block in make_lambda'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:285:in `block in halting'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:447:in `block in around'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:455:in `call'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:101:in `__run_callbacks__'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:750:in `_run_process_action_callbacks'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:90:in `run_callbacks'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/abstract_controller/callbacks.rb:19:in `process_action'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_controller/metal/rescue.rb:20:in `process_action'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_controller/metal/instrumentation.rb:32:in `block in process_action'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/notifications.rb:164:in `block in instrument'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/notifications/instrumenter.rb:21:in `instrument'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/notifications.rb:164:in `instrument'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_controller/metal/instrumentation.rb:30:in `process_action'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_controller/metal/params_wrapper.rb:248:in `process_action'
vendor/bundle/ruby/2.5.0/gems/activerecord-5.0.7.2/lib/active_record/railties/controller_runtime.rb:18:in `process_action'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/abstract_controller/base.rb:126:in `process'
vendor/bundle/ruby/2.5.0/gems/actionview-5.0.7.2/lib/action_view/rendering.rb:30:in `process'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_controller/metal.rb:190:in `dispatch'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_controller/metal.rb:262:in `dispatch'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/route_set.rb:50:in `dispatch'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/route_set.rb:32:in `serve'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:39:in `block in serve'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:26:in `each'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:26:in `serve'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/route_set.rb:727:in `call'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/engine.rb:522:in `call'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/railtie.rb:193:in `public_send'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/railtie.rb:193:in `method_missing'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/mapper.rb:17:in `block in '
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/mapper.rb:46:in `serve'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:39:in `block in serve'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:26:in `each'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:26:in `serve'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/route_set.rb:727:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/bundler/gems/front_end_builds-8b743f6fee91/lib/front_end_builds/middleware/admin_assets.rb:25:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/rack/agent_hooks.rb:30:in `traced_call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/rack/browser_monitoring.rb:32:in `traced_call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/remotipart-1.4.2/lib/remotipart/middleware.rb:32:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/etag.rb:27:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/conditional_get.rb:27:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/head.rb:14:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/session/abstract/id.rb:269:in `context'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/session/abstract/id.rb:263:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/cookies.rb:613:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/callbacks.rb:38:in `block in call'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:97:in `__run_callbacks__'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:750:in `_run_call_callbacks'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:90:in `run_callbacks'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/callbacks.rb:36:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/remote_ip.rb:79:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/debug_exceptions.rb:49:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/show_exceptions.rb:31:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/rack/logger.rb:36:in `call_app'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/rack/logger.rb:24:in `block in call'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/tagged_logging.rb:69:in `block in tagged'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/tagged_logging.rb:26:in `tagged'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/tagged_logging.rb:69:in `tagged'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/rack/logger.rb:24:in `call'
vendor/bundle/ruby/2.5.0/gems/ahoy_matey-3.0.0/lib/ahoy/engine.rb:22:in `call_with_quiet_ahoy'
vendor/bundle/ruby/2.5.0/gems/silencer-1.0.1/lib/silencer/rails/logger.rb:41:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/request_store-1.5.0/lib/request_store/middleware.rb:19:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/request_id.rb:24:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/method_override.rb:24:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/runtime.rb:24:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/executor.rb:12:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/sendfile.rb:113:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-cors-1.0.2/lib/rack/cors.rb:97:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/engine.rb:522:in `call'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/railtie.rb:193:in `public_send'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/railtie.rb:193:in `method_missing'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
/usr/share/ruby/vendor_ruby/phusion_passenger/rack/thread_handler_extension.rb:107:in `process_request'
/usr/share/ruby/vendor_ruby/phusion_passenger/request_handler/thread_handler.rb:149:in `accept_and_process_next_request'
/usr/share/ruby/vendor_ruby/phusion_passenger/request_handler/thread_handler.rb:110:in `main_loop'
/usr/share/ruby/vendor_ruby/phusion_passenger/request_handler.rb:419:in `block (3 levels) in start_threads'
/usr/share/ruby/vendor_ruby/phusion_passenger/utils.rb:113:in `block in create_thread_and_abort_on_exception'
vendor/bundle/ruby/2.5.0/gems/activemodel-5.0.7.2/lib/active_model/attribute_methods.rb:433:in `method_missing'
app/models/shopping_list.rb:166:in `set_shopping_list_token_if_needed'
app/models/shopping_list.rb:152:in `get_token'
app/controllers/concerns/shopping_list_cookie_management.rb:17:in `set_shopping_list_cookie'
app/controllers/concerns/shopping_list_management.rb:87:in `set_placeholder_shopping_list_cookie'
app/controllers/concerns/shopping_list_management.rb:29:in `set_shopping_list'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:382:in `block in make_lambda'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:150:in `block (2 levels) in halting_and_conditional'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/abstract_controller/callbacks.rb:12:in `block (2 levels) in '
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:151:in `block in halting_and_conditional'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:454:in `block in call'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:454:in `each'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:454:in `call'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:448:in `block (2 levels) in around'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:286:in `block (2 levels) in halting'
vendor/bundle/ruby/2.5.0/gems/ahoy_matey-3.0.0/lib/ahoy/controller.rb:45:in `set_ahoy_request_store'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:382:in `block in make_lambda'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:285:in `block in halting'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:447:in `block in around'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:455:in `call'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:101:in `__run_callbacks__'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:750:in `_run_process_action_callbacks'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:90:in `run_callbacks'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/abstract_controller/callbacks.rb:19:in `process_action'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_controller/metal/rescue.rb:20:in `process_action'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_controller/metal/instrumentation.rb:32:in `block in process_action'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/notifications.rb:164:in `block in instrument'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/notifications/instrumenter.rb:21:in `instrument'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/notifications.rb:164:in `instrument'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_controller/metal/instrumentation.rb:30:in `process_action'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_controller/metal/params_wrapper.rb:248:in `process_action'
vendor/bundle/ruby/2.5.0/gems/activerecord-5.0.7.2/lib/active_record/railties/controller_runtime.rb:18:in `process_action'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/abstract_controller/base.rb:126:in `process'
vendor/bundle/ruby/2.5.0/gems/actionview-5.0.7.2/lib/action_view/rendering.rb:30:in `process'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_controller/metal.rb:190:in `dispatch'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_controller/metal.rb:262:in `dispatch'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/route_set.rb:50:in `dispatch'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/route_set.rb:32:in `serve'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:39:in `block in serve'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:26:in `each'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:26:in `serve'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/route_set.rb:727:in `call'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/engine.rb:522:in `call'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/railtie.rb:193:in `public_send'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/railtie.rb:193:in `method_missing'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/mapper.rb:17:in `block in '
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/mapper.rb:46:in `serve'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:39:in `block in serve'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:26:in `each'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:26:in `serve'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/route_set.rb:727:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/bundler/gems/front_end_builds-8b743f6fee91/lib/front_end_builds/middleware/admin_assets.rb:25:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/rack/agent_hooks.rb:30:in `traced_call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/rack/browser_monitoring.rb:32:in `traced_call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/remotipart-1.4.2/lib/remotipart/middleware.rb:32:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/etag.rb:27:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/conditional_get.rb:27:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/head.rb:14:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/session/abstract/id.rb:269:in `context'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/session/abstract/id.rb:263:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/cookies.rb:613:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/callbacks.rb:38:in `block in call'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:97:in `__run_callbacks__'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:750:in `_run_call_callbacks'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:90:in `run_callbacks'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/callbacks.rb:36:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/remote_ip.rb:79:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/debug_exceptions.rb:49:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/show_exceptions.rb:31:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/rack/logger.rb:36:in `call_app'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/rack/logger.rb:24:in `block in call'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/tagged_logging.rb:69:in `block in tagged'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/tagged_logging.rb:26:in `tagged'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/tagged_logging.rb:69:in `tagged'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/rack/logger.rb:24:in `call'
vendor/bundle/ruby/2.5.0/gems/ahoy_matey-3.0.0/lib/ahoy/engine.rb:22:in `call_with_quiet_ahoy'
vendor/bundle/ruby/2.5.0/gems/silencer-1.0.1/lib/silencer/rails/logger.rb:41:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/request_store-1.5.0/lib/request_store/middleware.rb:19:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/request_id.rb:24:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/method_override.rb:24:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/runtime.rb:24:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/executor.rb:12:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/sendfile.rb:113:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-cors-1.0.2/lib/rack/cors.rb:97:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/engine.rb:522:in `call'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/railtie.rb:193:in `public_send'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/railtie.rb:193:in `method_missing'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
/usr/share/ruby/vendor_ruby/phusion_passenger/rack/thread_handler_extension.rb:107:in `process_request'
/usr/share/ruby/vendor_ruby/phusion_passenger/request_handler/thread_handler.rb:149:in `accept_and_process_next_request'
/usr/share/ruby/vendor_ruby/phusion_passenger/request_handler/thread_handler.rb:110:in `main_loop'
/usr/share/ruby/vendor_ruby/phusion_passenger/request_handler.rb:419:in `block (3 levels) in start_threads'
/usr/share/ruby/vendor_ruby/phusion_passenger/utils.rb:113:in `block in create_thread_and_abort_on_exception'

Request

Parameters:

{"retailer_id"=>"48", "version"=>"v3", "folder"=>"sidenav_desktop", "id"=>"sidenav_desktop_for_retailer_48"}
Toggle session dump
retailer_id: "48"
session_id: "c9ed216be819a6b767039d90bd93bb17"
Toggle env dump
HTTP_ACCEPT: "*/*"
HTTP_VERSION: "HTTP/1.1"
HTTP_X_FORWARDED_FOR: "35.167.147.24"
ORIGINAL_SCRIPT_NAME: ""
REMOTE_ADDR: "172.31.54.220"
SERVER_NAME: "grocery.core1.rails.webstophq.com"
SERVER_PROTOCOL: "HTTP/1.1"

Response

Headers:

None
Email

Sent From

Send To

Action Controller: Exception caught

NoMethodError in PartialsController#show

undefined method `shopping_list_token' for # Did you mean? shopping_list_items shopping_list_items= shopping_list_ids

Extracted source (around line #433):
431
432
433
434
435
436
              
else
match = matched_attribute_method(method.to_s)
match ? attribute_missing(match, *args, &block) : super
end
end
Extracted source (around line #166):
164
165
166
167
168
169
              
def set_shopping_list_token_if_needed
self.shopping_list_token = generate_unique_shopping_list_token if self.shopping_list_token.blank? && self.consumer_id.blank?
end
def generate_unique_shopping_list_token
Extracted source (around line #152):
150
151
152
153
154
155
              
def get_token
set_shopping_list_token_if_needed
shopping_list_token
end
Extracted source (around line #17):
15
16
17
18
19
20
              
puts "🍕 Setting shopping list cookie for #{shopping_list.inspect}"
cookies[shopping_list_cookie_name(shopping_list.retailer.id)] = {
value: shopping_list.get_token,
expires: 1.year.from_now,
domain: :all,
httponly: false
Extracted source (around line #87):
85
86
87
88
89
90
              
def set_placeholder_shopping_list_cookie
provisional_shopping_list = ShoppingList.new(retailer: @retailer, current_list: true)
set_shopping_list_cookie(provisional_shopping_list)
end
def assign_shopping_list_to_consumer
Extracted source (around line #29):
27
28
29
30
31
32
              
set_shopping_list_from_param if @shopping_list.blank? && current_consumer.present?
set_shopping_list_from_consumer if @shopping_list.blank? && current_consumer.present?
set_placeholder_shopping_list_cookie if @shopping_list.blank?
@shopping_list = ShoppingList.new if @shopping_list.blank?
end
puts "Shopping list: #{@shopping_list.inspect}"
Extracted source (around line #382):
380
381
382
383
384
385
              
case filter
when Symbol
lambda { |target, _, &blk| target.send filter, &blk }
when String
l = eval "lambda { |value| #{filter} }"
lambda { |target, value| target.instance_exec(value, &l) }
Extracted source (around line #150):
148
149
150
151
152
153
              
if !halted && user_conditions.all? { |c| c.call(target, value) }
result_lambda = -> { user_callback.call target, value }
env.halted = halted_lambda.call(target, result_lambda)
if env.halted
target.send :halted_callback_hook, filter
Extracted source (around line #12):
10
11
12
13
14
15
              
included do
define_callbacks :process_action,
terminator: ->(controller, result_lambda) { result_lambda.call if result_lambda.is_a?(Proc); controller.performed? },
skip_after_callbacks_if_terminated: true
end
Extracted source (around line #151):
149
150
151
152
153
154
              
if !halted && user_conditions.all? { |c| c.call(target, value) }
result_lambda = -> { user_callback.call target, value }
env.halted = halted_lambda.call(target, result_lambda)
if env.halted
target.send :halted_callback_hook, filter
end
Extracted source (around line #454):
452
453
454
455
456
457
              
def call(arg)
@before.each { |b| b.call(arg) }
value = @call.call(arg)
@after.each { |a| a.call(arg) }
value
Extracted source (around line #454):
452
453
454
455
456
457
              
def call(arg)
@before.each { |b| b.call(arg) }
value = @call.call(arg)
@after.each { |a| a.call(arg) }
value
Extracted source (around line #454):
452
453
454
455
456
457
              
def call(arg)
@before.each { |b| b.call(arg) }
value = @call.call(arg)
@after.each { |a| a.call(arg) }
value
Extracted source (around line #448):
446
447
448
449
450
451
              
CallbackSequence.new do |arg|
around.call(arg) {
self.call(arg)
}
end
end
Extracted source (around line #286):
284
285
286
287
288
289
              
else
user_callback.call(target, value) {
run.call.value
}
env
end
Extracted source (around line #45):
43
44
45
46
47
48
              
begin
Thread.current[:ahoy] = ahoy
yield
ensure
Thread.current[:ahoy] = previous_value
end
Extracted source (around line #382):
380
381
382
383
384
385
              
case filter
when Symbol
lambda { |target, _, &blk| target.send filter, &blk }
when String
l = eval "lambda { |value| #{filter} }"
lambda { |target, value| target.instance_exec(value, &l) }
Extracted source (around line #285):
283
284
285
286
287
288
              
run.call
else
user_callback.call(target, value) {
run.call.value
}
env
Extracted source (around line #447):
445
446
447
448
449
450
              
def around(&around)
CallbackSequence.new do |arg|
around.call(arg) {
self.call(arg)
}
end
Extracted source (around line #455):
453
454
455
456
457
458
              
def call(arg)
@before.each { |b| b.call(arg) }
value = @call.call(arg)
@after.each { |a| a.call(arg) }
value
end
Extracted source (around line #101):
99
100
101
102
103
104
              
runner = callbacks.compile
e = Filters::Environment.new(self, false, nil, block)
runner.call(e).value
end
end
Extracted source (around line #750):
748
749
750
751
752
753
              
module_eval <<-RUBY, __FILE__, __LINE__ + 1
def _run_#{name}_callbacks(&block)
__run_callbacks__(_#{name}_callbacks, &block)
end
RUBY
end
Extracted source (around line #90):
88
89
90
91
92
93
              
# end
def run_callbacks(kind, &block)
send "_run_#{kind}_callbacks", &block
end
private
Extracted source (around line #19):
17
18
19
20
21
22
              
# process_action callbacks around the normal behavior.
def process_action(*args)
run_callbacks(:process_action) do
super
end
end
Extracted source (around line #20):
18
19
20
21
22
23
              
private
def process_action(*args)
super
rescue Exception => exception
request.env['action_dispatch.show_detailed_exceptions'] ||= show_detailed_exceptions?
rescue_with_handler(exception) || raise
Extracted source (around line #32):
30
31
32
33
34
35
              
ActiveSupport::Notifications.instrument("process_action.action_controller", raw_payload) do |payload|
begin
result = super
payload[:status] = response.status
result
ensure
Extracted source (around line #164):
162
163
164
165
166
167
              
def instrument(name, payload = {})
if notifier.listening?(name)
instrumenter.instrument(name, payload) { yield payload if block_given? }
else
yield payload if block_given?
end
Extracted source (around line #21):
19
20
21
22
23
24
              
listeners_state = start name, payload
begin
yield payload
rescue Exception => e
payload[:exception] = [e.class.name, e.message]
payload[:exception_object] = e
Extracted source (around line #164):
162
163
164
165
166
167
              
def instrument(name, payload = {})
if notifier.listening?(name)
instrumenter.instrument(name, payload) { yield payload if block_given? }
else
yield payload if block_given?
end
Extracted source (around line #30):
28
29
30
31
32
33
              
ActiveSupport::Notifications.instrument("start_processing.action_controller", raw_payload.dup)
ActiveSupport::Notifications.instrument("process_action.action_controller", raw_payload) do |payload|
begin
result = super
payload[:status] = response.status
Extracted source (around line #248):
246
247
248
249
250
251
              
request.filtered_parameters.merge! wrapped_filtered_hash
end
super
end
private
Extracted source (around line #18):
16
17
18
19
20
21
              
# and it won't be cleaned up by the method below.
ActiveRecord::LogSubscriber.reset_runtime
super
end
def cleanup_view_runtime
Extracted source (around line #126):
124
125
126
127
128
129
              
@_response_body = nil
process_action(action_name, *args)
end
# Delegates to the class' ::controller_path
Extracted source (around line #30):
28
29
30
31
32
33
              
def process(*) #:nodoc:
old_config, I18n.config = I18n.config, I18nProxy.new(I18n.config, lookup_context)
super
ensure
I18n.config = old_config
end
Extracted source (around line #190):
188
189
190
191
192
193
              
set_request!(request)
set_response!(response)
process(name)
request.commit_flash
to_a
end
Extracted source (around line #262):
260
261
262
263
264
265
              
middleware_stack.build(name) { |env| new.dispatch(name, req, res) }.call req.env
else
new.dispatch(name, req, res)
end
end
end
Extracted source (around line #50):
48
49
50
51
52
53
              
def dispatch(controller, action, req, res)
controller.dispatch(action, req, res)
end
end
Extracted source (around line #32):
30
31
32
33
34
35
              
controller = controller req
res = controller.make_response! req
dispatch(controller, params[:action], req, res)
rescue ActionController::RoutingError
if @raise_on_name_error
raise
Extracted source (around line #39):
37
38
39
40
41
42
              
req.path_parameters = set_params.merge parameters
status, headers, body = route.app.serve(req)
if 'pass' == headers['X-Cascade']
req.script_name = script_name
Extracted source (around line #26):
24
25
26
27
28
29
              
def serve(req)
find_routes(req).each do |match, parameters, route|
set_params = req.path_parameters
path_info = req.path_info
script_name = req.script_name
Extracted source (around line #26):
24
25
26
27
28
29
              
def serve(req)
find_routes(req).each do |match, parameters, route|
set_params = req.path_parameters
path_info = req.path_info
script_name = req.script_name
Extracted source (around line #727):
725
726
727
728
729
730
              
req = make_request(env)
req.path_info = Journey::Router::Utils.normalize_path(req.path_info)
@router.serve(req)
end
def recognize_path(path, environment = {})
Extracted source (around line #522):
520
521
522
523
524
525
              
def call(env)
req = build_request env
app.call req.env
end
# Defines additional Rack env configuration that is added on each call.
Extracted source (around line #193):
191
192
193
194
195
196
              
def method_missing(name, *args, &block)
if instance.respond_to?(name)
instance.public_send(name, *args, &block)
else
super
end
Extracted source (around line #193):
191
192
193
194
195
196
              
def method_missing(name, *args, &block)
if instance.respond_to?(name)
instance.public_send(name, *args, &block)
else
super
end
Extracted source (around line #17):
15
16
17
18
19
20
              
SERVE = ->(app, req) { app.serve req }
CALL = ->(app, req) { app.call req.env }
def initialize(app, constraints, strategy)
# Unwrap Constraints objects. I don't actually think it's possible
Extracted source (around line #46):
44
45
46
47
48
49
              
return [ 404, {'X-Cascade' => 'pass'}, [] ] unless matches?(req)
@strategy.call @app, req
end
private
Extracted source (around line #39):
37
38
39
40
41
42
              
req.path_parameters = set_params.merge parameters
status, headers, body = route.app.serve(req)
if 'pass' == headers['X-Cascade']
req.script_name = script_name
Extracted source (around line #26):
24
25
26
27
28
29
              
def serve(req)
find_routes(req).each do |match, parameters, route|
set_params = req.path_parameters
path_info = req.path_info
script_name = req.script_name
Extracted source (around line #26):
24
25
26
27
28
29
              
def serve(req)
find_routes(req).each do |match, parameters, route|
set_params = req.path_parameters
path_info = req.path_info
script_name = req.script_name
Extracted source (around line #727):
725
726
727
728
729
730
              
req = make_request(env)
req.path_info = Journey::Router::Utils.normalize_path(req.path_info)
@router.serve(req)
end
def recognize_path(path, environment = {})
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #25):
23
24
25
26
27
28
              
super
else
@app.call(env)
end
end
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #30):
28
29
30
31
32
33
              
def traced_call(env)
@app.call(env)
end
end
end
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #32):
30
31
32
33
34
35
              
def traced_call(env)
result = @app.call(env) # [status, headers, response]
js_to_inject = NewRelic::Agent.browser_timing_header
if (js_to_inject != "") && should_instrument?(env, result[0], result[1])
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #32):
30
31
32
33
34
35
              
end
@app.call(env)
end
end
end
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #27):
25
26
27
28
29
30
              
def call(env)
status, headers, body = @app.call(env)
if etag_status?(status) && etag_body?(body) && !skip_caching?(headers)
original_body = body
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #27):
25
26
27
28
29
30
              
case env[REQUEST_METHOD]
when "GET", "HEAD"
status, headers, body = @app.call(env)
headers = Utils::HeaderHash.new(headers)
if status == 200 && fresh?(env, headers)
status = 304
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #14):
12
13
14
15
16
17
              
def call(env)
status, headers, body = @app.call(env)
if env[REQUEST_METHOD] == HEAD
[
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #269):
267
268
269
270
271
272
              
req = make_request env
prepare_session(req)
status, headers, body = app.call(req.env)
res = Rack::Response::Raw.new status, headers
commit_session(req, res)
[status, headers, body]
Extracted source (around line #263):
261
262
263
264
265
266
              
def call(env)
context(env)
end
def context(env, app = @app)
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #613):
611
612
613
614
615
616
              
request = ActionDispatch::Request.new env
status, headers, body = @app.call(env)
if request.have_cookie_jar?
cookie_jar = request.cookie_jar
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #38):
36
37
38
39
40
41
              
result = run_callbacks :call do
begin
@app.call(env)
rescue => error
end
end
Extracted source (around line #97):
95
96
97
98
99
100
              
def __run_callbacks__(callbacks, &block)
if callbacks.empty?
yield if block_given?
else
runner = callbacks.compile
e = Filters::Environment.new(self, false, nil, block)
Extracted source (around line #750):
748
749
750
751
752
753
              
module_eval <<-RUBY, __FILE__, __LINE__ + 1
def _run_#{name}_callbacks(&block)
__run_callbacks__(_#{name}_callbacks, &block)
end
RUBY
end
Extracted source (around line #90):
88
89
90
91
92
93
              
# end
def run_callbacks(kind, &block)
send "_run_#{kind}_callbacks", &block
end
private
Extracted source (around line #36):
34
35
36
37
38
39
              
def call(env)
error = nil
result = run_callbacks :call do
begin
@app.call(env)
rescue => error
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #79):
77
78
79
80
81
82
              
req = ActionDispatch::Request.new env
req.remote_ip = GetIp.new(req, check_ip, proxies)
@app.call(req.env)
end
# The GetIp class exists as a way to defer processing of the request data
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #49):
47
48
49
50
51
52
              
def call(env)
request = ActionDispatch::Request.new env
_, headers, body = response = @app.call(env)
if headers['X-Cascade'] == 'pass'
body.close if body.respond_to?(:close)
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #31):
29
30
31
32
33
34
              
def call(env)
request = ActionDispatch::Request.new env
@app.call(env)
rescue Exception => exception
if request.show_exceptions?
render_exception(request, exception)
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #36):
34
35
36
37
38
39
              
instrumenter.start 'request.action_dispatch', request: request
logger.info { started_request_message(request) }
resp = @app.call(env)
resp[2] = ::Rack::BodyProxy.new(resp[2]) { finish(request) }
resp
rescue Exception
Extracted source (around line #24):
22
23
24
25
26
27
              
if logger.respond_to?(:tagged)
logger.tagged(compute_tags(request)) { call_app(request, env) }
else
call_app(request, env)
end
Extracted source (around line #69):
67
68
69
70
71
72
              
def tagged(*tags)
formatter.tagged(*tags) { yield self }
end
def flush
Extracted source (around line #26):
24
25
26
27
28
29
              
def tagged(*tags)
new_tags = push_tags(*tags)
yield self
ensure
pop_tags(new_tags.size)
end
Extracted source (around line #69):
67
68
69
70
71
72
              
def tagged(*tags)
formatter.tagged(*tags) { yield self }
end
def flush
Extracted source (around line #24):
22
23
24
25
26
27
              
if logger.respond_to?(:tagged)
logger.tagged(compute_tags(request)) { call_app(request, env) }
else
call_app(request, env)
end
Extracted source (around line #22):
20
21
22
23
24
25
              
end
else
call_without_quiet_ahoy(env)
end
end
alias_method :call_without_quiet_ahoy, :call
Extracted source (around line #41):
39
40
41
42
43
44
              
end
else
super
end
end
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #19):
17
18
19
20
21
22
              
RequestStore.begin!
response = @app.call(env)
returned = response << Rack::BodyProxy.new(response.pop) do
RequestStore.end!
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #24):
22
23
24
25
26
27
              
req = ActionDispatch::Request.new env
req.request_id = make_request_id(req.x_request_id)
@app.call(env).tap { |_status, headers, _body| headers[X_REQUEST_ID] = req.request_id }
end
private
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #24):
22
23
24
25
26
27
              
end
@app.call(env)
end
def method_override(env)
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #24):
22
23
24
25
26
27
              
def call(env)
start_time = Utils.clock_time
status, headers, body = @app.call(env)
request_time = Utils.clock_time - start_time
unless headers.has_key?(@header_name)
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #28):
26
27
28
29
30
31
              
def call(env)
LocalCacheRegistry.set_cache_for(local_cache_key, LocalStore.new)
response = @app.call(env)
response[2] = ::Rack::BodyProxy.new(response[2]) do
LocalCacheRegistry.set_cache_for(local_cache_key, nil)
end
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #12):
10
11
12
13
14
15
              
state = @executor.run!
begin
response = @app.call(env)
returned = response << ::Rack::BodyProxy.new(response.pop) { state.complete! }
ensure
state.complete! unless returned
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #113):
111
112
113
114
115
116
              
def call(env)
status, headers, body = @app.call(env)
if body.respond_to?(:to_path)
case type = variation(env)
when 'X-Accel-Redirect'
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #97):
95
96
97
98
99
100
              
vary_resource = resource_for_path(env[PATH_INFO])
status, headers, body = @app.call env
if add_headers
headers = add_headers.merge(headers)
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #522):
520
521
522
523
524
525
              
def call(env)
req = build_request env
app.call req.env
end
# Defines additional Rack env configuration that is added on each call.
Extracted source (around line #193):
191
192
193
194
195
196
              
def method_missing(name, *args, &block)
if instance.respond_to?(name)
instance.public_send(name, *args, &block)
else
super
end
Extracted source (around line #193):
191
192
193
194
195
196
              
def method_missing(name, *args, &block)
if instance.respond_to?(name)
instance.public_send(name, *args, &block)
else
super
end
Extracted source (around line #92):
90
91
92
93
94
95
              
events.notify(:before_call, env) if first_middleware
result = (target == self) ? traced_call(env) : target.call(env)
if first_middleware
capture_response_attributes(state, result)
Extracted source (around line #107):
105
106
107
108
109
110
              
begin
status, headers, body = @app.call(env)
rescue => e
if e.is_a?(Errno::ENOBUFS)
raise e
Extracted source (around line #149):
147
148
149
150
151
152
              
begin
if headers[REQUEST_METHOD] == GET
process_request(headers, connection, socket_wrapper, @protocol == :http)
elsif headers[REQUEST_METHOD] == PING
process_ping(headers, connection)
false
Extracted source (around line #110):
108
109
110
111
112
113
              
finish_callback.call
while true
hijacked = accept_and_process_next_request(socket_wrapper, channel, buffer)
socket_wrapper = Utils::UnseekableSocket.new if hijacked
end
rescue Interrupted
Extracted source (around line #419):
417
418
419
420
421
422
              
handler = thread_handler.new(self, main_socket_options)
handler.install
handler.main_loop(set_initialization_state_to_true)
ensure
set_initialization_state.call(false)
unregister_current_thread
Extracted source (around line #113):
111
112
113
114
115
116
              
Thread.current.abort_on_exception = true
begin
yield(*args)
rescue SystemExit
raise
rescue Exception => e

Rails.root: /var/www/core

Application Trace | Framework Trace | Full Trace
app/models/shopping_list.rb:166:in `set_shopping_list_token_if_needed'
app/models/shopping_list.rb:152:in `get_token'
app/controllers/concerns/shopping_list_cookie_management.rb:17:in `set_shopping_list_cookie'
app/controllers/concerns/shopping_list_management.rb:87:in `set_placeholder_shopping_list_cookie'
app/controllers/concerns/shopping_list_management.rb:29:in `set_shopping_list'
vendor/bundle/ruby/2.5.0/gems/activemodel-5.0.7.2/lib/active_model/attribute_methods.rb:433:in `method_missing'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:382:in `block in make_lambda'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:150:in `block (2 levels) in halting_and_conditional'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/abstract_controller/callbacks.rb:12:in `block (2 levels) in '
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:151:in `block in halting_and_conditional'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:454:in `block in call'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:454:in `each'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:454:in `call'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:448:in `block (2 levels) in around'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:286:in `block (2 levels) in halting'
vendor/bundle/ruby/2.5.0/gems/ahoy_matey-3.0.0/lib/ahoy/controller.rb:45:in `set_ahoy_request_store'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:382:in `block in make_lambda'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:285:in `block in halting'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:447:in `block in around'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:455:in `call'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:101:in `__run_callbacks__'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:750:in `_run_process_action_callbacks'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:90:in `run_callbacks'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/abstract_controller/callbacks.rb:19:in `process_action'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_controller/metal/rescue.rb:20:in `process_action'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_controller/metal/instrumentation.rb:32:in `block in process_action'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/notifications.rb:164:in `block in instrument'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/notifications/instrumenter.rb:21:in `instrument'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/notifications.rb:164:in `instrument'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_controller/metal/instrumentation.rb:30:in `process_action'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_controller/metal/params_wrapper.rb:248:in `process_action'
vendor/bundle/ruby/2.5.0/gems/activerecord-5.0.7.2/lib/active_record/railties/controller_runtime.rb:18:in `process_action'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/abstract_controller/base.rb:126:in `process'
vendor/bundle/ruby/2.5.0/gems/actionview-5.0.7.2/lib/action_view/rendering.rb:30:in `process'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_controller/metal.rb:190:in `dispatch'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_controller/metal.rb:262:in `dispatch'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/route_set.rb:50:in `dispatch'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/route_set.rb:32:in `serve'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:39:in `block in serve'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:26:in `each'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:26:in `serve'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/route_set.rb:727:in `call'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/engine.rb:522:in `call'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/railtie.rb:193:in `public_send'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/railtie.rb:193:in `method_missing'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/mapper.rb:17:in `block in '
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/mapper.rb:46:in `serve'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:39:in `block in serve'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:26:in `each'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:26:in `serve'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/route_set.rb:727:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/bundler/gems/front_end_builds-8b743f6fee91/lib/front_end_builds/middleware/admin_assets.rb:25:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/rack/agent_hooks.rb:30:in `traced_call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/rack/browser_monitoring.rb:32:in `traced_call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/remotipart-1.4.2/lib/remotipart/middleware.rb:32:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/etag.rb:27:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/conditional_get.rb:27:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/head.rb:14:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/session/abstract/id.rb:269:in `context'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/session/abstract/id.rb:263:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/cookies.rb:613:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/callbacks.rb:38:in `block in call'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:97:in `__run_callbacks__'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:750:in `_run_call_callbacks'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:90:in `run_callbacks'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/callbacks.rb:36:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/remote_ip.rb:79:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/debug_exceptions.rb:49:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/show_exceptions.rb:31:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/rack/logger.rb:36:in `call_app'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/rack/logger.rb:24:in `block in call'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/tagged_logging.rb:69:in `block in tagged'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/tagged_logging.rb:26:in `tagged'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/tagged_logging.rb:69:in `tagged'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/rack/logger.rb:24:in `call'
vendor/bundle/ruby/2.5.0/gems/ahoy_matey-3.0.0/lib/ahoy/engine.rb:22:in `call_with_quiet_ahoy'
vendor/bundle/ruby/2.5.0/gems/silencer-1.0.1/lib/silencer/rails/logger.rb:41:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/request_store-1.5.0/lib/request_store/middleware.rb:19:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/request_id.rb:24:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/method_override.rb:24:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/runtime.rb:24:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/executor.rb:12:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/sendfile.rb:113:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-cors-1.0.2/lib/rack/cors.rb:97:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/engine.rb:522:in `call'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/railtie.rb:193:in `public_send'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/railtie.rb:193:in `method_missing'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
/usr/share/ruby/vendor_ruby/phusion_passenger/rack/thread_handler_extension.rb:107:in `process_request'
/usr/share/ruby/vendor_ruby/phusion_passenger/request_handler/thread_handler.rb:149:in `accept_and_process_next_request'
/usr/share/ruby/vendor_ruby/phusion_passenger/request_handler/thread_handler.rb:110:in `main_loop'
/usr/share/ruby/vendor_ruby/phusion_passenger/request_handler.rb:419:in `block (3 levels) in start_threads'
/usr/share/ruby/vendor_ruby/phusion_passenger/utils.rb:113:in `block in create_thread_and_abort_on_exception'
vendor/bundle/ruby/2.5.0/gems/activemodel-5.0.7.2/lib/active_model/attribute_methods.rb:433:in `method_missing'
app/models/shopping_list.rb:166:in `set_shopping_list_token_if_needed'
app/models/shopping_list.rb:152:in `get_token'
app/controllers/concerns/shopping_list_cookie_management.rb:17:in `set_shopping_list_cookie'
app/controllers/concerns/shopping_list_management.rb:87:in `set_placeholder_shopping_list_cookie'
app/controllers/concerns/shopping_list_management.rb:29:in `set_shopping_list'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:382:in `block in make_lambda'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:150:in `block (2 levels) in halting_and_conditional'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/abstract_controller/callbacks.rb:12:in `block (2 levels) in '
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:151:in `block in halting_and_conditional'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:454:in `block in call'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:454:in `each'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:454:in `call'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:448:in `block (2 levels) in around'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:286:in `block (2 levels) in halting'
vendor/bundle/ruby/2.5.0/gems/ahoy_matey-3.0.0/lib/ahoy/controller.rb:45:in `set_ahoy_request_store'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:382:in `block in make_lambda'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:285:in `block in halting'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:447:in `block in around'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:455:in `call'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:101:in `__run_callbacks__'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:750:in `_run_process_action_callbacks'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:90:in `run_callbacks'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/abstract_controller/callbacks.rb:19:in `process_action'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_controller/metal/rescue.rb:20:in `process_action'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_controller/metal/instrumentation.rb:32:in `block in process_action'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/notifications.rb:164:in `block in instrument'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/notifications/instrumenter.rb:21:in `instrument'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/notifications.rb:164:in `instrument'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_controller/metal/instrumentation.rb:30:in `process_action'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_controller/metal/params_wrapper.rb:248:in `process_action'
vendor/bundle/ruby/2.5.0/gems/activerecord-5.0.7.2/lib/active_record/railties/controller_runtime.rb:18:in `process_action'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/abstract_controller/base.rb:126:in `process'
vendor/bundle/ruby/2.5.0/gems/actionview-5.0.7.2/lib/action_view/rendering.rb:30:in `process'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_controller/metal.rb:190:in `dispatch'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_controller/metal.rb:262:in `dispatch'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/route_set.rb:50:in `dispatch'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/route_set.rb:32:in `serve'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:39:in `block in serve'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:26:in `each'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:26:in `serve'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/route_set.rb:727:in `call'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/engine.rb:522:in `call'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/railtie.rb:193:in `public_send'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/railtie.rb:193:in `method_missing'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/mapper.rb:17:in `block in '
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/mapper.rb:46:in `serve'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:39:in `block in serve'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:26:in `each'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/journey/router.rb:26:in `serve'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/routing/route_set.rb:727:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/bundler/gems/front_end_builds-8b743f6fee91/lib/front_end_builds/middleware/admin_assets.rb:25:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/rack/agent_hooks.rb:30:in `traced_call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/rack/browser_monitoring.rb:32:in `traced_call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/remotipart-1.4.2/lib/remotipart/middleware.rb:32:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/etag.rb:27:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/conditional_get.rb:27:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/head.rb:14:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/session/abstract/id.rb:269:in `context'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/session/abstract/id.rb:263:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/cookies.rb:613:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/callbacks.rb:38:in `block in call'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:97:in `__run_callbacks__'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:750:in `_run_call_callbacks'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/callbacks.rb:90:in `run_callbacks'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/callbacks.rb:36:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/remote_ip.rb:79:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/debug_exceptions.rb:49:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/show_exceptions.rb:31:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/rack/logger.rb:36:in `call_app'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/rack/logger.rb:24:in `block in call'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/tagged_logging.rb:69:in `block in tagged'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/tagged_logging.rb:26:in `tagged'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/tagged_logging.rb:69:in `tagged'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/rack/logger.rb:24:in `call'
vendor/bundle/ruby/2.5.0/gems/ahoy_matey-3.0.0/lib/ahoy/engine.rb:22:in `call_with_quiet_ahoy'
vendor/bundle/ruby/2.5.0/gems/silencer-1.0.1/lib/silencer/rails/logger.rb:41:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/request_store-1.5.0/lib/request_store/middleware.rb:19:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/request_id.rb:24:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/method_override.rb:24:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/runtime.rb:24:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/activesupport-5.0.7.2/lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/actionpack-5.0.7.2/lib/action_dispatch/middleware/executor.rb:12:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-2.1.2/lib/rack/sendfile.rb:113:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/rack-cors-1.0.2/lib/rack/cors.rb:97:in `call'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/engine.rb:522:in `call'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/railtie.rb:193:in `public_send'
vendor/bundle/ruby/2.5.0/gems/railties-5.0.7.2/lib/rails/railtie.rb:193:in `method_missing'
vendor/bundle/ruby/2.5.0/gems/newrelic_rpm-5.4.0.347/lib/new_relic/agent/instrumentation/middleware_tracing.rb:92:in `call'
/usr/share/ruby/vendor_ruby/phusion_passenger/rack/thread_handler_extension.rb:107:in `process_request'
/usr/share/ruby/vendor_ruby/phusion_passenger/request_handler/thread_handler.rb:149:in `accept_and_process_next_request'
/usr/share/ruby/vendor_ruby/phusion_passenger/request_handler/thread_handler.rb:110:in `main_loop'
/usr/share/ruby/vendor_ruby/phusion_passenger/request_handler.rb:419:in `block (3 levels) in start_threads'
/usr/share/ruby/vendor_ruby/phusion_passenger/utils.rb:113:in `block in create_thread_and_abort_on_exception'

Request

Parameters:

{"retailer_id"=>"48", "version"=>"v3", "folder"=>"footer", "id"=>"footer_for_retailer_48"}
Toggle session dump
retailer_id: "48"
session_id: "c44acbb9991063052517b4c20cf3d397"
Toggle env dump
HTTP_ACCEPT: "*/*"
HTTP_VERSION: "HTTP/1.1"
HTTP_X_FORWARDED_FOR: "35.167.147.24"
ORIGINAL_SCRIPT_NAME: ""
REMOTE_ADDR: "172.31.43.175"
SERVER_NAME: "grocery.core1.rails.webstophq.com"
SERVER_PROTOCOL: "HTTP/1.1"

Response

Headers:

None

Website Debug Code

Hosts & Domains Switch Product Versions

Please ignore every thing below this point on the web page. It is for the website developers to help them debug problems & check the current status of web pages. This was opened by clicking or tapping the debug () icon in the lower right of the page. You can close this debug section by clicking the icon again.

Name Value
Bootstrap Responsive Breakpoint xs sm md lg xl
Server Name TDS 3
Template CS2
vDebugOn 0
vDebug 1

Host & Domain Name Debug

Covers values typically found in the host.inc file.

Lasso Hosts

Name Value
vSub_Dev 48.coremark.lasso1
vHost_Reg https://48.coremark.lasso1.webstophq.com
vHost_SSL https://48.coremark.lasso1.webstophq.com

Front-End Assets

Name Value
vHost_CSS https://48.coremark.lasso1.webstophq.com
vHost_JS https://48.coremark.lasso1.webstophq.com
vHost_Graphics https://core-graphics-origin.s3.amazonaws.com
vHost_SSL_Graphics https://core-graphics-origin.s3.amazonaws.com
vHost_Graphics_CSS https://48.coremark.lasso1.webstophq.com
vHost_Graphics_s3 https://s3.grocerywebsite.com/testing

Rails API Hosts

Name Value
vHost_System_Admin https://grocery.core1.rails.webstophq.com
vhost_rails https://grocery.core1.rails.webstophq.com
vhost_rails_api grocery.core1.rails.webstophq.com

Administration Hosts

Name Value
vHost_Admin https://48.coremark.lasso1.webstophq.com
vHost_Admin_SSL https://48.webstophq.com

Module Specific & Special Hosts

Name Value
vHost_Recipes https://recipes-secure-graphics.grocerywebsite.com
vHost_Recipes_SSL https://recipes-secure-graphics.grocerywebsite.com
vHost_Backups

Domain Components

Name Value
vSub_Reg 48.coremark.lasso1
vSub_Dev 48.coremark.lasso1
vSub_secure 48.coremark.lasso1
vSLD webstophq
vTLD com
vSLD_Dev webstophq
vTLD_Dev com
vSLD_Prod grocerywebsite
vTLD_Prod com

Legacy Domain Components (depreciated)

Name Value
vSubDomain 48.coremark.lasso1
vDomainName webstophq
vDomainTopLevel com

Ancient Domain Components (depreciated)

Name Value
vRetailerURL 48.coremark.lasso1.webstophq.com
vRetailer_Domain_test .webstophq.com
vRetailer_Domain .webstophq.com
vDomain .webstophq.com

Switch Debug

This code is used by the webmaster to track down website problems, please ignore the following chart.

Errors

Name Value
vSwitchError
v404

Application

Name Value
vWebApp Recipes
vWebAppSW /Recipes/Switch/Recipes_SW.las

Coral Method Files

Name Value File Exists?
vWebAppSW /Recipes/Switch/Recipes_SW.las true
vStub /Recipes/AJAX/Recipes_Email_S.las true
vProc /Recipes/AJAX/Recipes_Email_P.inc true
vBody /Recipes/AJAX/Recipes_Email_BS_B.inc true

Request Elements

Name Value
vURL_Path Recipes/Email/5457/
aAppElements array: (Email), (5457)
vAppElementsCount 2
aAppElements 1 Email
aAppElements 2 5457

Retailer Product Versions

These are all the versions of Webstop products this retailer is set to use.

Product Version
circulars 7.5.0
consumer accounts 6.0.0
contact us 3.0.3
coupons 1.1.5
coupons.com 1.6.0
grocery newsletters 1.6.3
PDF circulars 1.1.0
recipes 4.7.2
shopping lists 3.17.5
store locator 2.10.0
donations 1.0.0

My Shopping List

New List Rename List Delete List
Ben's Birthday List Office Party List My 10/23/2018 List My 9/12/2018 List
  • Cras justo odio
  • Dapibus ac facilisis in
  • Morbi leo risus
  • Porta ac consectetur ac facilisis in
  • Vestibulum at eros
  • Cras justo odio
  • Dapibus ac facilisis in at eros
  • Morbi leo risus
  • Porta ac consectetur ac
  • Vestibulum at eros
  • Cras justo odio
  • Dapibus ac facilisis in
  • Morbi leo risus
  • Porta ac consectetur ac
  • Vestibulum at eros
  • Cras justo odio
  • Dapibus ac facilisis in
  • Morbi leo risus
  • Porta ac consectetur ac
  • Vestibulum at eros