Package: puppet
Version: 3.7.2-4
Severity: important

Hi,

When testing my puppet infrastructure with Debian jessie puppet 3.7 and a UTF-8 
locale, I noticed a regression vs debian wheezy concerning users with non-ASCII 
realnames.

        $ locale
        LANG=en_US.UTF-8
        LC_CTYPE="en_US.UTF-8"
        ...
        $ puppet -V
        3.7.2
        $ ruby --version
        ruby 2.1.5p273 (2014-11-13) [x86_64-linux-gnu]

Adding a new user, or changing a pure-ASCII comment to a non-ASCII comment, 
works fine:

        $ getent passwd terom
        terom:x:1001:100:Tero:/home/terom:/bin/bash
        $ sudo LANG=C.UTF-8 puppet resource user terom ensure=present 
comment=Tëro
        Notice: /User[terom]/comment: comment changed 'Tero' to 'Tëro'
        user { 'terom':
          ensure  => 'present',
          comment => 'Tëro',
        }

However, user resources with non-ASCII real names in the /etc/passwd comment 
field trigger encoding-related errors and fail to apply:

        $ sudo LANG=C.UTF-8 puppet resource user terom ensure=present 
comment=Tëro
        Error: Could not convert change 'comment' to string: incompatible 
character encodings: UTF-8 and ASCII-8BIT
        Error: Could not convert change 'comment' to string: incompatible 
character encodings: UTF-8 and ASCII-8BIT
        Error: /User[terom]: Could not evaluate: Puppet::Util::Log requires a 
message
        user { 'terom':
          ensure  => 'present',
          comment => 'Tëro',
        }

The bug seems closely related to the upstream bug #22703, which should have 
been fixed in Puppet 3.4?

        https://projects.puppetlabs.com/issues/22703

The workaround is to use a non-UTF-8 locale.

        $ sudo LANG=C puppet resource user terom ensure=present comment=Tëro
        user { 'terom':
          ensure  => 'present',
          comment => 'Tëro',
        }

This also happens with the upstream puppet 3.7.5 on Debian jessie:

        $ dpkg -l puppet
        Desired=Unknown/Install/Remove/Purge/Hold
        | 
Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
        |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
        ||/ Name                              Version               
Architecture          Description
        
+++-=================================-=====================-=====================-========================================================================
        ii  puppet                            3.7.5-1puppetlabs1    all         
          Centralized configuration management - agent startup and 
compatibility s
        $ puppet --version
        3.7.5
        $ sudo LANG=C.UTF-8 puppet resource user terom ensure=present 
comment=Tëro
        Error: Could not convert change 'comment' to string: incompatible 
character encodings: UTF-8 and ASCII-8BIT
        Error: Could not convert change 'comment' to string: incompatible 
character encodings: UTF-8 and ASCII-8BIT
        Error: /User[terom]: Could not evaluate: Puppet::Util::Log requires a 
message
        user { 'terom':
          ensure  => 'present',
          comment => 'Tëro',
        }

However, the upstream 3.7.5 on debian wheezy works fine:

        $ dpkg -l puppet ruby
        Desired=Unknown/Install/Remove/Purge/Hold
        | 
Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
        |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
        ||/ Name                              Version               
Architecture          Description
        
+++-=================================-=====================-=====================-========================================================================
        ii  puppet                            3.7.5-1puppetlabs1    all         
          Centralized configuration management - agent startup and 
compatibility s
        ii  ruby                              1:1.9.3               all         
          Interpreter of object-oriented scripting language Ruby (default 
version)
        $ getent passwd terom
        terom:x:1001:100:Tëro:/home/terom:/bin/bash
        $ sudo LANG=C.UTF-8 puppet resource user terom ensure=present 
comment=Tëro
        user { 'terom':
          ensure  => 'present',
          comment => 'Tëro',
        }
        
 -- Tero Marttila

-- System Information:
Debian Release: 8.0
  APT prefers testing-updates
  APT policy: (500, 'testing-updates'), (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 3.16.0-4-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages puppet depends on:
ii  init-system-helpers         1.22
ii  puppet-common               3.7.2-4
ii  ruby                        1:2.1.5
ii  ruby2.1 [ruby-interpreter]  2.1.5-2

puppet recommends no packages.

Versions of packages puppet suggests:
pn  etckeeper   <none>
pn  puppet-el   <none>
pn  vim-puppet  <none>

-- Configuration Files:
/etc/default/puppet e3a89dd703e6b796ef7889ba75af2df7 [Errno 2] No such file or 
directory: u'/etc/default/puppet e3a89dd703e6b796ef7889ba75af2df7'
/etc/logrotate.d/puppet 037c34a239a8895833388ccfce278adc [Errno 2] No such file 
or directory: u'/etc/logrotate.d/puppet 037c34a239a8895833388ccfce278adc'

-- no debconf information


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to