Hello,

Am 15.03.2012 11:49, schrieb Dennis Hoppe:
> i have a problem with stored configs since the migration from "sqlite"
> to "postgresql".
> 
> dho@appelbaum:~$ sudo puppetd --test --verbose
> info: Retrieving plugin
> info: Loading facts in disks
> info: Loading facts in users
> info: Loading facts in mountpoints
> info: Loading facts in disks
> info: Loading facts in users
> info: Loading facts in mountpoints
> err: Could not retrieve catalog from remote server: wrong header line format
> warning: Not using cache on failed catalog
> err: Could not retrieve catalog; skipping run
> 
> I took a closer look and found the following error message at my
> "postgresql.log".
> 
> 2012-03-15 11:15:01 CET FEHLER:  ungültiges Unicode-Escape bei Zeichen 184
> 2012-03-15 11:15:01 CET TIPP:  Unicode-Escapes müssen \uXXXX oder
> \UXXXXXXXX sein.
> 2012-03-15 11:15:01 CET ANWEISUNG:  INSERT INTO "param_values"
> ("created_at", "line", "resource_id", "updated_at", "value",
> "param_name_id") VALUES('2012-03-15 11:15:01.040833', NULL, 154,
> '2012-03-15 11:15:01.040833', E'#
>       # THIS FILE IS MANAGED BY PUPPET
>       # 
> /etc/puppet/modules/production/bash/templates/squeeze/etc/skel/bashrc.erb
>       #
>       
>       # ~/.bashrc: executed by bash(1) for non-login shells.
>       # see /usr/share/doc/bash/examples/startup-files (in the package 
> bash-doc)
>       # for examples
>       
>       # If not running interactively, don''t do anything
>       [ -z "$PS1" ] && return
>       
>       # don''t put duplicate lines in the history. See bash(1) for more 
> options
>       # don''t overwrite GNU Midnight Commander''s setting of `ignorespace''.
>       HISTCONTROL=$HISTCONTROL${HISTCONTROL+:}ignoredups
>       # ... or force ignoredups and ignorespace
>       HISTCONTROL=ignoreboth
>       
>       # append to the history file, don''t overwrite it
>       shopt -s histappend
>       
>       # for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
>       HISTSIZE=1000
>       HISTFILESIZE=2000
>       HISTTIMEFORMAT="%F %T "
>       
>       # check the window size after each command and, if necessary,
>       # update the values of LINES and COLUMNS.
>       shopt -s checkwinsize
>       
>       # make less more friendly for non-text input files, see lesspipe(1)
>       #[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
>       
>       # set variable identifying the chroot you work in (used in the prompt
> below)
>       if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then
>           debian_chroot=$(cat /etc/debian_chroot)
>       fi
>       
>       # set a fancy prompt (non-color, unless we know we "want" color)
>       case "$TERM" in
>           xterm-color) color_prompt=yes;;
>       esac
>       
>       # uncomment for a colored prompt, if the terminal has the capability;
> turned
>       # off by default to not distract the user: the focus in a terminal 
> window
>       # should be on the output of commands, not on the prompt
>       force_color_prompt=yes
>       
>       if [ -n "$force_color_prompt" ]; then
>           if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
>               # We have color support; assume it''s compliant with Ecma-48
>               # (ISO/IEC-6429). (Lack of such support is extremely rare, and 
> such
>               # a case would tend to support setf rather than setaf.)
>               color_prompt=yes
>           else
>               color_prompt=
>           fi
>       fi
>       
>       if [ "$color_prompt" = yes ]; then
>       
> PS1=''${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$
> ''
>       else
>           PS1=''${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ''
>       fi
>       unset color_prompt force_color_prompt
>       
>       # If this is an xterm set the title to user@host:dir
>       case "$TERM" in
>       xterm*|rxvt*)
>           PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
>           ;;
>       *)
>           ;;
>       esac
>       
>       # enable color support of ls and also add handy aliases
>       if [ -x /usr/bin/dircolors ]; then
>           test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval
> "$(dircolors -b)"
>           #alias ls=''ls --color=auto''
>           #alias dir=''dir --color=auto''
>           #alias vdir=''vdir --color=auto''
>       
>           alias grep=''grep --color=auto''
>           alias fgrep=''fgrep --color=auto''
>           alias egrep=''egrep --color=auto''
>       
>           alias cl=''clear''
>           alias l=''ls --color -l''
>           alias lh=''ls --color -lh''
>           alias ll=''ls --color -la''
>           alias ls=''ls --color=auto''
>       fi
>       
>       # some more ls aliases
>       #alias ll=''ls -l''
>       #alias la=''ls -A''
>       #alias l=''ls -CF''
>       
>       # Alias definitions.
>       # You may want to put all your additions into a separate file like
>       # ~/.bash_aliases, instead of adding them here directly.
>       # See /usr/share/doc/bash-doc/examples in the bash-doc package.
>       
>       if [ -f ~/.bash_aliases ]; then
>           . ~/.bash_aliases
>       fi
>       
>       # enable programmable completion features (you don''t need to enable
>       # this, if it''s already enabled in /etc/bash.bashrc and /etc/profile
>       # sources /etc/bash.bashrc).
>       if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
>           . /etc/bash_completion
>       fi
>       ', 26) RETURNING "id"
> 
> If i disable the include for my BASH module
> (https://github.com/dhoppe/puppet-bash), everything is working as expected.
> 
> Does anyone know wich component of puppet is responsible for the wrong
> unicode escaping? I would like to do some more debugging before i file a
> bug report.
> 
> BTW. I am using the following package versions:
> 
> dho@appelbaum:~$ dpkg -l | egrep '(puppet|postgresql)'
> ii  postgresql-9.1                      9.1.3-1~bpo60+1
> object-relational SQL database, version 9.1 server
> ii  postgresql-client-9.1               9.1.3-1~bpo60+1
> front-end programs for PostgreSQL 9.1
> ii  postgresql-client-common            128~bpo60+1
> manager for multiple PostgreSQL client versions
> ii  postgresql-common                   128~bpo60+1
> PostgreSQL database-cluster manager
> ii  postgresql-server-dev-9.1           9.1.3-1~bpo60+1
> development files for PostgreSQL 9.1 server-side programming
> ii  puppet                              2.6.2-5+squeeze4
> Centralized configuration management - agent startup and compatibility
> scripts
> ii  puppet-common                       2.6.2-5+squeeze4
> Centralized configuration management
> ii  puppetmaster
> 
> dho@appelbaum:~$ gem list
> 
> *** LOCAL GEMS ***
> 
> activemodel (3.0.11)
> activerecord (3.0.11)
> activesupport (3.0.11)
> arel (2.0.10)
> builder (2.1.2)
> hiera (0.3.0)
> hiera-puppet (0.3.0)
> i18n (0.5.0)
> pg (0.13.2)
> tzinfo (0.3.32)

i did some debugging and found out that with PostgreSQL 8.4 everything
works as expected.

If i use PostgreSQL 9.1, the following lines are responsible for the
error message.

    PS1='${debian_chroot:+($debian_chroot)}\[<%= t_color
-%>\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"

I spoke to our DBA and he told me that with PostgreSQL 9.1 the parameter
"standard_conforming_strings" was introduced. If i set this parameter to
off, everyhting works as expected again.

Regards, Dennis

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to