Ironic Inspector have problem with IPv6 in db connection

Bug #1829582 reported by Harald Jensås
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
tripleo
Fix Released
High
Harald Jensås

Bug Description

When trying to deploy undercloud using IPv6 addresses db migration for Ironic inspector fails.

    "Error running ['podman', 'run', '--name', 'ironic_inspector_db_sync', '--label', 'config_id=tripleo_step3', '--label', 'container_name=ironic_inspector_db_sync', '--label', 'managed_by=paunch', '--label', 'config_data={\"start_order\": 2, \"image\": \"docker.io/tripleomaster/centos-binary-ironic-inspector:current-tripleo\", \"environment\": [\"KOLLA_CONFIG_STRATEGY=COPY_ALWAYS\"], \"command\": \"/usr/bin/bootstrap_host_exec ironic_inspector su ironic-inspector -s /bin/bash -c \\'ironic-inspector-dbsync --config-file /etc/ironic-inspector/inspector.conf upgrade\\'\", \"user\": \"root\", \"volumes\": [\"/etc/hosts:/etc/hosts:ro\", \"/etc/localtime:/etc/localtime:ro\", \"/etc/pki/ca-trust/extracted:/etc/pki/ca-trust/extracted:ro\", \"/etc/pki/ca-trust/source/anchors:/etc/pki/ca-trust/source/anchors:ro\", \"/etc/pki/tls/certs/ca-bundle.crt:/etc/pki/tls/certs/ca-bundle.crt:ro\", \"/etc/pki/tls/certs/ca-bundle.trust.crt:/etc/pki/tls/certs/ca-bundle.trust.crt:ro\", \"/etc/pki/tls/cert.pem:/etc/pki/tls/cert.pem:ro\", \"/dev/log:/dev/log\", \"/etc/ssh/ssh_known_hosts:/etc/ssh/ssh_known_hosts:ro\", \"/etc/puppet:/etc/puppet:ro\", \"/var/lib/kolla/config_files/ironic_inspector.json:/var/lib/kolla/config_files/config.json:ro\", \"/var/lib/config-data/ironic_inspector/etc/ironic-inspector:/etc/ironic-inspector:ro\", \"/var/log/containers/ironic-inspector:/var/log/ironic-inspector:z\"], \"net\": \"host\", \"detach\": false, \"privileged\": false}', '--conmon-pidfile=/var/run/ironic_inspector_db_sync.pid', '--log-driver', 'json-file', '--log-opt', 'path=/var/log/containers/stdouts/ironic_inspector_db_sync.log', '--env=KOLLA_CONFIG_STRATEGY=COPY_ALWAYS', '--net=host', '--privileged=false', '--user=root', '--volume=/etc/hosts:/etc/hosts:ro', '--volume=/etc/localtime:/etc/localtime:ro', '--volume=/etc/pki/ca-trust/extracted:/etc/pki/ca-trust/extracted:ro', '--volume=/etc/pki/ca-trust/source/anchors:/etc/pki/ca-trust/source/anchors:ro', '--volume=/etc/pki/tls/certs/ca-bundle.crt:/etc/pki/tls/certs/ca-bundle.crt:ro', '--volume=/etc/pki/tls/certs/ca-bundle.trust.crt:/etc/pki/tls/certs/ca-bundle.trust.crt:ro', '--volume=/etc/pki/tls/cert.pem:/etc/pki/tls/cert.pem:ro', '--volume=/dev/log:/dev/log', '--volume=/etc/ssh/ssh_known_hosts:/etc/ssh/ssh_known_hosts:ro', '--volume=/etc/puppet:/etc/puppet:ro', '--volume=/var/lib/kolla/config_files/ironic_inspector.json:/var/lib/kolla/config_files/config.json:ro', '--volume=/var/lib/config-data/ironic_inspector/etc/ironic-inspector:/etc/ironic-inspector:ro', '--volume=/var/log/containers/ironic-inspector:/var/log/ironic-inspector:z', 'docker.io/tripleomaster/centos-binary-ironic-inspector:current-tripleo', '/usr/bin/bootstrap_host_exec', 'ironic_inspector', 'su', 'ironic-inspector', '-s', '/bin/bash', '-c', \"'ironic-inspector-dbsync\", '--config-file', '/etc/ironic-inspector/inspector.conf', \"upgrade'\"]. [1]",
    "stderr: Traceback (most recent call last):",
    " File \"/usr/bin/ironic-inspector-dbsync\", line 10, in <module>",
    " sys.exit(main())",
    " File \"/usr/lib/python2.7/site-packages/ironic_inspector/dbsync.py\", line 92, in main",
    " CONF.command.func(config, CONF.command.name)",
    " File \"/usr/lib/python2.7/site-packages/ironic_inspector/dbsync.py\", line 74, in with_revision",
    " do_alembic_command(config, cmd, revision)",
    " File \"/usr/lib/python2.7/site-packages/ironic_inspector/dbsync.py\", line 79, in do_alembic_command",
    " getattr(alembic_command, cmd)(config, *args, **kwargs)",
    " File \"/usr/lib/python2.7/site-packages/alembic/command.py\", line 276, in upgrade",
    " script.run_env()",
    " File \"/usr/lib/python2.7/site-packages/alembic/script/base.py\", line 475, in run_env",
    " util.load_python_file(self.dir, \"env.py\")",
    " File \"/usr/lib/python2.7/site-packages/alembic/util/pyfiles.py\", line 90, in load_python_file",
    " module = load_module_py(module_id, path)",
    " File \"/usr/lib/python2.7/site-packages/alembic/util/compat.py\", line 216, in load_module_py",
    " mod = imp.load_source(module_id, path, fp)",
    " File \"/usr/lib/python2.7/site-packages/ironic_inspector/migrations/env.py\", line 83, in <module>",
    " run_migrations_online()",
    " File \"/usr/lib/python2.7/site-packages/ironic_inspector/migrations/env.py\", line 69, in run_migrations_online",
    " session = db.get_writer_session()",
    " File \"/usr/lib/python2.7/site-packages/ironic_inspector/db.py\", line 206, in get_writer_session",
    " return get_context_manager().writer.get_sessionmaker()()",
    " File \"/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py\", line 848, in get_sessionmaker",
    " return self._factory.get_writer_maker()",
    " File \"/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py\", line 392, in get_writer_maker",
    " self._start()",
    " File \"/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py\", line 510, in _start",
    " engine_args, maker_args)",
    " File \"/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py\", line 534, in _setup_for_connection",
    " sql_connection=sql_connection, **engine_kwargs)",
    " File \"/usr/lib/python2.7/site-packages/debtcollector/renames.py\", line 43, in decorator",
    " return wrapped(*args, **kwargs)",
    " File \"/usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/engines.py\", line 153, in create_engine",
    " url = sqlalchemy.engine.url.make_url(sql_connection)",
    " File \"/usr/lib64/python2.7/site-packages/sqlalchemy/engine/url.py\", line 225, in make_url",
    " return _parse_rfc1738_args(name_or_url)",
    " File \"/usr/lib64/python2.7/site-packages/sqlalchemy/engine/url.py\", line 284, in _parse_rfc1738_args",
    " return URL(name, **components)",
    " File \"/usr/lib64/python2.7/site-packages/sqlalchemy/engine/url.py\", line 71, in __init__",
    " self.port = int(port)",
    "ValueError: invalid literal for int() with base 10: '3456:789a:1::3'",

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to tripleo-heat-templates (master)

Fix proposed to branch: master
Review: https://review.opendev.org/659887

Changed in tripleo:
assignee: nobody → Harald Jensås (harald-jensas)
status: New → In Progress
description: updated
Changed in tripleo:
importance: Undecided → High
milestone: none → train-1
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to tripleo-heat-templates (master)

Reviewed: https://review.opendev.org/659887
Committed: https://git.openstack.org/cgit/openstack/tripleo-heat-templates/commit/?id=cf6fc40c67c6bc13334c00506e5f4a1065e9defe
Submitter: Zuul
Branch: master

commit cf6fc40c67c6bc13334c00506e5f4a1065e9defe
Author: Harald Jensås <email address hidden>
Date: Sat May 18 00:15:08 2019 +0200

    Ironic Inspector - use make_url for db connection

    The current list_join implementation does not handle
    IPv6 addresses properly. Switch to use the make_url
    function.

    Closes-Bug: #1829582
    Change-Id: I9bd87fe94909107e7bfece0e7643cb48b6cf2355

Changed in tripleo:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/tripleo-heat-templates 11.0.0

This issue was fixed in the openstack/tripleo-heat-templates 11.0.0 release.

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.