[Pkg-postgresql-public] Bug#825814: postgresql-9.1: postgresql refuses connection with setlocale error after localgen is run

Michael Braun michael-dev at fami-braun.de
Mon May 30 09:33:00 UTC 2016


Package: postgresql-9.1
Version: 9.1.22-0+deb7u1
Severity: important

Dear Maintainer,

   * What led up to the situation?

I'm running unattended-upgrade which recently upgraded the locales package.
That triggered running locale-gen, and the problem also appears when running locale-gen alone.

   * What exactly did you do (or not do) that was effective (or
     ineffective)?

I tried to connect using psql to a local postgresql server installation.

   * What was the outcome of this action?

psql: FATAL:  Datenbank-Locale ist inkompatibel mit Betriebssystem
DETAIL:  Die Datenbank wurde mit LC_COLLATE >>en_US.UTF-8<< initialisiert, was von setlocale() nicht erkannt wird.
TIP:  Erzeugen Sie die Datenbank neu mit einer anderen Locale oder installieren Sie die fehlende Locale.

   * What outcome did you expect instead?

A normal prompt letting me access the database.

   * Debug

strace says

25055 munmap(0xb7256000, 4096)          = 0
25055 open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE) = 7
25055 fstat64(7, {st_mode=S_IFREG|0644, st_size=3926944, ...}) = 0
25055 close(7)                          = 0
25055 open("/usr/lib/locale/en_US.UTF-8/LC_COLLATE", O_RDONLY) = -1 ENOENT (No such file or directory)
25055 open("/usr/lib/locale/en_US.utf8/LC_COLLATE", O_RDONLY) = -1 ENOENT (No such file or directory)
25055 open("/usr/lib/locale/en_US/LC_COLLATE", O_RDONLY) = -1 ENOENT (No such file or directory)
25055 open("/usr/lib/locale/en.UTF-8/LC_COLLATE", O_RDONLY) = -1 ENOENT (No such file or directory)
25055 open("/usr/lib/locale/en.utf8/LC_COLLATE", O_RDONLY) = -1 ENOENT (No such file or directory)
25055 open("/usr/lib/locale/en/LC_COLLATE", O_RDONLY) = -1 ENOENT (No such file or directory)
25055 time(NULL)                        = 1464599678
25055 time(NULL)                        = 1464599678
25055 time(NULL)                        = 1464599678
25055 write(2, "2016-05-30 11:14:38 CEST FATAL:  Datenbank-Locale ist inkompatibel mit Betriebssystem\n2016-05-30 11:14:38 CEST DETAIL:  Die Datenbank wurde mit LC_COLLATE >>en_US.UTF-8<< initialisiert, was von setlocale() nicht erkannt wird.\n2016-05-30 11:14:38 CEST TIPP:  Erzeugen Sie die Datenbank neu mit einer anderen Locale oder installieren Sie die fehlende Locale.\n", 357) = 357
25055 send(9, "R\0\0\0\10\0\0\0\0E\0\0\1:SFATAL\0CXX000\0MDatenbank-Locale ist inkompatibel mit Betriebssystem\0DDie Datenbank wurde mit LC_COLLATE >>en_US.UTF-8<< initialisiert, was von setlocale() nicht erkannt wird.\0HErzeugen Sie die Datenbank neu mit einer anderen Locale oder installieren Sie die fehlende Locale.\0Fpostinit.c\0L338\0RCheckMyDatabase\0\0", 324, 0) = 324
25055 gettimeofday({1464599678, 833943}, NULL) = 0

so locale-archive is not read.

lsof says

postgres 13643 postgres  DEL    REG      9,126             415433 /usr/lib/locale/locale-archive

Manually restarting postgresql "fixes" the issue for me.

Currently I'm trying to workaround using

$ localedef --no-archive -f UTF-8 -i en_US en_US.UTF-8

But this really should not be needed as I guess it will not become updated automatically.

Regards,
M. Braun

-- System Information:
Debian Release: 7.10
  APT prefers oldstable-updates
  APT policy: (500, 'oldstable-updates'), (500, 'oldstable')
Architecture: i386 (i686)

Kernel: Linux 3.16-0.bpo.2-686-pae (SMP w/1 CPU core)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to de_DE.utf8)
Shell: /bin/sh linked to /bin/dash

Versions of packages postgresql-9.1 depends on:
ii  libc6                  2.13-38+deb7u11
ii  libcomerr2             1.42.5-1.1+deb7u1
ii  libgssapi-krb5-2       1.10.1+dfsg-5+deb7u7
ii  libkrb5-3              1.10.1+dfsg-5+deb7u7
ii  libldap-2.4-2          2.4.31-2+deb7u1
ii  libpam0g               1.1.3-7.1
ii  libpq5                 9.1.22-0+deb7u1
ii  libssl1.0.0            1.0.1e-2+deb7u21
ii  libxml2                2.8.0+dfsg1-7+wheezy5
ii  locales                2.13-38+deb7u11
ii  postgresql-client-9.1  9.1.22-0+deb7u1
ii  postgresql-common      134wheezy4
ii  ssl-cert               1.0.32+deb7u1
ii  tzdata                 2016d-0+deb7u1

postgresql-9.1 recommends no packages.

Versions of packages postgresql-9.1 suggests:
pn  locales-all             <none>
pn  oidentd | ident-server  <none>

-- no debconf information



More information about the Pkg-postgresql-public mailing list