Ошибка запуска postgresql в 12.10

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)

Вот вывод 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

Это сервер Amazon AWS EC2 - m1.small.

Из просмотра /usr/bin/pg_ctlcluster (сценария perl) он пытается прочитать /etc/postgresql/9.1/main/pg_ctl.conf, чтобы найти каталог журнала, и каким-то образом получает недопустимое значение. Я не понимаю, почему это было бы проблемой с новой установкой.

Любые указатели будут с благодарностью.

Спасибо,

2
задан 13 August 2013 в 08:02

2 ответа

В конце концов, решение было простым: у postgresql не было разрешений на чтение в собственных журналах из-за административной ошибки.

Эта строка кода в pg_ctlcluster отвечает за установку $logsize:

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

Что меня так сильно поразило, так это то, что есть строка чуть выше:

$logsize = 0;
[ 119] Итак, не понимая семантику переменных в Perl (а я до сих пор не понимаю), я предположил, что происходит нечто более странное с сообщением об ошибке, например Use of uninitialized value.

Сделав postgres владельцем своего каталога и файлов журналов, добился цели.

0
ответ дан 13 August 2013 в 08:02

У меня была та же самая ошибка сегодня после обновления нашего сервера разработки. Я пробовал много вещей, включая добавление распечаток в сценарий pg_ctlcluster, чтобы отследить, что происходит ($logsize заканчивает тем, что было установлено унифицированное значение, и в моем случае сам сокет никогда не создавался), а также полная очистка / переустановка и не мог заставить что-либо работать.

Я сравнил разрешения для производственного сервера с той же ОС (в моем случае 12,04 LTS) и /var/run/postgres, а также с lib и другими каталогами, которые не совпадали, поэтому я не мог ничего тут увидеть. Аналогично, файл журнала, как указано в pg_ctlcluster, принадлежал postgres и также выглядел хорошо.

В недоумении я попытался установить файл журнала в каталог, который, как я знал, определенно был бы доступен для записи и доступа, а именно /tmp, изменив файл /etc/postgresql/9.1/main/pg_ctl.conf следующим образом:

# 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'

После этого Postgres смог для начала я смог подключиться и создать роли, и конфигурация смогла пройти. Я пока не уверен, что является причиной этого - я понимаю, что это как-то связано с разрешениями . Я просто рад, что наконец-то смог продолжить - мне просто нужно было сделать несколько тестов, и я ожидал потратить на это всего один час! Если я выясню, что было причиной, я буду обновлять - я видел только несколько ссылок (поиск Google дал ~ 6 результатов всего для конкретной ошибки $logsize) к этому между Debian, Ubuntu и Linux Mint. Мне кажется странным, что больше людей не сталкивались с этим - заставляя меня думать, что это что-то довольно специфическое и редкое.

edit Возможно, я также столкнулся с трудностями в получении решения solr ранее. это также было связано с тем, что файл журнала не был записан. Проверка того, что он использует символическую ссылку для указания на каталог журнала - это решается просто отлично, но по какой-то причине service не может его запустить. Я удалил символическую ссылку, создал папку log в пределах /var/lib/tomcat6, и мог начаться поиск. Мне интересно, связано ли это каким-то образом с тем, что файл журнала определяется символической ссылкой и по какой-то причине он не может перейти по нему.

0
ответ дан 13 August 2013 в 08:02

Другие вопросы по тегам:

Похожие вопросы: