Red Hat Satellite engineering is moving the tracking of its product development work on Satellite to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "Satellite project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs will be migrated starting at the end of May. If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "Satellite project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/SAT-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Bug 1692698 - hammer throws "too few arguments (ArgumentError)" when Satellite returns 500
Summary: hammer throws "too few arguments (ArgumentError)" when Satellite returns 500
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Satellite
Classification: Red Hat
Component: Hammer
Version: 6.5.0
Hardware: Unspecified
OS: Unspecified
unspecified
low
Target Milestone: 6.8.0
Assignee: Oleh Fedorenko
QA Contact: Mirek Długosz
URL:
Whiteboard:
: 1707792 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2019-03-26 09:25 UTC by Evgeni Golov
Modified: 2023-12-15 16:24 UTC (History)
9 users (show)

Fixed In Version: tfm-rubygem-hammer_cli_katello-0.21.0
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2020-10-27 13:32:10 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)
hammer -d ping output (531.61 KB, text/plain)
2019-03-27 18:15 UTC, Evgeni Golov
no flags Details


Links
System ID Private Priority Status Summary Last Updated
Foreman Issue Tracker 27548 0 Normal Closed hammer throws "too few arguments (ArgumentError)" when Satellite returns 500 2021-01-22 09:48:45 UTC
Red Hat Product Errata RHBA-2020:4367 0 None None None 2020-10-27 13:32:24 UTC

Description Evgeni Golov 2019-03-26 09:25:16 UTC
Description of problem:
When Satellite returns 500 errors (because Passenger is unhappy), running hammer commands like "hammer ping" results in an ugly error instead of a nice message saying that the Satellite could not be reached.

Version-Release number of selected component (if applicable):
tfm-rubygem-hammer_cli-0.15.1.1-1.el7sat.noarch

How reproducible:
100%

Steps to Reproduce:
1. make Passenger return an error (like "Web application could not be started" by installing an incompatible GEM version)
2. hammer ping

Actual results:
# hammer ping
Traceback (most recent call last):
	14: from /bin/hammer:23:in `<main>'
	13: from /bin/hammer:23:in `load'
	12: from /opt/theforeman/tfm/root/usr/share/gems/gems/hammer_cli-0.15.1.1/bin/hammer:147:in `<top (required)>'
	11: from /opt/theforeman/tfm/root/usr/share/gems/gems/clamp-1.1.2/lib/clamp/command.rb:132:in `run'
	10: from /opt/theforeman/tfm/root/usr/share/gems/gems/hammer_cli-0.15.1.1/lib/hammer_cli/abstract.rb:28:in `run'
	 9: from /opt/theforeman/tfm/root/usr/share/gems/gems/hammer_cli-0.15.1.1/lib/hammer_cli/abstract.rb:32:in `rescue in run'
	 8: from /opt/theforeman/tfm/root/usr/share/gems/gems/hammer_cli-0.15.1.1/lib/hammer_cli/abstract.rb:188:in `handle_exception'
	 7: from /opt/theforeman/tfm/root/usr/share/gems/gems/hammer_cli-0.15.1.1/lib/hammer_cli/exception_handler.rb:31:in `handle_exception'
	 6: from /opt/theforeman/tfm/root/usr/share/gems/gems/hammer_cli-0.15.1.1/lib/hammer_cli/exception_handler.rb:65:in `handle_general_exception'
	 5: from /opt/theforeman/tfm/root/usr/share/gems/gems/hammer_cli-0.15.1.1/lib/hammer_cli/exception_handler.rb:48:in `print_error'
	 4: from /opt/theforeman/tfm/root/usr/share/gems/gems/hammer_cli-0.15.1.1/lib/hammer_cli/output/output.rb:23:in `print_error'
	 3: from /opt/theforeman/tfm/root/usr/share/gems/gems/hammer_cli-0.15.1.1/lib/hammer_cli/output/adapter/abstract.rb:33:in `print_error'
	 2: from /opt/theforeman/tfm/root/usr/share/gems/gems/hammer_cli-0.15.1.1/lib/hammer_cli/utils.rb:13:in `format'
	 1: from /opt/theforeman/tfm/root/usr/share/gems/gems/fast_gettext-1.4.1/lib/fast_gettext/vendor/string.rb:70:in `%'
/opt/theforeman/tfm/root/usr/share/gems/gems/fast_gettext-1.4.1/lib/fast_gettext/vendor/string.rb:70:in `%': too few arguments (ArgumentError)


Expected results:
A human readable error. Compare this to the error you get when httpd is completely down:
# hammer ping
Could not load the API description from the server: 
Failed to open TCP connection to sat-6-5-qa-rhel7.kangae.example.com:443 (Connection refused - connect(2) for "sat-6-5-qa-rhel7.kangae.example.com" port 443)
  - is the server down?
  - was 'foreman-rake apipie:cache' run on the server when using apipie cache? (typical production settings)


Additional info:

Comment 3 Martin Bacovsky 2019-03-27 16:48:15 UTC
Could you please share debug output of 'hammer -d ping'? Then we can better discuss what should be the appropriate solution.

I tried to reproduce and got 500 error containing some backtrace. 500 is generic (unhandled) error and the backtrace is
the massage attached by server. Hammer by default prints the error message. Is this the same what you see?
Shouldn't the message be improved on the server side?
Would be prepending message like "Your server encountred unhandled error:" acceptable solution for you?
Prinitng that the server is down on unhandled errors does not seem correct to me.

Comment 4 Evgeni Golov 2019-03-27 18:15:16 UTC
Created attachment 1548695 [details]
hammer -d ping output

Sure, attached.

The error displayed is from hammer, not the one that Satellite suffers (in the pictured case, it's an incompatible GEM, the easiest way to make Satellite not to start up properly).

Comment 5 Evgeni Golov 2019-05-08 11:50:14 UTC
*** Bug 1707792 has been marked as a duplicate of this bug. ***

Comment 6 Martin Bacovsky 2019-08-08 12:52:12 UTC
Created redmine issue https://projects.theforeman.org/issues/27548 from this bug

Comment 7 Bryan Kearney 2019-12-03 20:23:41 UTC
Upstream bug assigned to ofedoren

Comment 8 Bryan Kearney 2019-12-03 20:23:42 UTC
Moving this bug to POST for triage into Satellite 6 since the upstream issue https://projects.theforeman.org/issues/27548 has been resolved.

Comment 9 Mirek Długosz 2020-06-23 18:38:00 UTC
As reproducer, I modified foreman_rh_cloud plugin file lib/foreman_rh_cloud/engine.rb to require non-existing foreman version. Then I restarted Satellite services and ran hammer ping.

On 6.6:
#v+
$ hammer ping
Traceback (most recent call last):
        14: from /usr/bin/hammer:23:in `<main>'
        13: from /usr/bin/hammer:23:in `load'
        12: from /opt/theforeman/tfm/root/usr/share/gems/gems/hammer_cli-0.17.1/bin/hammer:147:in `<top (required)>'
        11: from /opt/theforeman/tfm/root/usr/share/gems/gems/clamp-1.1.2/lib/clamp/command.rb:132:in `run'
        10: from /opt/theforeman/tfm/root/usr/share/gems/gems/hammer_cli-0.17.1/lib/hammer_cli/abstract.rb:68:in `run'
         9: from /opt/theforeman/tfm/root/usr/share/gems/gems/hammer_cli-0.17.1/lib/hammer_cli/abstract.rb:72:in `rescue in run'
         8: from /opt/theforeman/tfm/root/usr/share/gems/gems/hammer_cli-0.17.1/lib/hammer_cli/abstract.rb:256:in `handle_exception'
         7: from /opt/theforeman/tfm/root/usr/share/gems/gems/hammer_cli-0.17.1/lib/hammer_cli/exception_handler.rb:31:in `handle_exception'
         6: from /opt/theforeman/tfm/root/usr/share/gems/gems/hammer_cli-0.17.1/lib/hammer_cli/exception_handler.rb:65:in `handle_general_exception'
         5: from /opt/theforeman/tfm/root/usr/share/gems/gems/hammer_cli-0.17.1/lib/hammer_cli/exception_handler.rb:48:in `print_error'
         4: from /opt/theforeman/tfm/root/usr/share/gems/gems/hammer_cli-0.17.1/lib/hammer_cli/output/output.rb:23:in `print_error'
         3: from /opt/theforeman/tfm/root/usr/share/gems/gems/hammer_cli-0.17.1/lib/hammer_cli/output/adapter/abstract.rb:33:in `print_error'
         2: from /opt/theforeman/tfm/root/usr/share/gems/gems/hammer_cli-0.17.1/lib/hammer_cli/utils.rb:13:in `format'
         1: from /opt/theforeman/tfm/root/usr/share/gems/gems/fast_gettext-1.4.1/lib/fast_gettext/vendor/string.rb:70:in `%'
/opt/theforeman/tfm/root/usr/share/gems/gems/fast_gettext-1.4.1/lib/fast_gettext/vendor/string.rb:70:in `%': too few arguments (ArgumentError)
#v-

On 6.8:
#v+
$ hammer ping
Error: 502 Bad Gateway
#v-

Tested on:
Satellite 6.8.0 snap 5
pulp-server-2.21.2-1.el7sat.noarch
satellite-6.8.0-0.4.beta.el7sat.noarch
foreman-2.1.0-0.20.rc2.el7sat.noarch
katello-3.16.0-0.3.rc1.el7sat.noarch
tfm-rubygem-hammer_cli-2.1.1-1.el7sat.noarch
tfm-rubygem-hammer_cli_foreman-2.1.1-1.el7sat.noarch
tfm-rubygem-hammer_cli_katello-0.22.2-1.el7sat.noarch

Comment 12 errata-xmlrpc 2020-10-27 13:32:10 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (Satellite 6.8 Satellite Tools Release), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2020:4367


Note You need to log in before you can comment on or make changes to this bug.