Erro ao iniciar o postgresql em 12.10

2
The following NEW packages will be installed:
  libpq5 postgresql-9.1 postgresql-client-9.1 postgresql-client-common postgresql-common
0 upgraded, 5 newly installed, 0 to remove and 2 not upgraded.
Need to get 0 B/3,389 kB of archives.
After this operation, 15.8 MB of additional disk space will be used.
Do you want to continue [Y/n]? y
Preconfiguring packages ...
Selecting previously unselected package libpq5.
(Reading database ... 58862 files and directories currently installed.)
Unpacking libpq5 (from .../libpq5_9.1.9-0ubuntu12.10_amd64.deb) ...
Selecting previously unselected package postgresql-client-common.
Unpacking postgresql-client-common (from .../postgresql-client-common_136_all.deb) ...
Selecting previously unselected package postgresql-client-9.1.
Unpacking postgresql-client-9.1 (from .../postgresql-client-9.1_9.1.9-0ubuntu12.10_amd64.deb) ...
Selecting previously unselected package postgresql-common.
Unpacking postgresql-common (from .../postgresql-common_136_all.deb) ...
Adding 'diversion of /usr/bin/pg_config to /usr/bin/pg_config.libpq-dev by postgresql-common'
Selecting previously unselected package postgresql-9.1.
Unpacking postgresql-9.1 (from .../postgresql-9.1_9.1.9-0ubuntu12.10_amd64.deb) ...
Processing triggers for man-db ...
Processing triggers for ureadahead ...
Setting up libpq5 (9.1.9-0ubuntu12.10) ...
Setting up postgresql-client-common (136) ...
Setting up postgresql-client-9.1 (9.1.9-0ubuntu12.10) ...
Setting up postgresql-common (136) ...
Building PostgreSQL dictionaries from installed myspell/hunspell packages...
 * No PostgreSQL clusters exist; see "man pg_createcluster"
Processing triggers for ureadahead ...
Setting up postgresql-9.1 (9.1.9-0ubuntu12.10) ...
Creating new cluster (configuration: /etc/postgresql/9.1/main, data: /var/lib/postgresql/9.1/main)...
Moving configuration file /var/lib/postgresql/9.1/main/postgresql.conf to /etc/postgresql/9.1/main...
Moving configuration file /var/lib/postgresql/9.1/main/pg_hba.conf to /etc/postgresql/9.1/main...
Moving configuration file /var/lib/postgresql/9.1/main/pg_ident.conf to /etc/postgresql/9.1/main...
Configuring postgresql.conf to use port 5432...
update-alternatives: using /usr/share/postgresql/9.1/man/man1/postmaster.1.gz to provide /usr/share/man/man1/postmaster.1.gz (postmaster.1.gz) in auto mode
 * Starting PostgreSQL 9.1 database server                                                                                              * Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
Use of uninitialized value $logsize in numeric gt (>) at /usr/bin/pg_ctlcluster line 215.
The PostgreSQL server failed to start. Please check the log output.
                                                                                                                                [fail]
invoke-rc.d: initscript postgresql, action "start" failed.
dpkg: error processing postgresql-9.1 (--configure):
 subprocess installed post-installation script returned error exit status 1
Processing triggers for libc-bin ...
ldconfig deferred processing now taking place
Errors were encountered while processing:
 postgresql-9.1
E: Sub-process /usr/bin/dpkg returned an error code (1)

Aqui está a saída de uname -a :

Linux $hostname 3.5.0-36-generic #57-Ubuntu SMP Wed Jun 19 15:10:49 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

É um servidor Amazon AWS EC2 - m1.small .

De uma olhada em /usr/bin/pg_ctlcluster (um script perl), ele está tentando ler /etc/postgresql/9.1/main/pg_ctl.conf para encontrar o diretório de log e, de alguma forma, está recebendo um valor inválido. Eu não entendo porque isso seria um problema com uma nova instalação.

Todos os ponteiros seriam muito apreciados.

Obrigado,

    
por Cera 13.08.2013 / 06:02

2 respostas

1

A solução foi simples no final: o postgresql não tinha permissões de leitura em seus próprios logs devido a um erro administrativo.

Esta linha de código em pg_ctlcluster é responsável por definir $logsize :

$logsize = (stat $info{'logfile'})[7];

O que me tirou tanto foi que há uma linha logo acima com:

$logsize = 0;

Então, não entendendo a semântica das variáveis em Perl (e eu ainda não entendo), eu assumi que algo muito mais estranho estava acontecendo com uma mensagem de erro como Use of uninitialized value .

A criação de postgres do proprietário do diretório de log e dos arquivos foi o suficiente.

    
por Cera 08.03.2015 / 00:48
3

Eu tive exatamente o mesmo erro hoje depois de atualizar um servidor de desenvolvimento nosso. Eu tentei muitas coisas, incluindo a adição de impressões ao script pg_ctlcluster para rastrear o que estava acontecendo ( $logsize acaba sendo definido como um valor unitializado e, no meu caso, o soquete nunca foi criado), bem como a limpeza / reinstalação completa e não conseguia fazer nada funcionar.

Eu comparei as permissões com um servidor de produção com o mesmo sistema operacional (12.04 LTS no meu caso) e /var/run/postgres , bem como lib e outros diretórios todos correspondidos, então não pude ver nada imediato ali. Da mesma forma, o arquivo de log especificado por pg_ctlcluster era de propriedade do postgres e também parecia ok.

Com prejuízo, tentei definir o arquivo de log para um diretório que eu sabia que definitivamente seria gravável e acessível, ou seja, /tmp , alterando o arquivo /etc/postgresql/9.1/main/pg_ctl.conf assim:

# Automatic pg_ctl configuration
# This configuration file contains cluster specific options to be passed to
# pg_ctl(1).

pg_ctl_options = '-l /tmp/pg.log'

O Postgres foi capaz de iniciar, eu consegui conectar e criar funções e a configuração foi capaz de passar. Ainda não sei ao certo o que está causando isso - concluo que a permissão está relacionada de alguma forma . Estou feliz por finalmente poder continuar - eu só precisava fazer alguns testes e só estava esperando passar uma hora nele! Se eu descobrir o que diabos foi a causa que eu atualizarei - eu vi apenas algumas referências (uma pesquisa no Google surgiu com ~ 6 resultados total para o erro $logsize em particular) para este entre Debian, Ubuntu e Linux Mint. Parece-me estranho que mais pessoas não tenham encontrado isto - fazendo-me pensar que é algo bastante específico e raro.

editar possivelmente relacionado Eu também tive dificuldade em obter solr para trabalhar mais cedo. também foi relacionado a um arquivo de log que não está sendo gravado. Verificando se ele estava usando um link simbólico para apontar para o diretório de log - isso resolveu muito bem, mas por algum motivo service não pôde iniciá-lo. Eu removi o link simbólico, criei uma pasta log dentro de /var/lib/tomcat6 e o tomcat poderia começar. Eu estou querendo saber se de alguma forma ele está relacionado ao arquivo de log sendo especificado por um link simbólico e sendo incapaz de segui-lo por algum motivo.

    
por jaymz 15.10.2013 / 21:49