Обсуждение: BUG #6304: initdb fails with loale ko_KR.eucKR
The following bug has been logged online: Bug reference: 6304 Logged by: Robert Balser Email address: robert.balser@hp.com PostgreSQL version: 9.0.5 Operating system: HPUX 11.31 ia64 Description: initdb fails with loale ko_KR.eucKR Details: If you set your LANG=ko_KR.eucKR to set your locale to Korean, the initdb command fails. It works with other locales, e.g. various Japanese, Chinese, and even other Korean locales (e.g. ko_KR.utf8). But ko_KR.eucKR always fails. The command being invoked is: initdb -E UTF8 --no-locale -D <DB_DIR> -U <USER> --pwfile=<PASSWORDFILE> The output of initdb is an "sh:" error (in Korean), followed by a "fgets failure:" (also Korean), and then the following in English: The program "postgres" is needed by initdb but was not found in the same directory as "<PGDIR>/bin/initdb". Check your installation. The postgres binary is of course in that folder, hence working with other locales.
On 22.11.2011 23:18, Robert Balser wrote:
>
> The following bug has been logged online:
>
> Bug reference: 6304
> Logged by: Robert Balser
> Email address: robert.balser@hp.com
> PostgreSQL version: 9.0.5
> Operating system: HPUX 11.31 ia64
> Description: initdb fails with loale ko_KR.eucKR
> Details:
>
> If you set your LANG=ko_KR.eucKR to set your locale to Korean, the initdb
> command fails. It works with other locales, e.g. various Japanese, Chinese,
> and even other Korean locales (e.g. ko_KR.utf8). But ko_KR.eucKR always
> fails. The command being invoked is:
>
> initdb -E UTF8 --no-locale -D<DB_DIR> -U<USER> --pwfile=<PASSWORDFILE>
>
> The output of initdb is an "sh:" error (in Korean), followed by a "fgets
> failure:" (also Korean), and then the following in English:
>
> The program "postgres" is needed by initdb but was not found in the same
> directory as "<PGDIR>/bin/initdb". Check your installation.
>
> The postgres binary is of course in that folder, hence working with other
> locales.
I got a coredump with this:
bin/initdb --locale=ko_KR.eucKR -D foodata
gdb gives me this stacktrace:
#0 0xc00000000cbdcfa0:0 in __mblen_hp15+0xc0 ()
from /usr/lib/nls/loc/hpux32/../hpux64/methods.1/libHP15.so
(gdb) bt
#0 0xc00000000cbdcfa0:0 in __mblen_hp15+0xc0 ()
from /usr/lib/nls/loc/hpux32/../hpux64/methods.1/libHP15.so
#1 0xc00000000033c310:0 in mblen+0xd0 () from /usr/lib/hpux64/libc.so.1
#2 0xc0000000002ea580:0 in __mbstomb+0x80 () from /usr/lib/hpux64/libc.so.1
#3 0xc00000000041b390:0 in __doprnt_main+0x1090 ()
from /usr/lib/hpux64/libc.so.1
#4 0xc00000000041a2d0:0 in _doprnt+0x30 () from /usr/lib/hpux64/libc.so.1
#5 0xc000000000434c30:0 in snprintf+0x150 () from /usr/lib/hpux64/libc.so.1
#6 0x400000000141d250:0 in pg_perm_setlocale (category=0, locale=0x0)
at pg_locale.c:188
#7 0x4000000000be7600:0 in main (argc=0, argv=0x0) at main.c:114
Looks like all the variables are zeros, argc=0 and argv=0x0 in the
above, and also
#6 0x400000000141d250:0 in pg_perm_setlocale (category=0, locale=0x0)
at pg_locale.c:188
188 snprintf(envbuf, LC_ENV_BUFSIZE - 1, "%s=%s", envvar,
result);
(gdb) print envbuf
$1 = 0x0
(gdb) print envvar
$2 = 0x0
(gdb) print result
$3 = 0x0
(gdb)
Very bizarre..
--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com
On 24.11.2011 12:23, Heikki Linnakangas wrote: > On 22.11.2011 23:18, Robert Balser wrote: >> >> The following bug has been logged online: >> >> Bug reference: 6304 >> Logged by: Robert Balser >> Email address: robert.balser@hp.com >> PostgreSQL version: 9.0.5 >> Operating system: HPUX 11.31 ia64 >> Description: initdb fails with loale ko_KR.eucKR >> Details: >> >> If you set your LANG=ko_KR.eucKR to set your locale to Korean, the initdb >> command fails. It works with other locales, e.g. various Japanese, >> Chinese, >> and even other Korean locales (e.g. ko_KR.utf8). But ko_KR.eucKR always >> fails. The command being invoked is: >> >> initdb -E UTF8 --no-locale -D<DB_DIR> -U<USER> --pwfile=<PASSWORDFILE> >> >> The output of initdb is an "sh:" error (in Korean), followed by a "fgets >> failure:" (also Korean), and then the following in English: >> >> The program "postgres" is needed by initdb but was not found in the same >> directory as "<PGDIR>/bin/initdb". Check your installation. >> >> The postgres binary is of course in that folder, hence working with other >> locales. This doesn't look like a Postgres bug, I was able to reproduce this with the attached test program. It seems to depend heavily on the linker options used, this is the minimum set I was able to reduce it to. I think you'll have to pick it up from here with the HP compiler/ operating system guys.. -- Heikki Linnakangas EnterpriseDB http://www.enterprisedb.com
Вложения
SGVpa2tpLA0KDQpUaGFuayB5b3UgZm9yIHlvdXIgZGV0YWlsZWQgYW5hbHlz aXMgYW5kIHJlc3BvbnNlLiAgSSBtaWdodCBwbGF5IHdpdGggdGhlIGxpbmtl ciBvcHRpb25zIC0gcmlnaHQgbm93IEkgYW0gdXNpbmcgdGhlIGRlZmF1bHQg Ii4vY29uZmlndXJlIDsgbWFrZSBpbnN0YWxsIiBwcm9jZWR1cmUgYW5kIGxl dHRpbmcgZXZlcnl0aGluZyBoYXBwZW4gYXV0b21hdGljYWxseS4NCg0KQW5v dGhlciB0aG91Z2h0IHRoYXQgSSBoYWQgd2FzIHRvIHdyYXAgb3VyIHVzZSBv ZiAiaW5pdGRiIiB3aXRoIGEgc2NyaXB0IHRoYXQgc2V0cyB0aGUgTEFORz1D IGJlZm9yZWhhbmQgLi4uIHNpbmNlIHdlIGFyZSB1c2luZyAiLS1uby1sb2Nh bGUiIG9wdGlvbiBhbnl3YXkgaXQgc2VlbXMgbWF5YmUgdW5uZWNlc3Nhcnkg dG8gaG9ub3IgdGhlIHVzZXIncyBsb2NhbGUuDQoNClRoYW5rcyBhZ2FpbiwN Cg0KUm9iZXJ0IEJhbHNlcg0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t LQ0KRnJvbTogSGVpa2tpIExpbm5ha2FuZ2FzIFttYWlsdG86aGVpa2tpLmxp bm5ha2FuZ2FzQGVudGVycHJpc2VkYi5jb21dIA0KU2VudDogVGh1cnNkYXks IE5vdmVtYmVyIDI0LCAyMDExIDU6MDggQU0NClRvOiBCYWxzZXIsIFJvYmVy dCBXDQpDYzogcGdzcWwtYnVnc0Bwb3N0Z3Jlc3FsLm9yZw0KU3ViamVjdDog UmU6IFtCVUdTXSBCVUcgIzYzMDQ6IGluaXRkYiBmYWlscyB3aXRoIGxvYWxl IGtvX0tSLmV1Y0tSDQoNCk9uIDI0LjExLjIwMTEgMTI6MjMsIEhlaWtraSBM aW5uYWthbmdhcyB3cm90ZToNCj4gT24gMjIuMTEuMjAxMSAyMzoxOCwgUm9i ZXJ0IEJhbHNlciB3cm90ZToNCj4+DQo+PiBUaGUgZm9sbG93aW5nIGJ1ZyBo YXMgYmVlbiBsb2dnZWQgb25saW5lOg0KPj4NCj4+IEJ1ZyByZWZlcmVuY2U6 IDYzMDQNCj4+IExvZ2dlZCBieTogUm9iZXJ0IEJhbHNlcg0KPj4gRW1haWwg YWRkcmVzczogcm9iZXJ0LmJhbHNlckBocC5jb20NCj4+IFBvc3RncmVTUUwg dmVyc2lvbjogOS4wLjUNCj4+IE9wZXJhdGluZyBzeXN0ZW06IEhQVVggMTEu MzEgaWE2NA0KPj4gRGVzY3JpcHRpb246IGluaXRkYiBmYWlscyB3aXRoIGxv YWxlIGtvX0tSLmV1Y0tSDQo+PiBEZXRhaWxzOg0KPj4NCj4+IElmIHlvdSBz ZXQgeW91ciBMQU5HPWtvX0tSLmV1Y0tSIHRvIHNldCB5b3VyIGxvY2FsZSB0 byBLb3JlYW4sIHRoZSANCj4+IGluaXRkYiBjb21tYW5kIGZhaWxzLiBJdCB3 b3JrcyB3aXRoIG90aGVyIGxvY2FsZXMsIGUuZy4gdmFyaW91cyANCj4+IEph cGFuZXNlLCBDaGluZXNlLCBhbmQgZXZlbiBvdGhlciBLb3JlYW4gbG9jYWxl cyAoZS5nLiBrb19LUi51dGY4KS4gDQo+PiBCdXQga29fS1IuZXVjS1IgYWx3 YXlzIGZhaWxzLiBUaGUgY29tbWFuZCBiZWluZyBpbnZva2VkIGlzOg0KPj4N Cj4+IGluaXRkYiAtRSBVVEY4IC0tbm8tbG9jYWxlIC1EPERCX0RJUj4gLVU8 VVNFUj4gDQo+PiAtLXB3ZmlsZT08UEFTU1dPUkRGSUxFPg0KPj4NCj4+IFRo ZSBvdXRwdXQgb2YgaW5pdGRiIGlzIGFuICJzaDoiIGVycm9yIChpbiBLb3Jl YW4pLCBmb2xsb3dlZCBieSBhIA0KPj4gImZnZXRzIGZhaWx1cmU6IiAoYWxz byBLb3JlYW4pLCBhbmQgdGhlbiB0aGUgZm9sbG93aW5nIGluIEVuZ2xpc2g6 DQo+Pg0KPj4gVGhlIHByb2dyYW0gInBvc3RncmVzIiBpcyBuZWVkZWQgYnkg aW5pdGRiIGJ1dCB3YXMgbm90IGZvdW5kIGluIHRoZSANCj4+IHNhbWUgZGly ZWN0b3J5IGFzICI8UEdESVI+L2Jpbi9pbml0ZGIiLiBDaGVjayB5b3VyIGlu c3RhbGxhdGlvbi4NCj4+DQo+PiBUaGUgcG9zdGdyZXMgYmluYXJ5IGlzIG9m IGNvdXJzZSBpbiB0aGF0IGZvbGRlciwgaGVuY2Ugd29ya2luZyB3aXRoIA0K Pj4gb3RoZXIgbG9jYWxlcy4NCg0KVGhpcyBkb2Vzbid0IGxvb2sgbGlrZSBh IFBvc3RncmVzIGJ1ZywgSSB3YXMgYWJsZSB0byByZXByb2R1Y2UgdGhpcyB3 aXRoIHRoZSBhdHRhY2hlZCB0ZXN0IHByb2dyYW0uIEl0IHNlZW1zIHRvIGRl cGVuZCBoZWF2aWx5IG9uIHRoZSBsaW5rZXIgb3B0aW9ucyB1c2VkLCB0aGlz IGlzIHRoZSBtaW5pbXVtIHNldCBJIHdhcyBhYmxlIHRvIHJlZHVjZSBpdCB0 by4gSSB0aGluayB5b3UnbGwgaGF2ZSB0byBwaWNrIGl0IHVwIGZyb20gaGVy ZSB3aXRoIHRoZSBIUCBjb21waWxlci8gb3BlcmF0aW5nIHN5c3RlbSBndXlz Li4NCg0KLS0gDQogICBIZWlra2kgTGlubmFrYW5nYXMNCiAgIEVudGVycHJp c2VEQiAgIGh0dHA6Ly93d3cuZW50ZXJwcmlzZWRiLmNvbQ0K