Bug 1012159

Summary: Importing individual puppet module fails with TypeError (can't convert nil into Hash)
Product: Red Hat Satellite Reporter: Og Maciel <omaciel>
Component: WebUIAssignee: David Davis <daviddavis>
Status: CLOSED CURRENTRELEASE QA Contact: Og Maciel <omaciel>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 6.0.2CC: bbuckingham, daviddavis, ehelms, inecas, jmontleo
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:
Last Closed: 2014-04-24 17:10:00 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Screenshot none

Description Og Maciel 2013-09-25 20:44:13 UTC
Created attachment 803087 [details]
Screenshot

Description of problem:

Tried to import an individual puppet module into an existing product but the process failed with the following error being displayed in the logs:

==> /var/log/katello/production.log <==
[FATAL 2013-09-25 16:30:19 app 4ce56e57ef1f539f7aad1d444c24b527 #28314]
 | TypeError (can't convert nil into Hash):
 |   lib/katello/middleware/log_request_uuid.rb:22:in `call'

also, there is an error in the web ui, but notice that there is a rendering issue with the message (I will file a separate issue for that).

FWIW, this product is part of a content view that had been published and promoted.

Version-Release number of selected component (if applicable):


* apr-util-ldap-1.3.9-3.el6_0.1.x86_64
* candlepin-0.8.25-1.el6sam.noarch
* candlepin-scl-1-5.el6_4.noarch
* candlepin-scl-quartz-2.1.5-5.el6_4.noarch
* candlepin-scl-rhino-1.7R3-1.el6_4.noarch
* candlepin-scl-runtime-1-5.el6_4.noarch
* candlepin-selinux-0.8.25-1.el6sam.noarch
* candlepin-tomcat6-0.8.25-1.el6sam.noarch
* elasticsearch-0.19.9-8.el6sat.noarch
* foreman-1.3.0-5.el6sat.noarch
* foreman-compute-1.3.0-5.el6sat.noarch
* foreman-installer-puppet-concat-0-2.d776701.git.0.21ef926.el6sat.noarch
* foreman-installer-puppet-dhcp-0-5.3a4a13c.el6sat.noarch
* foreman-installer-puppet-dns-0-7.fcae203.el6sat.noarch
* foreman-installer-puppet-foreman-0-6.568c5c4.el6sat.noarch
* foreman-installer-puppet-foreman_proxy-0-8.bd1e35d.el6sat.noarch
* foreman-installer-puppet-puppet-0-3.ab46748.el6sat.noarch
* foreman-installer-puppet-tftp-0-5.ea6c5e5.el6sat.noarch
* foreman-installer-puppet-xinetd-0-50a267b8.git.0.44aca6a.el6sat.noarch
* foreman-libvirt-1.3.0-5.el6sat.noarch
* foreman-postgresql-1.3.0-5.el6sat.noarch
* foreman-proxy-1.3.0-1.el6sat.noarch
* katello-1.4.6-9.el6sat.noarch
* katello-all-1.4.6-9.el6sat.noarch
* katello-candlepin-cert-key-pair-1.0-1.noarch
* katello-certs-tools-1.4.4-1.el6sat.noarch
* katello-cli-1.4.3-13.el6sat.noarch
* katello-cli-common-1.4.3-13.el6sat.noarch
* katello-common-1.4.6-9.el6sat.noarch
* katello-configure-1.4.5-8.el6sat.noarch
* katello-configure-foreman-1.4.5-8.el6sat.noarch
* katello-configure-foreman-proxy-1.4.5-8.el6sat.noarch
* katello-foreman-all-1.4.6-9.el6sat.noarch
* katello-glue-candlepin-1.4.6-9.el6sat.noarch
* katello-glue-elasticsearch-1.4.6-9.el6sat.noarch
* katello-glue-pulp-1.4.6-9.el6sat.noarch
* katello-qpid-broker-key-pair-1.0-1.noarch
* katello-qpid-client-key-pair-1.0-1.noarch
* katello-selinux-1.4.4-4.el6sat.noarch
* openldap-2.4.23-31.el6.x86_64
* pulp-katello-plugins-0.2-1.el6sat.noarch
* pulp-nodes-common-2.3.0-0.14.alpha.el6sat.noarch
* pulp-nodes-parent-2.3.0-0.14.alpha.el6sat.noarch
* pulp-puppet-plugins-2.3.0-0.14.alpha.el6sat.noarch
* pulp-rpm-plugins-2.3.0-0.14.alpha.el6sat.noarch
* pulp-selinux-2.3.0-0.14.alpha.el6sat.noarch
* pulp-server-2.3.0-0.14.alpha.el6sat.noarch
* python-ldap-2.3.10-1.el6.x86_64
* ruby193-rubygem-ldap_fluff-0.2.2-2.el6sat.noarch
* ruby193-rubygem-net-ldap-0.3.1-3.el6sat.noarch
* ruby193-rubygem-runcible-1.0.7-1.el6sat.noarch
* signo-0.0.20-3.el6sat.noarch
* signo-katello-0.0.20-3.el6sat.noarch

How reproducible:


Steps to Reproduce:
1. Create a product and add a puppet repository
2. Attempt to import an individual puppet module (I used https://github.com/pulp/pulp_puppet/blob/master/pulp_puppet_plugins/test/data/good-modules/adob-good/pkg/adob-good-2.0.0.tar.gz)
3.

Actual results:

There's an error in the production.log and the UI

Expected results:


Additional info:

Comment 2 David Davis 2013-09-25 20:50:02 UTC
Here is the puppet module Og used (correct me if I am wrong):

https://github.com/pulp/pulp_puppet/raw/master/pulp_puppet_plugins/test/data/repos/valid/adob-good-2.0.0.tar.gz

Comment 3 David Davis 2013-09-25 20:50:38 UTC
Oh duh, disregard my previous comment.

Comment 5 David Davis 2013-09-27 14:45:13 UTC
To update this bug, it looks like it's happening in FF but not in Chrome. It looks like the error is happening in rack/middleware. Found this thread about the same error:

https://github.com/rack/rack/issues/430

I tried to output env["rack.request.form_hash"] in FF, and sure enough it's nil. In Chrome though, env["rack.request.form_hash"] is:

{"content"=>{:filename=>"adob-good-2.0.0.tar.gz", :type=>"application/gzip", :name=>"content", :tempfile=>#<File:/tmp/RackMultipart20130927-18002-1yx0g23>, :head=>"Content-Disposition: form-data; name=\"content\"; filename=\"adob-good-2.0.0.tar.gz\"\r\nContent-Type: application/gzip\r\n"}}

So nil causes the error. Need to look into why it's nil in FF.

Comment 6 David Davis 2013-09-27 14:52:50 UTC
Here is an easy way to debug this problem (change 1 to whatever id your puppet repo has):

https://gist.github.com/daviddavis/b353d7fde212797cdbee

Comment 7 David Davis 2013-09-30 18:27:36 UTC
https://github.com/Katello/katello/pull/3059

katello SHA

e89847b85db88268d0e8a1752ca362d3ff050479

1012159: Removing ng-disable to fix module upload in Firefox

Comment 10 Og Maciel 2013-10-18 21:39:13 UTC
Verified:
* apr-util-ldap-1.3.9-3.el6_0.1.x86_64
* candlepin-0.8.25-1.el6sam.noarch
* candlepin-scl-1-5.el6_4.noarch
* candlepin-scl-quartz-2.1.5-5.el6_4.noarch
* candlepin-scl-rhino-1.7R3-1.el6_4.noarch
* candlepin-scl-runtime-1-5.el6_4.noarch
* candlepin-selinux-0.8.25-1.el6sam.noarch
* candlepin-tomcat6-0.8.25-1.el6sam.noarch
* elasticsearch-0.19.9-8.el6sat.noarch
* foreman-1.3.0-18.el6sat.noarch
* foreman-compute-1.3.0-18.el6sat.noarch
* foreman-libvirt-1.3.0-18.el6sat.noarch
* foreman-postgresql-1.3.0-18.el6sat.noarch
* foreman-proxy-1.3.0-3.el6sat.noarch
* katello-1.4.6-39.el6sat.noarch
* katello-all-1.4.6-39.el6sat.noarch
* katello-candlepin-cert-key-pair-1.0-1.noarch
* katello-certs-tools-1.4.4-1.el6sat.noarch
* katello-cli-1.4.3-24.el6sat.noarch
* katello-cli-common-1.4.3-24.el6sat.noarch
* katello-common-1.4.6-39.el6sat.noarch
* katello-configure-1.4.7-5.el6sat.noarch
* katello-configure-foreman-1.4.7-5.el6sat.noarch
* katello-configure-foreman-proxy-1.4.7-5.el6sat.noarch
* katello-foreman-all-1.4.6-39.el6sat.noarch
* katello-glue-candlepin-1.4.6-39.el6sat.noarch
* katello-glue-elasticsearch-1.4.6-39.el6sat.noarch
* katello-glue-pulp-1.4.6-39.el6sat.noarch
* katello-qpid-broker-key-pair-1.0-1.noarch
* katello-qpid-client-key-pair-1.0-1.noarch
* katello-selinux-1.4.4-4.el6sat.noarch
* openldap-2.4.23-31.el6.x86_64
* pulp-katello-plugins-0.2-1.el6sat.noarch
* pulp-nodes-common-2.3.0-0.22.beta.el6sat.noarch
* pulp-nodes-parent-2.3.0-0.22.beta.el6sat.noarch
* pulp-puppet-plugins-2.3.0-0.22.beta.el6sat.noarch
* pulp-rpm-plugins-2.3.0-0.22.beta.el6sat.noarch
* pulp-selinux-2.3.0-0.22.beta.el6sat.noarch
* pulp-server-2.3.0-0.22.beta.el6sat.noarch
* python-ldap-2.3.10-1.el6.x86_64
* ruby193-rubygem-ldap_fluff-0.2.2-2.el6sat.noarch
* ruby193-rubygem-net-ldap-0.3.1-3.el6sat.noarch
* ruby193-rubygem-runcible-1.0.7-1.el6sat.noarch
* signo-0.0.22-2.el6sat.noarch
* signo-katello-0.0.22-2.el6sat.noarch

Comment 11 Bryan Kearney 2014-04-24 17:10:00 UTC
This was verified and delivered with MDP2. Closing it out.

Comment 12 Bryan Kearney 2014-04-24 17:11:21 UTC
This was delivered and verified with MDP2. Closing the bug.