Project

General

Profile

Actions

Bug #14824

closed

undefined method `[]' for nil:NilClass - subscription-manager register

Added by Thomas McKay almost 8 years ago. Updated almost 6 years ago.

Status:
Closed
Priority:
High
Assignee:
Category:
-
Target version:
Difficulty:
Triaged:
Fixed in Releases:
Found in Releases:

Description

Unsure what caused this change, but it seems like Engine.routes.router.recognize(link 1 below) is not returning params correctly any longer so the references in the case statement fail accessing id. Is this from rails4?

# subscription-manager register --org megacorp --activationkey minimal
The system has been registered with ID: 71eba30e-d833-4804-b23a-aadb27aa6cf6 
undefined method `[]' for nil:NilClass

The system is successfully registered to katello but further calls fail (fetching entitlements, etc.). Once registered 'subscription-manager refresh' will also exhibit the nil error for easy testing/reproducing.

1: https://github.com/Katello/katello/blob/master/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb#L438

Actions #1

Updated by Thomas McKay almost 8 years ago

This workaround works but I don't know the implications or the real underlying problem/fix.

$ git diff
WARNING: terminal is not fully functional
-  (press RETURN)
diff --git a/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb b/app/controllers/katellindex 58431b4..51d6759 100644
--- a/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb
+++ b/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb
@@ -435,7 +435,7 @@ module Katello
     def authorize_proxy_routes
       deny_access unless (authenticate || authenticate_client)

-      route, _, params = Engine.routes.router.recognize(request) do |rte, match, parameters|
+      route, params, _ = Engine.routes.router.recognize(request) do |rte, match, parameters|
         break rte, match, parameters if rte.name
       end
Actions #2

Updated by The Foreman Bot almost 8 years ago

  • Status changed from New to Ready For Testing
  • Pull request https://github.com/Katello/katello/pull/6004 added
Actions #3

Updated by Chris Duryee almost 8 years ago

  • Status changed from Ready For Testing to Closed
  • % Done changed from 0 to 100
Actions #4

Updated by Eric Helms almost 8 years ago

  • translation missing: en.field_release set to 86
Actions #5

Updated by Wagner Sartori Junior almost 8 years ago

I'm running katello 3 rc5 now, and I was having the same "undefined method `[]' for nil:NilClass" problem.

I reverted the patch, to use the _ and now it's working again. Maybe my rails wasn't updated with katello 3 and there's some dependencies with wrong versions on the yum repositories somewhere.

Actions #6

Updated by Marvin Beckers almost 8 years ago

I'm also running Katello 3.0 RC5 (brand new installation, set up today following standard procedure) and facing the same problem. Here's an extract from /var/log/foreman/production.log:

2016-05-25 14:02:20 [app] [I] Started GET "/rhsm/consumers/8ab39aa2-de2f-485b-8120-9b630ed89be4/certificates?serials=2798807315053081947" for <IP> at 2016-05-25 14:02:20 +0200
2016-05-25 14:02:20 [app] [I] Processing by Katello::Api::Rhsm::CandlepinProxiesController#get as JSON
2016-05-25 14:02:20 [app] [I]   Parameters: {"serials"=>"2798807315053081947", "id"=>"8ab39aa2-de2f-485b-8120-9b630ed89be4"}
2016-05-25 14:02:20 [katello/cp_proxy] [E] NoMethodError: undefined method `[]' for nil:NilClass
 | /opt/theforeman/tfm/root/usr/share/gems/gems/katello-3.0.0.rc5/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb:461:in `authorize_proxy_routes'
[..]

I cannot confirm that reverting the patch works, but maybe I'm just doing it wrong. As RC5 is supposed to include the commit fixing this issue, this issue seems either not completely fixed or is another problem altogether. I'm not sure here, but will happily assist in debugging.

Actions #7

Updated by george lim almost 8 years ago

I tried adding the _ back in but it still doesn't work for me. The same error occurs.

Actions #8

Updated by Justin Sherrill almost 8 years ago

  • Status changed from Closed to Assigned
  • Assignee set to Chris Duryee

Reopening as this was reported by a user:


    2016-06-01 01:43:58 [katello/cp_proxy] [E] NoMethodError: undefined method `[]' for nil:NilClass
     | /opt/theforeman/tfm/root/usr/share/gems/gems/katello-3.0.0.rc5/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb:461:in `authorize_proxy_routes'
     | /opt/rh/rh-ror41/root/usr/share/gems/gems/activesupport-4.1.5/lib/active_support/callbacks.rb:424:in `block in make_lambda'
     | /opt/rh/rh-ror41/root/usr/share/gems/gems/activesupport-4.1.5/lib/active_support/callbacks.rb:143:in `call'
     | /opt/rh/rh-ror41/root/usr/share/gems/gems/activesupport-4.1.5/lib/active_support/callbacks.rb:143:in `block in halting_and_conditional'
     | /opt/rh/rh-ror41/root/usr/share/gems/gems/activesupport-4.1.5/lib/active_support/callbacks.rb:149:in `call'
     | /opt/rh/rh-ror41/root/usr/share/gems/gems/activesupport-4.1.5/lib/active_support/callbacks.rb:149:in `block in halting_and_conditional'

on subscription-manager-1.15.9-15.el7.centos.0.1.x86_64 when using an activation key

Actions #9

Updated by Eric Helms almost 8 years ago

  • Status changed from Assigned to Closed

I'm going to revert this to closed in favor of http://projects.theforeman.org/issues/15192 which opened around this specific issue so that this issue can remain as was.

Actions

Also available in: Atom PDF