Bug 12282

Summary: пропадает transport.cdb
Product: Sisyphus Reporter: Zerg <anubix>
Component: postfixAssignee: Gleb F-Malinovskiy <glebfm>
Status: REOPENED --- QA Contact: qa-sisyphus
Severity: normal    
Priority: P2 CC: aen, glebfm, ldv, rider, zerg
Version: unstable   
Hardware: all   
OS: Linux   
Bug Depends on:    
Bug Blocks: 27685, 30940    
Attachments:
Description Flags
postconf.bz2
none
transport.bz2
none
postconf.bz2 none

Description Zerg 2007-07-09 14:53:59 MSD
При обновлении пакета пропадает файл transport.cdb, сервис перезапускается, но 
не работает.
Работает после генерации файла заново вручную.
У меня 2 раза проявлялось при обновлении:
Compact3.0 -> postfix-1:2.3.9-alt1
postfix-1:2.3.9-alt1 -> postfix-1:2.3.11-alt1
Comment 1 Dmitry V. Levin 2007-07-10 12:37:50 MSD
У меня при обновлении с транспортом всё в порядке.
Необходимы примеры конфигурации, на которой этот эффект воспроизводится.
Comment 2 Zerg 2007-07-10 22:37:46 MSD
Created attachment 2083 [details]
postconf.bz2
Comment 3 Zerg 2007-07-10 22:38:14 MSD
Created attachment 2084 [details]
transport.bz2
Comment 4 Zerg 2007-07-10 22:40:50 MSD
postfix-pcre-2.3.11-alt1
postfix-control-1.6.1-alt1
postfix-2.3.11-alt1
postfix-tls-2.3.11-alt1

Что-нибудь еще?
Comment 5 Dmitry V. Levin 2007-07-10 23:28:02 MSD
Хорошо бы сравнить вывод от "postconf -n" до и после обновления.
Comment 6 Sergey V Turchin 2007-07-11 19:22:40 MSD
(In reply to comment #5)
> Хорошо бы сравнить вывод от "postconf -n" до и после обновления.
Я не против. Но раньше следующей версии postfix в 4.0 не смогу.
Comment 7 Zerg 2007-08-14 01:27:49 MSD
Обновил до 2.3.11-alt1, transport.cdb пропал, разницы в выводе от 
`postconf -n` вообще нет
Comment 8 Zerg 2007-08-14 01:30:25 MSD
в выводе от postconf ьез параметров разница только в mail_release_date и 
mail_version
Comment 9 Dmitry V. Levin 2007-08-14 01:44:14 MSD
Zerg, у тебя скорее всего local misconfiguration.
# postconf -n transport_maps
?
Comment 10 Zerg 2007-08-14 02:26:19 MSD
(In reply to comment #9)
> Zerg, у тебя скорее всего local misconfiguration.
> # postconf -n transport_maps
transport_maps = cdb:$config_directory/transport
# postconf -n config_directory
config_directory = /etc/postfix

Comment 11 Dmitry V. Levin 2007-08-14 02:30:53 MSD
Если подставить значение $config_directory, то работает правильно.
Эта ошибка при обновлении postfix появилась очень давно.
Comment 12 Dmitry V. Levin 2007-12-06 02:31:32 MSK
Fixed in 2.4.6-alt1.
Comment 13 Sergey V Turchin 2007-12-06 13:48:40 MSK
Уря!
Comment 14 Zerg 2012-10-31 21:49:41 MSK
не исправлено в postfix-2.9.4-alt1
Comment 15 Zerg 2012-10-31 21:50:18 MSK
*** Bug 27621 has been marked as a duplicate of this bug. ***
Comment 16 Sergey V Turchin 2012-11-21 15:36:04 MSK
в postfix-2.9.4-alt1 опять
Comment 17 Sergey V Turchin 2012-11-21 15:36:33 MSK
(В ответ на комментарий №16)
> в postfix-2.9.4-alt1 опять
в postfix-2.9.4-alt2
Comment 18 Sergey V Turchin 2012-11-21 15:53:13 MSK
Кстати, это уже на другой системе (и на Сизифе вместо "последнего бранча").
Comment 19 Fr. Br. George 2012-11-22 17:01:47 MSK
Да, postconf -E просто выкинули из апстрима :((, соответственно если в main.cf использовать подстановки, они больше не резолвялся

Будем думать. Пока workaround: указывать /etc/postfix вместо $config_directory
Comment 20 Sergey V Turchin 2012-11-22 17:20:51 MSK
(В ответ на комментарий №19)
> Будем думать. Пока workaround: указывать /etc/postfix вместо $config_directory
Если ничего не придумаете, то хотя бы в дефолтных файлах конфигов заменить в пакете.
Comment 21 AEN 2012-11-28 02:25:23 MSK
(В ответ на комментарий №19)
> Да, postconf -E просто выкинули из апстрима :((, соответственно если в main.cf
> использовать подстановки, они больше не резолвялся
> 
> Будем думать. Пока workaround: указывать /etc/postfix вместо $config_directory

Придумали?
Comment 22 Fr. Br. George 2012-11-28 13:56:34 MSK
(В ответ на комментарий №20)
> Придумали?
Да, но с оговоркой.

postconf -E работал не так, как от него ожидалось, уже в P6 (возможно, всегда).
Все макросы, значения которых не заданы явно (хотя и непусты по умолчанию), превращались в пустую строку, потому что рекурсивная подстановка возможна только в явно прочитанных из файла данных. Теперь этот код в апстриме полностью убрали и переписали логику, но ситуация не изменилась: настройки по умолчанию подставить нельзя.

Соответственно, я переписал часть с явным вызовом рекурсивной подстановки, попутно исправив две наведённые ошибки:
1. Рекурсивная подстановка в текущей реализации выдаёт ошибку на $-конструкцию, не являющуюся макроподстановкой. Пришлось написать довольно прямой хак, предварительно обрабатывающий строку для подстановки.
2. Несмотря на синтаксическую идентичность задания cdb-карты $alias_database и прочих cdb-карт, $alias_database нельзя собирать с помощью postmap. Соответствующая проверка в chroot-сценарии была довольно наивной, $alias_database теперь упоминается чаще, пришлось её тоже переписать.

Ситуация на 2.9.4-alt3 аналогична 2.5.14, данная ошибка не воспроизводится.

Вопрос в том, рыть ли дальше.
Comment 23 AEN 2012-11-29 05:18:40 MSK
2zerg: закроете?
Comment 24 Sergey V Turchin 2012-11-29 13:53:19 MSK
(В ответ на комментарий №23)
> 2zerg: закроете?
Не против.
Comment 25 AEN 2012-11-29 19:27:10 MSK
Закрываю.
Comment 26 Zerg 2012-11-29 20:56:42 MSK
Опечатываю ;-)
Comment 27 Sergey V Turchin 2016-03-09 12:10:35 MSK
Всё еще не починено. И на работе и дома пропадает transport.cdb, после чего почта идет непойми куда.
Comment 28 Sergey V Turchin 2016-03-09 12:23:23 MSK
Не. У меня какая-то другая проблема после обновления postfix.
Comment 29 Sergey V Turchin 2016-03-09 12:49:37 MSK
Оказалось, bug#31867
Comment 30 Sergey V Turchin 2019-04-30 10:04:01 MSK
Всё ещё пропадает.
Comment 31 Sergey V Turchin 2019-04-30 15:52:33 MSK
Created attachment 8120 [details]
postconf.bz2
Comment 32 Sergey V Turchin 2019-05-06 17:39:23 MSK
Сейчас сервис перезапускается и работает, но начинает слать молча почту куда попало и вскрывается это только после явной пропажи письма.
Comment 33 Dmitry V. Levin 2019-05-06 17:50:17 MSK
(In reply to comment #32)
> Сейчас сервис перезапускается и работает, но начинает слать молча почту куда
> попало и вскрывается это только после явной пропажи письма.

По умолчанию transport.cdb не создаётся и не используется.

Там, где у меня используется transport.cdb, обычно сконфигурировано примерно так:
$ /usr/sbin/postconf -n |grep transport
transport_maps = cdb:/etc/postfix/transport

При этом я не наблюдаю никаких аномалий.
Comment 34 Sergey V Turchin 2019-05-07 09:24:59 MSK
(В ответ на комментарий №33)
> По умолчанию transport.cdb не создаётся и не используется.
Дык, использовался всегда, если `postmap /etc/postfix/transport`.

> transport_maps = cdb:/etc/postfix/transport
Попробую. Как раз светит обновление postfix. ;-)
Comment 35 Sergey V Turchin 2021-07-06 12:04:40 MSK
> transport_maps = cdb:/etc/postfix/transport
Судя по одинаковой дате изменения aliases.rpmnew aliases.cdb и transport.cdb при 'transport_maps = cdb:/etc/postfix/transport' и отсутствию действий с моей стороны обновление проходит нормально.