Bug #28693
closedCandlepin fails to talk to qpidd listening on ::1 when connecting by hostname "localhost"
Description
Cloned from https://bugzilla.redhat.com/show_bug.cgi?id=1789005
Description of problem:
We have an environment where Satellite has 127.0.0.1 and ::1 on lo interface and something along the lines of fd::/64 on eth0. In this environment, qpidd listens on ::1 only.
In /etc/hosts we have
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
If we set candlepin.amqp.connect to localhost1 in /etc/candlepin/candlepin.conf, candlepin goes into suspended mode.
Version-Release number of selected component (if applicable):
candlepin-2.9.14-1.el7.noarch
How reproducible:
Always
Steps to Reproduce:
1. Make qpidd listen on ::1 only
2. Set candlepin.amqp.connect to tcp://localhost:5671?ssl='true'&ssl_cert_alias='amqp-client'
3. Restart tomcat
4. watch /var/log/candlepin/candlepin.log
Actual results:
After a while these lines appear in the log
org.candlepin.audit.QpidConnection - Connection to Qpid was lost! Cleaning up current connection!
org.candlepin.controller.ModeManagerImpl - Entering new mode SUSPEND for the following reasons: [QPID_DOWN]
org.candlepin.controller.ModeManagerImpl - Candlepin is entering suspend mode for the following reasons: [QPID_DOWN]
Expected results:
Candlepin can talk to qpidd, these lines appear in log
org.candlepin.audit.QpidConnection - Attempting to connect to QPID due to status change: UNKNOWN --> CONNECTED
org.candlepin.audit.QpidConnection - AMQP connection factory created.
org.candlepin.audit.QpidConnection - AMQP session created successfully...
Additional info:
If I drop "localhost" from the line starting with 127.0.0.1, it suddenly starts working.
It seems as if candlepin resolves the name to 127.0.0.1 and doesn't retry with ::1 on failure.
[1] - The exact line is: tcp://localhost:5671?ssl='true'&ssl_cert_alias='amqp-client'