ondemand
ondemand copied to clipboard
Error terminating interactive app
I got the following error today when I chose "Delete" for an interactive Jupyter app on apps-dev.awesim.org:
#<ActionView::Template::Error: No such file or directory - /var/www/ood/apps/sys/741bc00a-39ad-46c3-a05b-e3d9dacdad54>
/opt/rh/rh-ruby25/root/usr/share/ruby/open3.rb:199:in `spawn'
/opt/rh/rh-ruby25/root/usr/share/ruby/open3.rb:199:in `popen_run'
/opt/rh/rh-ruby25/root/usr/share/ruby/open3.rb:95:in `popen3'
/opt/rh/rh-ruby25/root/usr/share/ruby/open3.rb:258:in `capture3'
/var/www/ood/apps/sys/dashboard/config/initializers/open3_extensions.rb:4:in `capture3'
/var/www/ood/apps/sys/dashboard/app/apps/ood_app.rb:267:in `version_from_git'
/var/www/ood/apps/sys/dashboard/app/apps/ood_app.rb:260:in `version'
/var/www/ood/apps/sys/dashboard/app/models/batch_connect/app.rb:238:in `version'
/var/www/ood/apps/sys/dashboard/app/views/batch_connect/session_contexts/new.html.erb:71:in `_app_views_batch_connect_session_contexts_new_html_erb___3154491720144088897_70277781750520'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionview-5.2.4.3/lib/action_view/template.rb:159:in `block in render'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/activesupport-5.2.4.3/lib/active_support/notifications.rb:170:in `instrument'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionview-5.2.4.3/lib/action_view/template.rb:354:in `instrument_render_template'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionview-5.2.4.3/lib/action_view/template.rb:157:in `render'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionview-5.2.4.3/lib/action_view/renderer/template_renderer.rb:54:in `block (2 levels) in render_template'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionview-5.2.4.3/lib/action_view/renderer/abstract_renderer.rb:44:in `block in instrument'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/activesupport-5.2.4.3/lib/active_support/notifications.rb:170:in `instrument'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionview-5.2.4.3/lib/action_view/renderer/abstract_renderer.rb:43:in `instrument'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionview-5.2.4.3/lib/action_view/renderer/template_renderer.rb:53:in `block in render_template'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionview-5.2.4.3/lib/action_view/renderer/template_renderer.rb:61:in `render_with_layout'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionview-5.2.4.3/lib/action_view/renderer/template_renderer.rb:52:in `render_template'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionview-5.2.4.3/lib/action_view/renderer/template_renderer.rb:16:in `render'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionview-5.2.4.3/lib/action_view/renderer/renderer.rb:44:in `render_template'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionview-5.2.4.3/lib/action_view/renderer/renderer.rb:25:in `render'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionview-5.2.4.3/lib/action_view/rendering.rb:103:in `_render_template'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionpack-5.2.4.3/lib/action_controller/metal/streaming.rb:219:in `_render_template'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionview-5.2.4.3/lib/action_view/rendering.rb:84:in `render_to_body'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionpack-5.2.4.3/lib/action_controller/metal/rendering.rb:52:in `render_to_body'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionpack-5.2.4.3/lib/action_controller/metal/renderers.rb:142:in `render_to_body'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionpack-5.2.4.3/lib/abstract_controller/rendering.rb:25:in `render'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionpack-5.2.4.3/lib/action_controller/metal/rendering.rb:36:in `render'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionpack-5.2.4.3/lib/action_controller/metal/instrumentation.rb:46:in `block (2 levels) in render'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/activesupport-5.2.4.3/lib/active_support/core_ext/benchmark.rb:14:in `block in ms'
/opt/rh/rh-ruby25/root/usr/share/ruby/benchmark.rb:308:in `realtime'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/activesupport-5.2.4.3/lib/active_support/core_ext/benchmark.rb:14:in `ms'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionpack-5.2.4.3/lib/action_controller/metal/instrumentation.rb:46:in `block in render'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionpack-5.2.4.3/lib/action_controller/metal/instrumentation.rb:87:in `cleanup_view_runtime'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionpack-5.2.4.3/lib/action_controller/metal/instrumentation.rb:45:in `render'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionpack-5.2.4.3/lib/action_controller/metal/implicit_render.rb:35:in `default_render'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionpack-5.2.4.3/lib/action_controller/metal/basic_implicit_render.rb:6:in `block in send_action'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionpack-5.2.4.3/lib/action_controller/metal/basic_implicit_render.rb:6:in `tap'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionpack-5.2.4.3/lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionpack-5.2.4.3/lib/abstract_controller/base.rb:194:in `process_action'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionpack-5.2.4.3/lib/action_controller/metal/rendering.rb:30:in `process_action'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionpack-5.2.4.3/lib/abstract_controller/callbacks.rb:42:in `block in process_action'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/activesupport-5.2.4.3/lib/active_support/callbacks.rb:132:in `run_callbacks'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionpack-5.2.4.3/lib/abstract_controller/callbacks.rb:41:in `process_action'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionpack-5.2.4.3/lib/action_controller/metal/rescue.rb:22:in `process_action'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionpack-5.2.4.3/lib/action_controller/metal/instrumentation.rb:34:in `block in process_action'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/activesupport-5.2.4.3/lib/active_support/notifications.rb:168:in `block in instrument'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/activesupport-5.2.4.3/lib/active_support/notifications/instrumenter.rb:23:in `instrument'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/activesupport-5.2.4.3/lib/active_support/notifications.rb:168:in `instrument'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionpack-5.2.4.3/lib/action_controller/metal/instrumentation.rb:32:in `process_action'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionpack-5.2.4.3/lib/action_controller/metal/params_wrapper.rb:256:in `process_action'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionpack-5.2.4.3/lib/abstract_controller/base.rb:134:in `process'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionview-5.2.4.3/lib/action_view/rendering.rb:32:in `process'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionpack-5.2.4.3/lib/action_controller/metal.rb:191:in `dispatch'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionpack-5.2.4.3/lib/action_controller/metal.rb:252:in `dispatch'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionpack-5.2.4.3/lib/action_dispatch/routing/route_set.rb:52:in `dispatch'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionpack-5.2.4.3/lib/action_dispatch/routing/route_set.rb:34:in `serve'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionpack-5.2.4.3/lib/action_dispatch/journey/router.rb:52:in `block in serve'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionpack-5.2.4.3/lib/action_dispatch/journey/router.rb:35:in `each'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionpack-5.2.4.3/lib/action_dispatch/journey/router.rb:35:in `serve'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionpack-5.2.4.3/lib/action_dispatch/routing/route_set.rb:840:in `call'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/rack-2.2.3/lib/rack/tempfile_reaper.rb:15:in `call'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/rack-2.2.3/lib/rack/etag.rb:27:in `call'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/rack-2.2.3/lib/rack/conditional_get.rb:27:in `call'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/rack-2.2.3/lib/rack/head.rb:12:in `call'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionpack-5.2.4.3/lib/action_dispatch/http/content_security_policy.rb:18:in `call'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/rack-2.2.3/lib/rack/session/abstract/id.rb:266:in `context'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/rack-2.2.3/lib/rack/session/abstract/id.rb:260:in `call'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionpack-5.2.4.3/lib/action_dispatch/middleware/cookies.rb:670:in `call'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionpack-5.2.4.3/lib/action_dispatch/middleware/callbacks.rb:28:in `block in call'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/activesupport-5.2.4.3/lib/active_support/callbacks.rb:98:in `run_callbacks'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionpack-5.2.4.3/lib/action_dispatch/middleware/callbacks.rb:26:in `call'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionpack-5.2.4.3/lib/action_dispatch/middleware/debug_exceptions.rb:61:in `call'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionpack-5.2.4.3/lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/lograge-0.11.2/lib/lograge/rails_ext/rack/logger.rb:15:in `call_app'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/railties-5.2.4.3/lib/rails/rack/logger.rb:26:in `block in call'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/activesupport-5.2.4.3/lib/active_support/tagged_logging.rb:71:in `block in tagged'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/activesupport-5.2.4.3/lib/active_support/tagged_logging.rb:28:in `tagged'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/activesupport-5.2.4.3/lib/active_support/tagged_logging.rb:71:in `tagged'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/railties-5.2.4.3/lib/rails/rack/logger.rb:26:in `call'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionpack-5.2.4.3/lib/action_dispatch/middleware/remote_ip.rb:81:in `call'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/request_store-1.5.0/lib/request_store/middleware.rb:19:in `call'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionpack-5.2.4.3/lib/action_dispatch/middleware/request_id.rb:27:in `call'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/rack-2.2.3/lib/rack/method_override.rb:24:in `call'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/rack-2.2.3/lib/rack/runtime.rb:22:in `call'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/activesupport-5.2.4.3/lib/active_support/cache/strategy/local_cache_middleware.rb:29:in `call'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionpack-5.2.4.3/lib/action_dispatch/middleware/executor.rb:14:in `call'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/actionpack-5.2.4.3/lib/action_dispatch/middleware/static.rb:127:in `call'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/rack-2.2.3/lib/rack/sendfile.rb:110:in `call'
/opt/ood/ondemand/root/usr/share/gems/2.5/ondemand/1.8.8/gems/railties-5.2.4.3/lib/rails/engine.rb:524:in `call'
/opt/rh/ondemand/root/usr/share/ruby/vendor_ruby/phusion_passenger/rack/thread_handler_extension.rb:97:in `process_request'
/opt/rh/ondemand/root/usr/share/ruby/vendor_ruby/phusion_passenger/request_handler/thread_handler.rb:149:in `accept_and_process_next_request'
/opt/rh/ondemand/root/usr/share/ruby/vendor_ruby/phusion_passenger/request_handler/thread_handler.rb:110:in `main_loop'
/opt/rh/ondemand/root/usr/share/ruby/vendor_ruby/phusion_passenger/request_handler.rb:415:in `block (3 levels) in start_threads'
/opt/rh/ondemand/root/usr/share/ruby/vendor_ruby/phusion_passenger/utils.rb:113:in `block in create_thread_and_abort_on_exception'URL: `https://apps-dev.awesim.org/pun/sys/dashboard/batch_connect/sessions/741bc00a-39ad-46c3-a05b-e3d9dacdad54`Screenshot:TIME: around 8:22 AM
┆Issue is synchronized with this Asana task by Unito
The interactive session was not deleted. I tried a second time and was successful. This was done while trying to reproduce maintenance page issues brought up on discourse so the SSO timeout settings on mod_auth_openidc were very low.
Others have reproduced this bug. Somewhere we are redirecting to a sessions/show action for a session so the id is 741bc00a-39ad-46c3-a05b-e3d9dacdad54 and that displays because it tries to handle it as an app instead.
I think I figured this out on Friday. I believe the jquery to find the data-method=delete
fails and defaults to GET. To replicate, you can simply GET that URL and you'll re-trigger the same stack.
I don't think we can fix the jquery, at least easily, so I'm guessing the best fix is to redirect this route, or somehow interpret the fact that it's not a legit token to create a new session.
We should add SessionsController#show
action and direct GET requests to /sessions/ID to this. If the session is invalid, the show page can handle that gracefully (session not found - this session may recently have been deleted). A simple design will reuse the card without modification:
- sessions list view
SessionsController#index
: - the session show view
SessionsController#show
: - the session show view when the session does not exist:
I like this cause it follows Rails conventions and we need the show page for other things in the future anyways.