Bug 11252

Summary: Параметр HOST в options бриджа не должен быть обязательным
Product: Sisyphus Reporter: enp <enp>
Component: etcnetAssignee: Mikhail Efremov <sem>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P2 CC: ldv, rider, sem, shaba, vseleznv, yura
Version: unstable   
Hardware: all   
OS: Linux   

Description enp 2007-03-28 21:29:06 MSD
Параметр HOST в options бриджа не должен быть обязательным. Обоснования:

1) В одной из моих конфигураций
(http://git.altlinux.org/people/kirill/packages/?p=docs-linux_ha_openvz-enp.git;a=tree)
бридж изначально пустой, но в него добавляются veth-интерфейсы по мере старта
тех VE, которым это нужно

2) Недавно потребовалось сделать 2 профиля: роутер и бридж, а по умолчанию ни
то, ни другое - просто несконфигурированные интерфейсы. В идеале в случае
роутера бриджовый интерфейс вообще не нужен (как и в случае по умолчанию),
однако если я в каталог /etc/net/ifaces/bridge положу только файл
/etc/net/ifaces/bridge/options#bridge, то получу: 

# service network restart
Computing interface groups: ERROR: /etc/init.d/network: No TYPE is 
specified for iface 'bridge' and can't guess automatically. Please fix.
/etc/init.d/network: line 29: 1: missing 1st arg to type2group
ERROR: /etc/init.d/network: unknown interface group for iface 'bridge' 
of type ''
.... 4 interfaces found
Processing /etc/net/vlantab: empty.
Stopping group 1/realphys (3 interfaces)
         Stopping lan: ..OK
         Stopping mgmt: ...OK
         Stopping wan: ...OK
Stopping group 0/virtual (1 interfaces)
         Stopping lo: .OK
Computing interface groups: ERROR: /etc/init.d/network: No TYPE is 
specified for iface 'bridge' and can't guess automatically. Please fix.
/etc/init.d/network: line 29: 1: missing 1st arg to type2group
ERROR: /etc/init.d/network: unknown interface group for iface 'bridge' 
of type ''
.... 4 interfaces found
Starting group 0/virtual (1 interfaces)
         Starting lo: .....OK
Starting group 1/realphys (3 interfaces)
         Starting lan: ......OK
         Starting mgmt: .........OK
         Starting wan: ......OK
Processing /etc/net/vlantab: empty.

Ладно создаю файл /etc/net/ifaces/bridge/options с таким содержимым:

TYPE=bri
HOST=''

Получаю:

# service network restart
Computing interface groups: ..... 5 interfaces found
Stopping group 2/hostedphys (1 interfaces)
         Stopping bridge: /etc/net/scripts/shutdown-bri: line 7: HOST: 
HOST must be set for bridge
..OK
Processing /etc/net/vlantab: empty.
Stopping group 1/realphys (3 interfaces)
         Stopping lan: ..OK
         Stopping mgmt: ...OK
         Stopping wan: ...OK
Stopping group 0/virtual (1 interfaces)
         Stopping lo: .OK
Computing interface groups: ..... 5 interfaces found
Starting group 0/virtual (1 interfaces)
         Starting lo: .....OK
Starting group 1/realphys (3 interfaces)
         Starting lan: ......OK
         Starting mgmt: .........OK
         Starting wan: ......OK
Processing /etc/net/vlantab: empty.
Starting group 2/hostedphys (1 interfaces)
         Starting bridge: ..../etc/net/scripts/setup-bri: line 7: HOST: 
HOST must be set for bridge
OK

В sisyphus@ мне предложили обходной путь:

> А попробуйте /etc/net/ifaces/bridge/options с таким содержимым:
> DISABLED=yes

Попробовал, и обнаружил следующий баг:

# cat /etc/net/ifaces/br/options
TYPE=bri
DISABLED=yes
# cat /etc/net/ifaces/br/options#bridge
TYPE=bri
HOST='lan wan'
# service network switchto bridge
Computing interface groups: .... 4 interfaces found
Processing /etc/net/vlantab: empty.
Stopping group 1/realphys (3 interfaces)
         Stopping lan: ..OK
         Stopping mgmt: ...OK
         Stopping wan: ...OK
Stopping group 0/virtual (1 interfaces)
         Stopping lo: .OK
Computing interface groups: ..... 5 interfaces found
Starting group 0/virtual (1 interfaces)
         Starting lo: .....OK
Starting group 1/realphys (3 interfaces)
         Starting lan: ......OK
         Starting mgmt: .........OK
         Starting wan: ......OK
Processing /etc/net/vlantab: empty.
Starting group 2/hostedphys (1 interfaces)
         Starting br: ....OK
# brctl show
bridge name     bridge id               STP enabled     interfaces
br              8000.00179a7e3d25       no              lan
                                                         wan
# service network switchto router
Computing interface groups: .... 4 interfaces found
Processing /etc/net/vlantab: empty.
Stopping group 1/realphys (3 interfaces)
         Stopping lan: ..OK
         Stopping mgmt: ...OK
         Stopping wan: ...OK
Stopping group 0/virtual (1 interfaces)
         Stopping lo: .OK
Computing interface groups: .... 4 interfaces found
Starting group 0/virtual (1 interfaces)
         Starting lo: .....OK
Starting group 1/realphys (3 interfaces)
         Starting lan: .......OK
         Starting mgmt: .........OK
         Starting wan: ........OK
Processing /etc/net/vlantab: empty.
# brctl show
bridge name     bridge id               STP enabled     interfaces
br              8000.00179a7e3d25       no              lan

Т.е. брижд не опускается? Похоже что так:

# service network switchto bridge
Computing interface groups: .... 4 interfaces found
Processing /etc/net/vlantab: empty.
Stopping group 1/realphys (3 interfaces)
         Stopping lan: ..OK
         Stopping mgmt: ...OK
         Stopping wan: ...OK
Stopping group 0/virtual (1 interfaces)
         Stopping lo: .OK
Computing interface groups: ..... 5 interfaces found
Starting group 0/virtual (1 interfaces)
         Starting lo: .....OK
Starting group 1/realphys (3 interfaces)
         Starting lan: ......OK
         Starting mgmt: .........OK
         Starting wan: ......OK
Processing /etc/net/vlantab: empty.
Starting group 2/hostedphys (1 interfaces)
         Starting br:  'br' is already up SKIPPED
# brctl show
bridge name     bridge id               STP enabled     interfaces
br              8000.00179a7e3d25       no              lan

Комментарий в sisyphus@:

> Похоже, что при `service network switchto ...` сервис не помнит 
> свой текущий netprofile на фазе остановки сети и останавливает все 
> интерфейсы, соответствующие дефолтному netprofile, а не текущему.

на всякий случай:

# rpm -q bridge-utils
bridge-utils-1.2-alt2
# rpm -q etcnet
etcnet-0.8.5-alt2
Comment 1 Denis Ovsienko 2007-03-30 01:58:11 MSD
Согласен по обоим пунктам и беру время на размышление.
Comment 2 enp 2007-03-30 08:27:00 MSD
Пока что в соответствующих скриптах я закомментировал строку:

: ${HOST:?HOST must be set for $NAME}

Как я понял, ни на что, кроме как на отсутствие ругани, это не влияет?
Comment 3 Denis Ovsienko 2007-04-24 21:04:14 MSD
Первый пункт: Committed revision 1100.
Comment 4 Andrew Kornilov 2007-05-06 14:18:32 MSD
Так что, закрываем? Может warning какой-то прикрутить или как-то чуть по-другому
обрабатывать ситуацию, когда не указан HOST? Получается, мы решили проблему с
пустым HOST, но создали ситуацию, когда пользователь может забыть указать его и
потом будет долго искать проблему. Или не будет? :)
Comment 5 enp 2007-05-06 14:40:20 MSD
Так можно и адрес на интерфейсе забыть указать, а потом долго искать проблему ;)

Мне кажется, что никаких предупреждений не надо.
Comment 6 Andrew Kornilov 2007-05-06 14:56:29 MSD
Тоже верно :)
Comment 7 Denis Ovsienko 2007-08-23 22:32:34 MSD
Что мешает закрыть этот баг?
Comment 8 enp 2007-08-24 08:22:22 MSD
(In reply to comment #7)
> Что мешает закрыть этот баг?

Пожалуй, ничего. В etcnet-0.9.2-alt2 это вроде не проявляется