Thread: Ungooglable error message when running initdb: Symbol not found: _check_encoding_conversion_args

Hello there,

I'm configuring with `./configure --prefix=/usr/local/Cellar/postgresql/8.4.0`, without sudo. I hawe chowned /usr/local so that I don't need to sudo it. I'm getting the following error when running `initdb` after successfully compiling postgresql

  Symbol not found: _check_encoding_conversion_args

Here's the full output.

    augustl@honk:~$ initdb -D /usr/local/Cellar/postgresql/8.4.0/defaultdb
    The files belonging to this database system will be owned by user "augustl".
    This user must also own the server process.

    The database cluster will be initialized with locales
      COLLATE:  C
      CTYPE:    UTF-8
      MESSAGES: C
      MONETARY: C
      NUMERIC:  C
      TIME:     C
    The default database encoding has accordingly been set to UTF8.
    initdb: could not find suitable text search configuration for locale UTF-8
    The default text search configuration will be set to "simple".

    creating directory /usr/local/Cellar/postgresql/8.4.0/defaultdb ... ok
    creating subdirectories ... ok
    selecting default max_connections ... 20
    selecting default shared_buffers ... 2400kB
    creating configuration files ... ok
    creating template1 database in /usr/local/Cellar/postgresql/8.4.0/defaultdb/base/1 ... ok
    initializing pg_authid ... ok
    initializing dependencies ... ok
    creating system views ... ok
    loading system objects' descriptions ... ok
    creating conversions ... FATAL:  could not load library "/usr/local/Cellar/postgresql/8.4.0/lib/ascii_and_mic.so": dlopen(/usr/local/Cellar/postgresql/8.4.0/lib/ascii_and_mic.so, 10): Symbol not found: _check_encoding_conversion_args
      Referenced from: /usr/local/Cellar/postgresql/8.4.0/lib/ascii_and_mic.so
      Expected in: /usr/local/Cellar/postgresql/8.4.0/bin/postgres
     in /usr/local/Cellar/postgresql/8.4.0/lib/ascii_and_mic.so
    STATEMENT:  CREATE OR REPLACE FUNCTION ascii_to_mic (INTEGER, INTEGER, CSTRING, INTERNAL, INTEGER) RETURNS VOID AS '$libdir/ascii_and_mic', 'ascii_to_mic' LANGUAGE C STRICT;
    child process exited with exit code 1
    initdb: removing data directory "/usr/local/Cellar/postgresql/8.4.0/defaultdb"
    augustl@honk:~$

I found something on google about the file ascii_and_mic.so not existing, but that's not the case here; the file does indeed exist. Googling _check_encoding_conversion_args doesn't yield any results.

On Wed, 2009-09-02 at 09:52 +0200, August Lilleaas wrote:
> augustl@honk:~$ initdb -D /usr/local/Cellar/postgresql/8.4.0/defaultdb

Is initdb under /usr/local/Cellar/postgresql/8.4.0/bin, or is there
another one in $PATH?
--
Devrim GÜNDÜZ, RHCE
Command Prompt - http://www.CommandPrompt.com
devrim~gunduz.org, devrim~PostgreSQL.org, devrim.gunduz~linux.org.tr
                   http://www.gunduz.org

Attachment
It is in /usr/local/Cellar/postgresql/8.4.0/bin/, but `which initdb` returns "/usr/local/bin/initdb". The /usr/local/bin one is a symlink to the /usr/local/Cellar/postgresql/8.4.0/bin one.

Running "/usr/local/Cellar/postgresql/8.4.0/bin/initdb -D /usr/local/Cellar/postgresql/8.4.0/defaultdb" yields the same results.

Does this bring us any closer to a solution?

2009/9/2 Devrim GÜNDÜZ <devrim@gunduz.org>
On Wed, 2009-09-02 at 09:52 +0200, August Lilleaas wrote:
> augustl@honk:~$ initdb -D /usr/local/Cellar/postgresql/8.4.0/defaultdb

Is initdb under /usr/local/Cellar/postgresql/8.4.0/bin, or is there
another one in $PATH?
--
Devrim GÜNDÜZ, RHCE
Command Prompt - http://www.CommandPrompt.com
devrim~gunduz.org, devrim~PostgreSQL.org, devrim.gunduz~linux.org.tr
                  http://www.gunduz.org



--
August Lilleaas
August Lilleaas <augustlilleaas@gmail.com> writes:
> I'm configuring with `./configure
> --prefix=/usr/local/Cellar/postgresql/8.4.0`, without sudo. I hawe chowned
> /usr/local so that I don't need to sudo it. I'm getting the following error
> when running `initdb` after successfully compiling postgresql

>   Symbol not found: _check_encoding_conversion_args

Is it possible the 'postgres' you're invoking is not 8.4.0 but something
a bit older?  That function was added to the backend relatively
recently.

The other possibility that comes to mind is that this is Snow
Leopard-specific breakage.  But others have reported successful builds
on SL.

            regards, tom lane

On Wed, Sep 2, 2009 at 4:41 PM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
August Lilleaas <augustlilleaas@gmail.com> writes:
> I'm configuring with `./configure
> --prefix=/usr/local/Cellar/postgresql/8.4.0`, without sudo. I hawe chowned
> /usr/local so that I don't need to sudo it. I'm getting the following error
> when running `initdb` after successfully compiling postgresql

>   Symbol not found: _check_encoding_conversion_args

Is it possible the 'postgres' you're invoking is not 8.4.0 but something
a bit older?  That function was added to the backend relatively
recently.

There is no other postgresql on my system, so that can't be it.
 

The other possibility that comes to mind is that this is Snow
Leopard-specific breakage.  But others have reported successful builds
on SL.

Indeed, that's what bothers me. I'll try to use root, create a separate postgres user, and a few other things. I'm sure it's just something trivial I'm overlooking.
 

                       regards, tom lane



--
August Lilleaas
- On Wed, 9/2/09, August Lilleaas <augustlilleaas@gmail.com> wrote:

From: August Lilleaas <augustlilleaas@gmail.com>
Subject: [GENERAL] Ungooglable error message when running initdb: Symbol not found: _check_encoding_conversion_args
To: pgsql-general@postgresql.org
Date: Wednesday, September 2, 2009, 7:52 AM

Hello there,

I'm configuring with `./configure --prefix=/usr/local/Cellar/postgresql/8.4.0`, without sudo. I hawe chowned /usr/local so that I don't need to sudo it. I'm getting the following error when running `initdb` after successfully compiling postgresql

  Symbol not found: _check_encoding_conversion_args

Here's the full output.

    augustl@honk:~$ initdb -D /usr/local/Cellar/postgresql/8.4.0/defaultdb
    The files belonging to this database system will be owned by user "augustl".
    This user must also own the server process.

    The database cluster will be initialized with locales
      COLLATE:  C
      CTYPE:    UTF-8
      MESSAGES: C
      MONETARY: C
      NUMERIC:  C
      TIME:     C
    The default database encoding has accordingly been set to UTF8.
    initdb: could not find suitable text search configuration for locale UTF-8
    The default text search configuration will be set to "simple".

    creating directory /usr/local/Cellar/postgresql/8.4.0/defaultdb ... ok
    creating subdirectories ... ok
    selecting default max_connections ... 20
    selecting default shared_buffers ... 2400kB
    creating configuration files ... ok
    creating template1 database in /usr/local/Cellar/postgresql/8.4.0/defaultdb/base/1 ... ok
    initializing pg_authid ... ok
    initializing dependencies ... ok
    creating system views ... ok
    loading system objects' descriptions ... ok
    creating conversions ... FATAL:  could not load library "/usr/local/Cellar/postgresql/8.4.0/lib/ascii_and_mic.so": dlopen(/usr/local/Cellar/postgresql/8.4.0/lib/ascii_and_mic.so, 10): Symbol not found: _check_encoding_conversion_args
      Referenced from: /usr/local/Cellar/postgresql/8.4.0/lib/ascii_and_mic.so
      Expected in: /usr/local/Cellar/postgresql/8.4.0/bin/postgres
     in /usr/local/Cellar/postgresql/8.4.0/lib/ascii_and_mic.so
    STATEMENT:  CREATE OR REPLACE FUNCTION ascii_to_mic (INTEGER, INTEGER, CSTRING, INTERNAL, INTEGER) RETURNS VOID AS '$libdir/ascii_and_mic', 'ascii_to_mic' LANGUAGE C STRICT;
    child process exited with exit code 1
    initdb: removing data directory "/usr/local/Cellar/postgresql/8.4.0/defaultdb"
    augustl@honk:~$

I found something on google about the file ascii_and_mic.so not existing, but that's not the case here; the file does indeed exist. Googling _check_encoding_conversion_args doesn't yield any results.

i dont know the OS x 10 system but you have checked the permissions of ascii_and_mic.so, this file must have the owner and group whit the user creating the cluster