New rabbitmq 3.7 breaks in containers when running puppet

Bug #1822673 reported by Michele Baldessari
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
tripleo
Fix Released
High
Michele Baldessari

Bug Description

When we use rabbitmq 3.7 we might hit the following issue when running rabbitmqctl commands inside containers (as puppet does):
Error: Failed to apply catalog: Cannot parse invalid user line: warning: the VM is running with native name encoding of latin1 which may cause Elixir to malfunction as it expects utf8. Please
 ensure your locale is set to UTF-8 (which can be verified by running "locale" in your shell)

This is fundamentally the tripleo version of https://github.com/voxpupuli/puppet-rabbitmq/issues/671

This is a strict requirement coming from Elixir:
https://github.com/elixir-lang/elixir/issues/3548

Since containers do not have UTF-8 as a default we have this problem:
[root@overcloud-controller-0 ~]# podman exec -it rabbitmq-bundle-podman-0 sh
()[root@overcloud-controller-0 /]$ rabbitmqctl -q list_users
warning: the VM is running with native name encoding of latin1 which may cause Elixir to malfunction as it expects utf8. Please ensure your locale is set to UTF-8 (which can be verified by ru
nning "locale" in your shell)
user tags
guest [administrator]
()[root@overcloud-controller-0 /]$ locale
LANG=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=

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

Fix proposed to branch: master
Review: https://review.openstack.org/649170

Changed in tripleo:
assignee: nobody → Michele Baldessari (michele)
status: Triaged → In Progress
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.openstack.org/649299

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix merged to puppet-tripleo (master)

Reviewed: https://review.openstack.org/649170
Committed: https://git.openstack.org/cgit/openstack/puppet-tripleo/commit/?id=a92d1fccc6ecd738a9a30292d03f48bec7e5fd3b
Submitter: Zuul
Branch: master

commit a92d1fccc6ecd738a9a30292d03f48bec7e5fd3b
Author: Michele Baldessari <email address hidden>
Date: Mon Apr 1 21:38:13 2019 +0200

    Force C.UTF-8 when dealing with rabbitmq

    When we use rabbitmq 3.7 we might hit the following issue when running rabbitmqctl commands inside containers (as puppet does):

      Error: Failed to apply catalog: Cannot parse invalid user line: warning:
      the VM is running with native name encoding of latin1 which may cause
      Elixir to malfunction as it expects utf8. Please ensure your locale is
      set to UTF-8 (which can be verified by running "locale" in your shell)

    This is fundamentally the tripleo version of
    https://github.com/voxpupuli/puppet-rabbitmq/issues/671

    This is a strict requirement coming from Elixir:
    https://github.com/elixir-lang/elixir/issues/3548

    Since containers do not have UTF-8 as a default we have this problem:
    [root@overcloud-controller-0 ~]# podman exec -it rabbitmq-bundle-podman-0 sh
    ()[root@overcloud-controller-0 /]$ rabbitmqctl -q list_users
    warning: the VM is running with native name encoding of latin1 which may cause Elixir to malfunction as it expects utf8. Please ensure your locale is set to UTF-8 (which can be verified by ru nning "locale" in your shell) user tags
    guest [administrator]
    ()[root@overcloud-controller-0 /]$ locale
    LANG=
    LC_CTYPE="POSIX"
    LC_NUMERIC="POSIX"
    LC_TIME="POSIX"
    LC_COLLATE="POSIX"
    LC_MONETARY="POSIX"
    LC_MESSAGES="POSIX"
    LC_PAPER="POSIX"
    LC_NAME="POSIX"
    LC_ADDRESS="POSIX"
    LC_TELEPHONE="POSIX"
    LC_MEASUREMENT="POSIX"
    LC_IDENTIFICATION="POSIX"
    LC_ALL=

    Co-Authored-By: Damien Ciabrini <email address hidden>
    Related-Bug: #1822673
    Change-Id: I21ef2e7862f3e5e21812d342b1681f8d5f7f005d

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

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

commit bc9b922ddcdb6625b0e4c8b67851b3843d1d8775
Author: Michele Baldessari <email address hidden>
Date: Tue Apr 2 14:20:37 2019 +0200

    Force C.UTF-8 when dealing with rabbitmq

    When we use rabbitmq 3.7 we might hit the following issue when running rabbitmqctl commands inside containers (as puppet does):

      Error: Failed to apply catalog: Cannot parse invalid user line: warning:
      the VM is running with native name encoding of latin1 which may cause
      Elixir to malfunction as it expects utf8. Please ensure your locale is
      set to UTF-8 (which can be verified by running "locale" in your shell)

    This is fundamentally the tripleo version of
    https://github.com/voxpupuli/puppet-rabbitmq/issues/671

    This is a strict requirement coming from Elixir:
    https://github.com/elixir-lang/elixir/issues/3548

    Since containers do not have UTF-8 as a default we have this problem:
    [root@overcloud-controller-0 ~]# podman exec -it rabbitmq-bundle-podman-0 sh
    ()[root@overcloud-controller-0 /]$ rabbitmqctl -q list_users
    warning: the VM is running with native name encoding of latin1 which may cause Elixir to malfunction as it expects utf8. Please ensure your locale is set to UTF-8 (which can be verified by ru nning "locale" in your shell) user tags
    guest [administrator]
    ()[root@overcloud-controller-0 /]$ locale
    LANG=
    LC_CTYPE="POSIX"
    LC_NUMERIC="POSIX"
    LC_TIME="POSIX"
    LC_COLLATE="POSIX"
    LC_MONETARY="POSIX"
    LC_MESSAGES="POSIX"
    LC_PAPER="POSIX"
    LC_NAME="POSIX"
    LC_ADDRESS="POSIX"
    LC_TELEPHONE="POSIX"
    LC_MEASUREMENT="POSIX"
    LC_IDENTIFICATION="POSIX"
    LC_ALL=

    This is the THT version of forcing UTF-8 on all rabbitmq_init_bundles
    and on epmd itself. The puppet-tripleo one is the depends-on:
    Depends-on: I21ef2e7862f3e5e21812d342b1681f8d5f7f005d

    Tested on the original environment from Emilien where we saw this issue
    during scale-up. After appling this review and its dependency we
    correctly got a scaleup with rabbitm3.7 working

    Closes-Bug: #1822673
    Co-Authored-By: Damien Ciabrini <email address hidden>
    Change-Id: Ifc1377811de68bf14ea4aea4dfb52e22a8864d46

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 10.5.0

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

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

Related fix proposed to branch: master
Review: https://review.opendev.org/730634

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Change abandoned on tripleo-heat-templates (master)

Change abandoned by Emilien Macchi (<email address hidden>) on branch: master
Review: https://review.opendev.org/730634

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Change abandoned on puppet-tripleo (stable/queens)

Change abandoned by "Marios Andreou <email address hidden>" on branch: stable/queens
Review: https://review.opendev.org/c/openstack/puppet-tripleo/+/782831
Reason: branch is going EOL see http://lists.openstack.org/pipermail/openstack-discuss/2021-July/023537.html

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.