Skip to contentSkip to conversation

nft ends with error

DISCUSSION Kamil Jońca 2 participants 5 messages Nov 22, 2023 – Mar 18, 2024

lore
Share & tools
lore
#0 lore raw

sudo nft --version
nftables v1.0.9 (Old Doc Yak #3)

Recently my nftables debian service started to ends with error:

--8<---------------cut here---------------start------------->8---

Nov 22 19:18:56 alfa systemd[1]: Starting nftables.service - nftables...
Nov 22 19:18:57 alfa nft[2242551]: nft: datatype.c:1264: datatype_free: Assertion `dtype->refcnt != 0' failed.
Nov 22 19:18:57 alfa systemd[1]: nftables.service: Failed with result 'signal'.
Nov 22 19:18:57 alfa systemd[1]: Failed to start nftables.service - nftables.

--8<---------------cut here---------------end--------------->8---

After some investigating I found that nft does not like definition;

--8<---------------cut here---------------start------------->8--- table ip filter {
...

        map ipsec_in {
                typeof ipsec in reqid . iif : verdict
                flags interval
        }

...

  chain INPUT {
        type filter hook input priority 0; policy drop
        ...
        ipsec in reqid . iif vmap @ipsec_in
        ...
    }

...
}
--8<---------------cut here---------------end--------------->8---

rules seems to be loaded entirely and works.

When I downgraded nftables from 1.0.9-1+b1 to 1.0.8-1 service starts without problems.

KJ

#1 lore raw
Quoted 30 lines · Kamil Jońca

sudo nft --version
nftables v1.0.9 (Old Doc Yak #3)

Recently my nftables debian service started to ends with error:

--8<---------------cut here---------------start------------->8---

Nov 22 19:18:56 alfa systemd[1]: Starting nftables.service - nftables...
Nov 22 19:18:57 alfa nft[2242551]: nft: datatype.c:1264: datatype_free: Assertion `dtype->refcnt != 0' failed.
Nov 22 19:18:57 alfa systemd[1]: nftables.service: Failed with result 'signal'.
Nov 22 19:18:57 alfa systemd[1]: Failed to start nftables.service - nftables.

--8<---------------cut here---------------end--------------->8---

After some investigating I found that nft does not like definition;

--8<---------------cut here---------------start------------->8--- table ip filter {
...

        map ipsec_in {
                typeof ipsec in reqid . iif : verdict
                flags interval
        }

...

  chain INPUT {
        type filter hook input priority 0; policy drop
        ...
        ipsec in reqid . iif vmap @ipsec_in
        ...
    }
Quoted 5 lines

...
}
--8<---------------cut here---------------end--------------->8---

rules seems to be loaded entirely and works.

Thanks for this reproducer. Proposed fix:

https://patchwork.ozlabs.org/project/netfilter-devel/patch/[email protected]/

#2 lore raw
Quoted 1 line · Pablo Neira Ayuso

On Wed, Nov 22, 2023 at 07:35:59PM +0100, Kamil Jońca wrote:

[...]

Quoted 19 lines
Quoted 19 lines

--8<---------------cut here---------------start------------->8--- table ip filter {
...

        map ipsec_in {
                typeof ipsec in reqid . iif : verdict
                flags interval
        }

...

  chain INPUT {
        type filter hook input priority 0; policy drop
        ...
        ipsec in reqid . iif vmap @ipsec_in
        ...
    }

...
}
--8<---------------cut here---------------end--------------->8---

Quoted 5 lines
Quoted 1 line

rules seems to be loaded entirely and works.

Thanks for this reproducer. Proposed fix:

https://patchwork.ozlabs.org/project/netfilter-devel/patch/[email protected]/

For the record:

https://git.netfilter.org/nftables/commit/?id=faa6908fad6053ae9549c45b88d0402cc69cf1ed

#4 lore raw
Quoted 11 lines · Kamil Jońca

Pablo Neira Ayuso <[email protected]> writes:

[...]

Quoted 5 lines

Thanks for this reproducer. Proposed fix:

https://patchwork.ozlabs.org/project/netfilter-devel/patch/[email protected]/

I know that it was several months ago, but it seems your fix works - no error message.

Thanks for confirming.

Already upstream:

commit faa6908fad6053ae9549c45b88d0402cc69cf1ed

Author: Pablo Neira Ayuso <[email protected]>
Date:   Wed Nov 22 20:35:07 2023 +0100

evaluate: clone unary expression datatype to deal with dynamic datatype

This will be available in the next release.