Bug 730747

Summary: Cannot subscribe a system to a product in the UI
Product: Red Hat Satellite 6 Reporter: Jeff Weiss <jweiss>
Component: WebUIAssignee: Partha Aji <paji>
Status: CLOSED CURRENTRELEASE QA Contact: Katello QA List <katello-qa-list>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 6.0.0CC: bkearney, dajohnso, mmccune, paji
Target Milestone: UnspecifiedKeywords: Triaged
Target Release: Unused   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
candlepin-0.4.10-1.fc14.noarch
Last Closed: 2012-08-22 17:52:25 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
Bug Depends On:    
Bug Blocks: 747354    

Description Jeff Weiss 2011-08-15 15:40:20 UTC
Description of problem:


Version-Release number of selected component (if applicable):
katello-0.1.63-1.git.6.4fbec47.fc14.noarch

How reproducible:


Steps to Reproduce:
1. Create a product
2. register a system (i used the API)
3. Go to the systems page, select the system, then the Subscriptions tab
4. Add the subscription
5. Click "Save Subscriptions"

Actual results:
Nothing happens

Expected results:
System is subscribed

Additional info:
From katello log:



Started POST "/systems/2/update_subscriptions" for 10.11.8.206 at Mon Aug 15 11:28:25 -0400 2011
  Processing by SystemsController#update_subscriptions as 
  Parameters: {"system"=>{"consumed_pool_ids"=>["8a90f86f31cdaf4a0131cdd2d3fb0018"]}, "authenticity_token"=>"bEy5F2Z8TQSVwamnAQLph8Idbbl32lJlDVAjL/VaBmA=", "utf8"=>"✓", "id"=>"2"}
Subscribing to pool '8a90f86f31cdaf4a0131cdd2d3fb0018' for : yoursys-1313419021056
Completed   in 207ms

#<Class:0x7fa29f429a98> (Candlepin::Consumer: 500 Internal Server Error {"displayMessage":"Runtime Error java.lang.IllegalArgumentException: string 1.3.6.1.4.1.2312.9.2.1313418171132-mytestrepo-Development-ACME_Corporation.1 not an OID at org.bouncycastle.asn1.DERObjectIdentifier.<init>:-1"} (POST /candlepin/consumers/1490ff2c-bb70-464f-b302-5e8e2c031a09/entitlements?pool=8a90f86f31cdaf4a0131cdd2d3fb0018)):
  lib/http_resource.rb:132:in `raise_rest_client_exception'
  lib/http_resource.rb:98:in `post'
  lib/resources/candlepin.rb:151:in `consume_entitlement'
  app/models/glue/candlepin/consumer.rb:100:in `subscribe'
  app/models/system.rb:57:in `consumed_pool_ids='
  app/models/system.rb:56:in `each'
  app/models/system.rb:56:in `consumed_pool_ids='
  app/controllers/systems_controller.rb:80:in `update_subscriptions'
  lib/util/threadsession.rb:77:in `thread_locals'



From CP log

Aug 15 11:28:25 [http-8443-1] ERROR org.fedoraproject.candlepin.exceptions.CandlepinExceptionMapper - Runtime exception:
org.jboss.resteasy.spi.ApplicationException: java.lang.RuntimeException: java.lang.IllegalArgumentException: string 1.3.6.1.4.1.2312.9.2.1313418171132-mytestrepo-Development-ACME_Corporation.1 not an OID
        at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:154)
        at org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:248)
        at org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:216)
        at org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:205)
        at org.jboss.resteasy.core.SynchronousDispatcher.getResponse(SynchronousDispatcher.java:489)
        at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:466)
        at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:120)
        at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:200)
        at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:48)
        at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:43)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:216)
        at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:141)
        at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:93)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:63)
        at org.fedoraproject.candlepin.servlet.filter.VersionFilter.doFilter(VersionFilter.java:47)
        at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:129)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:59)
        at org.fedoraproject.candlepin.servlet.filter.logging.LoggingFilter.doFilter(LoggingFilter.java:55)
        at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:129)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:59)
        at com.wideplay.warp.persist.PersistenceFilter$3.run(PersistenceFilter.java:141)
        at com.wideplay.warp.persist.internal.Lifecycles.failEarlyAndLeaveNoOneBehind(Lifecycles.java:29)
        at com.wideplay.warp.persist.PersistenceFilter.doFilter(PersistenceFilter.java:155)
        at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:129)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:59)
        at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:122)
        at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:110)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:636)
Caused by: java.lang.RuntimeException: java.lang.IllegalArgumentException: string 1.3.6.1.4.1.2312.9.2.1313418171132-mytestrepo-Development-ACME_Corporation.1 not an OID
        at org.fedoraproject.candlepin.controller.CandlepinPoolManager.generateEntitlementCertificate(CandlepinPoolManager.java:516)
        at org.fedoraproject.candlepin.controller.CandlepinPoolManager.addEntitlement(CandlepinPoolManager.java:469)
        at org.fedoraproject.candlepin.controller.CandlepinPoolManager.entitleByPool(CandlepinPoolManager.java:434)
        at org.fedoraproject.candlepin.controller.CandlepinPoolManager$$EnhancerByGuice$$3d603e0b.CGLIB$entitleByPool$12(<generated>)
        at org.fedoraproject.candlepin.controller.CandlepinPoolManager$$EnhancerByGuice$$3d603e0b$$FastClassByGuice$$13f3cd54.invoke(<generated>)
        at com.google.inject.internal.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
        at com.google.inject.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:64)
        at com.wideplay.warp.persist.jpa.JpaLocalTxnInterceptor.invoke(JpaLocalTxnInterceptor.java:68)
        at com.google.inject.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:64)
        at com.google.inject.InterceptorStackCallback.intercept(InterceptorStackCallback.java:44)
        at org.fedoraproject.candlepin.controller.CandlepinPoolManager$$EnhancerByGuice$$3d603e0b.entitleByPool(<generated>)
        at org.fedoraproject.candlepin.controller.Entitler.createEntitlementByPool(Entitler.java:88)
        at org.fedoraproject.candlepin.controller.Entitler.bindByPool(Entitler.java:80)
        at org.fedoraproject.candlepin.resource.ConsumerResource.bind(ConsumerResource.java:728)
        at org.fedoraproject.candlepin.resource.ConsumerResource$$EnhancerByGuice$$7c507d9a.CGLIB$bind$3(<generated>)
        at org.fedoraproject.candlepin.resource.ConsumerResource$$EnhancerByGuice$$7c507d9a$$FastClassByGuice$$1ff9fb18.invoke(<generated>)
        at com.google.inject.internal.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
        at com.google.inject.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:64)
        at org.fedoraproject.candlepin.auth.interceptor.SecurityInterceptor.invoke(SecurityInterceptor.java:112)
        at com.google.inject.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:64)
        at com.google.inject.InterceptorStackCallback.intercept(InterceptorStackCallback.java:44)
        at org.fedoraproject.candlepin.resource.ConsumerResource$$EnhancerByGuice$$7c507d9a.bind(<generated>)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:616)
        at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:140)
        ... 39 more
Caused by: java.lang.IllegalArgumentException: string 1.3.6.1.4.1.2312.9.2.1313418171132-mytestrepo-Development-ACME_Corporation.1 not an OID
        at org.bouncycastle.asn1.DERObjectIdentifier.<init>(Unknown Source)
        at org.bouncycastle.x509.X509V3CertificateGenerator.addExtension(Unknown Source)
        at org.fedoraproject.candlepin.pki.impl.BouncyCastlePKIUtility.createX509Certificate(BouncyCastlePKIUtility.java:145)
        at org.fedoraproject.candlepin.service.impl.DefaultEntitlementCertServiceAdapter.createX509Certificate(DefaultEntitlementCertServiceAdapter.java:218)
        at org.fedoraproject.candlepin.service.impl.DefaultEntitlementCertServiceAdapter.generateEntitlementCert(DefaultEntitlementCertServiceAdapter.java:112)
        at org.fedoraproject.candlepin.controller.CandlepinPoolManager.generateEntitlementCertificate(CandlepinPoolManager.java:513)
        ... 65 more

Comment 1 Jeff Weiss 2011-08-15 15:42:05 UTC
There's two problems here, really - the subscribe fails, and also the error is not reported in the UI (fails silently).  Suggest fixing the latter first.

By the way, this was a custom provider.

Comment 2 Bryan Kearney 2011-08-23 20:31:00 UTC
This bug is most likely fixed by afb9582fb97c41a35eaa5b604ddc5262aa10211a. To scuessfully subscribe from subscription-manager you may need a new candlepin version to be built after 24 August.

Comment 3 Jeff Weiss 2011-09-19 19:31:08 UTC
Verified, katello-0.1.82-1.git.36.3cfca56.fc14.noarch