[openstack-dev] [cinder] [oslo] cinder.conf generation is broken for my_ip, building non-reproducibly

Thomas Goirand zigo at debian.org
Mon Mar 12 08:17:19 UTC 2018


Hi,

When inspecting Cinder's (Queens release) cinder.conf, I can see:

# Warning: Failed to format sample for my_ip
# unhashable type: 'HostAddress'

So it seems there's an issue in either Cinder or Oslo. How can I
investigate and fix this?

It's very likely that I'm once more the only person in the OpenStack
community that is really checking config file generation (it used to be
like that for past releases), and therefore the only one who noticed it.

Also, looking at the code, this seems to be yet-another-instance of
"package cannot be built reproducible" [1] with the build host config
leaking in the configuration (well, once that's fixed...). Indeed, in
the code I can read:

    cfg.HostAddressOpt('my_ip',
                       default=netutils.get_my_ipv4(),
                       help='IP address of this host'),

This means that, when that's repaired, build Cinder will write something
like this:

#my_ip = 1.2.3.4

With 1.2.3.4 being the value of netutils.get_my_ipv4(). This is easily
fixed by adding something like this:

sample-default='<IP-ADDRESS>'

I'm writing this here for Cinder, but there's been numerous cases like
this already. The most common mistake being the hostname of the build
host leaking in the configuration. While this is easily fixed at the
packaging level fixing the config file after generating it with
oslo.config, often that config file is also built with the sphinx doc,
and then that file isn't built reproducibly. That's harder to detect,
and easier fixed upstream.

Cheers,

Thomas Goirand (zigo)

[1] https://reproducible-builds.org/



More information about the OpenStack-dev mailing list