vncserver_proxyclient_address changed from stropt to ipopt, breaking backwards compat without deprecation

Bug #1611940 reported by David Moreau Simard
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
Fix Released
High
Sean Dague

Bug Description

The change https://review.openstack.org/#/c/348442/ introduced a backwards incompatible change, specifically at: https://review.openstack.org/#/c/348442/3/nova/conf/vnc.py@68 where vncserver_proxyclient_address was changed from a StrOpt to an IpOpt.

This broke backwards compatibility without a proper deprecation notice being introduced and there are especially no release notes that mention this.

When running with this new commit, users that configured that parameter as a hostname are now greeted with a stack trace from nova-compute:
2016-08-10 19:26:35.458 10624 CRITICAL nova [req-c235cb33-49c4-4f97-a4a1-0523f134afdc - - - - -] ConfigFileValueError: Value for option vncserver_proxyclient_address is not valid: n59.ci.centos.org is not IPv4 or IPv6 address
2016-08-10 19:26:35.458 10624 ERROR nova Traceback (most recent call last):
2016-08-10 19:26:35.458 10624 ERROR nova File "/usr/bin/nova-compute", line 10, in <module>
2016-08-10 19:26:35.458 10624 ERROR nova sys.exit(main())
2016-08-10 19:26:35.458 10624 ERROR nova File "/usr/lib/python2.7/site-packages/nova/cmd/compute.py", line 78, in main
2016-08-10 19:26:35.458 10624 ERROR nova service.wait()
2016-08-10 19:26:35.458 10624 ERROR nova File "/usr/lib/python2.7/site-packages/nova/service.py", line 415, in wait
2016-08-10 19:26:35.458 10624 ERROR nova _launcher.wait()
2016-08-10 19:26:35.458 10624 ERROR nova File "/usr/lib/python2.7/site-packages/oslo_service/service.py", line 328, in wait
2016-08-10 19:26:35.458 10624 ERROR nova status, signo = self._wait_for_exit_or_signal()
2016-08-10 19:26:35.458 10624 ERROR nova File "/usr/lib/python2.7/site-packages/oslo_service/service.py", line 303, in _wait_for_exit_or_signal
2016-08-10 19:26:35.458 10624 ERROR nova self.conf.log_opt_values(LOG, logging.DEBUG)
2016-08-10 19:26:35.458 10624 ERROR nova File "/usr/lib/python2.7/site-packages/oslo_config/cfg.py", line 2591, in log_opt_values
2016-08-10 19:26:35.458 10624 ERROR nova _sanitize(opt, getattr(group_attr, opt_name)))
2016-08-10 19:26:35.458 10624 ERROR nova File "/usr/lib/python2.7/site-packages/oslo_config/cfg.py", line 3022, in __getattr__
2016-08-10 19:26:35.458 10624 ERROR nova return self._conf._get(name, self._group)
2016-08-10 19:26:35.458 10624 ERROR nova File "/usr/lib/python2.7/site-packages/oslo_config/cfg.py", line 2633, in _get
2016-08-10 19:26:35.458 10624 ERROR nova value = self._do_get(name, group, namespace)
2016-08-10 19:26:35.458 10624 ERROR nova File "/usr/lib/python2.7/site-packages/oslo_config/cfg.py", line 2676, in _do_get
2016-08-10 19:26:35.458 10624 ERROR nova % (opt.name, str(ve)))
2016-08-10 19:26:35.458 10624 ERROR nova ConfigFileValueError: Value for option vncserver_proxyclient_address is not valid: n59.ci.centos.org is not IPv4 or IPv6 address
2016-08-10 19:26:35.458 10624 ERROR nova

summary: - vncserver_proxyclient_address changed from stropt to ipopt, beaking
+ vncserver_proxyclient_address changed from stropt to ipopt, breaking
backwards compat without deprecation
Revision history for this message
David Moreau Simard (dmsimard) wrote :
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to nova (master)

Reviewed: https://review.openstack.org/353710
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=9289e6212cf54a4ce74c7615cf74892c6a70c50d
Submitter: Jenkins
Branch: master

commit 9289e6212cf54a4ce74c7615cf74892c6a70c50d
Author: Sean Dague <email address hidden>
Date: Wed Aug 10 16:00:53 2016 -0400

    vnc host options need to support hostnames

    When updating the config options the VNC options were switched from
    StrOpt to IPOpt. However these are hostnames, they even say so in the
    option name, so IPOpt is too restrictive, and could break folks in
    upgrade if they set these to hostnames.

    Change-Id: Ib2062407dcf9cba8676b0f38aa0c63df25cc7b38
    Closes-Bug: #1611940

Changed in nova:
status: New → Fix Released
Matt Riedemann (mriedem)
Changed in nova:
importance: Undecided → High
assignee: nobody → Sean Dague (sdague)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix merged to nova (master)

Reviewed: https://review.openstack.org/353917
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=46a6be4944ebc88a1a880ba014afe241cd64a370
Submitter: Jenkins
Branch: master

commit 46a6be4944ebc88a1a880ba014afe241cd64a370
Author: John Garbutt <email address hidden>
Date: Thu Aug 11 10:03:38 2016 +0100

    Maintain backwards compat for listen opts

    Technically you can use a hostname, that then gets resolved by DNS to
    find the IP address to bind to. Although this is not actually a very
    good idea, because it just picks the first IP it gets and tried to bind
    to that one, which is not always the best idea.

    Related-Bug: #1611940

    blueprint centralize-config-options-newton

    Change-Id: Icd271b62935969036b6622b8582edec8bd496dd2

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/nova 14.0.0.0b3

This issue was fixed in the openstack/nova 14.0.0.0b3 development milestone.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.