<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>60162</bug_id>
          
          <creation_ts>2026-08-14 16:44:22 +0300</creation_ts>
          <short_desc>pve-firewall status показывает &quot;pending changes&quot; после применения правил</short_desc>
          <delta_ts>2026-08-30 23:10:04 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>pve-firewall</component>
          <version>unstable</version>
          <rep_platform>x86_64</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P5</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Лавренко Егор Сергеевич">lavrenkoes</reporter>
          <assigned_to name="Sergey Konev">konevsa</assigned_to>
          <cc>andy</cc>
    
    <cc>darisishe</cc>
    
    <cc>iv</cc>
    
    <cc>kozorizki</cc>
    
    <cc>shaba</cc>
    
    <cc>shrek</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>292667</commentid>
    <comment_count>0</comment_count>
    <who name="Лавренко Егор Сергеевич">lavrenkoes</who>
    <bug_when>2026-08-14 16:44:22 +0300</bug_when>
    <thetext>Версии пакетов:
pve-manager-9.2.5-alt3
pve-firewall-6.0.5-alt1

Шаги воспроизведения:
1. Развернуть кластер PVE
2. Запустить сервисы на всех узлах:
   # systemctl enable --now pvefw-logger.service pve-firewall.service
3. Очистить конфигурацию firewall:
   # echo &quot;&quot; &gt; /etc/pve/firewall/cluster.fw
4. Проверить статус сервиса через бинарный файл pve-firewall:
   # pve-firewall status
   Вывод: Status: disabled/running
5. Проверить наличие правил:
   # iptables-save | grep PVEFW
   Вывод: &lt;пустой (правил нет)&gt;
6. Создать минимальную конфигурацию (включить firewall):
   # cat &gt; /etc/pve/firewall/cluster.fw &lt;&lt; _EOF_
[OPTIONS]
enable: 1
_EOF_
7. Подождать 5-30 секунд и выполнить проверку статуса:
   # pve-firewall status

Ожидаемое поведение:
- Статус в состоянии: Status: enabled/running

Реальное поведение:
- Статус в состоянии: Status: enabled/running (pending changes)

- (pending changes) никогда не пропадает (несмотря на то, что при изменении конфигурации, например, добавлении правил, правила корректно применяются и работают)

- правила создаются корректно (то есть конфигурация применяется):
# iptables-save | grep PVEFW 
:PVEFW-Drop - [0:0]
:PVEFW-DropBroadcast - [0:0]
:PVEFW-FORWARD - [0:0]
:PVEFW-FWBR-IN - [0:0]
:PVEFW-FWBR-OUT - [0:0]
:PVEFW-HOST-IN - [0:0]
:PVEFW-HOST-OUT - [0:0]
:PVEFW-INPUT - [0:0]
:PVEFW-OUTPUT - [0:0]
:PVEFW-Reject - [0:0]
:PVEFW-SET-ACCEPT-MARK - [0:0]
:PVEFW-logflags - [0:0]
:PVEFW-reject - [0:0]
:PVEFW-smurflog - [0:0]
:PVEFW-smurfs - [0:0]
:PVEFW-tcpflags - [0:0]
-A INPUT -j PVEFW-INPUT
-A FORWARD -j PVEFW-FORWARD
-A OUTPUT -j PVEFW-OUTPUT
-A PVEFW-Drop -j PVEFW-DropBroadcast
...

- (pending changes) не пропадает даже после рестарта сервиса, например, через:
  # systemctl restart pve-firewall

Дополнительно:
1. Также воспроизводится в P11, [P11 + 426365]
2. В логах pve-firewall.service ошибок нет</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>292854</commentid>
    <comment_count>1</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2026-08-19 09:55:32 +0300</bug_when>
    <thetext>pve-firewall-6.0.5-alt2 -&gt; sisyphus:

Wed Aug 19 2026 Sergey Konev &lt;darisishe@altlinux&gt; 6.0.5-alt2
- Handle unquoted PVESIG comments (Closes: 60162)
- Simulator: handle disabled firewall (Closes: 60163)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293130</commentid>
    <comment_count>2</comment_count>
    <who name="Лавренко Егор Сергеевич">lavrenkoes</who>
    <bug_when>2026-08-24 18:03:12 +0300</bug_when>
    <thetext>Ошибка все еще воспроизводится 

Версии пакетов:
pve-manager-9.2.5-alt4
pve-firewall-6.0.5-alt2

Дополнительные шаги при проверке:

1. Создать минимальную конфигурацию:
# cat &gt; /etc/pve/firewall/cluster.fw &lt;&lt; _EOF_
[OPTIONS]
enable: 1

[RULES]
IN ACCEPT -p tcp --dport 22
_EOF_
2. Запустить сетевой экран:
# systemctl start pve-firewall
3. Проверить, что генерируется для ipset:
# pve-firewall compile 2&gt;&amp;1 | grep -A 10 &quot;ipset cmdlist:&quot;
ipset cmdlist:
update PVEFW-0-management-v4 (RYAc/sOxiXXp2xkFxr1pnyLPYlQ)
        create PVEFW-0-management-v4 hash:net family inet hashsize 64 maxelem 64
        add PVEFW-0-management-v4 10.88.8.0/21
update PVEFW-0-management-v6 (H5WO/Pkuyz4e7OLB2uiMpG0Bsn0)
        create PVEFW-0-management-v6 hash:net family inet6 hashsize 64 maxelem 64

iptables cmdlist:
...
4. Однако в то же время вывод команды ipset save показывает:
# ipset save
create PVEFW-0-management-v6 hash:net family inet6 hashsize 64 maxelem 64 bucketsize 12 initval 0x7ff954ef
create PVEFW-0-management-v4 hash:net family inet hashsize 64 maxelem 64 bucketsize 12 initval 0x43adee98
add PVEFW-0-management-v4 10.88.8.0/21

Предположительно, проблема с постоянным выводом (pending changes) вызвана подсистемой ipset, которая автоматически добавляет параметры bucketsize 12 и initval 0x... , в то время как pve-firewall не генерирует эти параметры в командах create 

Поэтому:
1. Демон вычисляет PVESIG от &quot;желаемого&quot; состояния: hashsize 64 maxelem 64
2. Читает &quot;фактическое&quot; состояние из ядра: hashsize 64 maxelem 64 bucketsize 12 initval 0x...
3. Хеш-суммы не совпадают из-за различий
4. Демон видит &quot;изменения&quot; и пытается обновить таблицы
5. После обновления ядро снова добавляет bucketsize и initval
6. Цикл повторяется ==&gt; статус (pending changes) никогда не пропадает</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>293656</commentid>
    <comment_count>3</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2026-08-30 23:10:04 +0300</bug_when>
    <thetext>pve-firewall-6.0.5-alt3 -&gt; sisyphus:

Sun Aug 30 2026 Sergey Konev &lt;darisishe@altlinux&gt; 6.0.5-alt3
- Include ipset bucketsize in generated rules (Closes: 60162)</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>