Control: tag -1 unreproducible moreinfo

Hi Sven,

Sven Hartge wrote:
> It seems adfc6318 was not enough to be compatible with Linux 5.9, as
> compilation breaks for me with the following log:

That's strange. Works fine for me. Tested on sid amd64 as well:

---8<---
Building initial module for 5.9.0-1-amd64
Done.

ipt_NETFLOW.ko:
Running module version sanity check.
 - Original module
    - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/5.9.0-1-amd64/updates/dkms/

depmod...

DKMS: install completed.
--->8---

> ./gen_compat_def > compat_def.h
> Test symbol xt_family linux/netfilter_ipv4/ip_tables.h

Hmmm, I wonder if it makes a difference if /usr/sbin/iptables
respectively /etc/alternatives/iptables points to iptables-nft or
iptables-legacy. … Nope, still works for me.

So lets try to figure out what else could be different:

> Compiling for kernel 5.9.1
> make -C /lib/modules/5.9.0-1-amd64/build 
> M=/var/lib/dkms/ipt-netflow/2.5.1/build modules CONFIG_DEBUG_INFO=y

Kernel 5.9.0-1-amd64 is also installed and with headers.

> Debian Release: bullseye/sid

Same.

>   APT prefers unstable-debug
>   APT policy: (500, 'unstable-debug'), (500, 'testing-debug'), (500, 
> 'unstable'), (500, 'testing'), (200, 'experimental'), (1, 
> 'experimental-debug')

More or less the same.

> Architecture: amd64 (x86_64)
> Foreign Architectures: i386

Same.

> Kernel: Linux 5.2.0-3-amd64 (SMP w/4 CPU threads)

As with your setup, I haven't rebooted into it yet. Kernel
5.7.0-2-amd64 running here, though, but that _should_ not make a
difference. (That was the kernel which needed that other fix in that
upload as it still needs to be compiled with gcc-9.)

> Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE

That's is likely because of the unsigned out-of-tree ipt_NETFLOW. :-)

> Locale: LANG=de_DE.utf8, LC_CTYPE=de_DE.utf8 (charmap=UTF-8), LANGUAGE not set

Locales shouldn't make a difference. LANG=C.UTF-8 here, though.

> Shell: /bin/sh linked to /bin/dash

Same here

> Init: systemd (via /run/systemd/system)

sysvinit here, but really shouldn't make a difference.

> Versions of packages iptables-netflow-dkms depends on:
> ii  dkms            2.8.3-4
> ii  libc6           2.31-4
> ii  libc6-dev       2.31-4
> ii  libxtables-dev  1.8.5-3
> ii  pkg-config      0.29.2-1
> 
> Versions of packages iptables-netflow-dkms recommends:
> ii  iptables  1.8.5-3

Same here.

> make[1]: Entering directory '/usr/src/linux-headers-5.9.0-1-amd64'
>   CC [M]  /var/lib/dkms/ipt-netflow/2.5.1/build/ipt_NETFLOW.o
> In file included from /var/lib/dkms/ipt-netflow/2.5.1/build/ipt_NETFLOW.c:76:
> /var/lib/dkms/ipt-netflow/2.5.1/build/compat.h:709:43: warning: ‘struct 
> timeval’ declared inside parameter list will not be visible outside of this 
> definition or declaration
>   709 | static inline void do_gettimeofday(struct timeval *tv)
>       |                                           ^~~~~~~
> /var/lib/dkms/ipt-netflow/2.5.1/build/compat.h: In function ‘do_gettimeofday’:
> /var/lib/dkms/ipt-netflow/2.5.1/build/compat.h:713:4: error: invalid use of 
> undefined type ‘struct timeval’
>   713 |  tv->tv_sec = ts64.tv_sec;
>       |    ^~
> /var/lib/dkms/ipt-netflow/2.5.1/build/compat.h:714:4: error: invalid use of 
> undefined type ‘struct timeval’
>   714 |  tv->tv_usec = ts64.tv_nsec/1000;
>       |    ^~
> /var/lib/dkms/ipt-netflow/2.5.1/build/ipt_NETFLOW.c: In function 
> ‘nf_seq_show’:
> /var/lib/dkms/ipt-netflow/2.5.1/build/ipt_NETFLOW.c:755:39: warning: format 
> ‘%lu’ expects argument of type ‘long unsigned int’, but argument 3 has type 
> ‘s64’ {aka ‘long long int’} [-Wformat=]
>   755 |    seq_printf(seq, " Flows selected %lu, discarded %lu.",
>       |                                     ~~^
>       |                                       |
>       |                                       long unsigned int
>       |                                     %llu
> /var/lib/dkms/ipt-netflow/2.5.1/build/ipt_NETFLOW.c:755:54: warning: format 
> ‘%lu’ expects argument of type ‘long unsigned int’, but argument 4 has type 
> ‘s64’ {aka ‘long long int’} [-Wformat=]
>   755 |    seq_printf(seq, " Flows selected %lu, discarded %lu.",
>       |                                                    ~~^
>       |                                                      |
>       |                                                      long unsigned int
>       |                                                    %llu
> /var/lib/dkms/ipt-netflow/2.5.1/build/ipt_NETFLOW.c:759:39: warning: format 
> ‘%lu’ expects argument of type ‘long unsigned int’, but argument 3 has type 
> ‘s64’ {aka ‘long long int’} [-Wformat=]
>   759 |    seq_printf(seq, " Flows selected %lu.", 
> atomic64_read(&flows_selected));
>       |                                     ~~^
>       |                                       |
>       |                                       long unsigned int
>       |                                     %llu
> /var/lib/dkms/ipt-netflow/2.5.1/build/ipt_NETFLOW.c: In function 
> ‘netflow_export_pdu_v5’:
> /var/lib/dkms/ipt-netflow/2.5.1/build/ipt_NETFLOW.c:2652:17: error: storage 
> size of ‘tv’ isn’t known
>  2652 |  struct timeval tv;
>       |                 ^~
> /var/lib/dkms/ipt-netflow/2.5.1/build/ipt_NETFLOW.c:2652:17: warning: unused 
> variable ‘tv’ [-Wunused-variable]
> /var/lib/dkms/ipt-netflow/2.5.1/build/ipt_NETFLOW.c: In function 
> ‘netflow_export_pdu_v9’:
> /var/lib/dkms/ipt-netflow/2.5.1/build/ipt_NETFLOW.c:2736:17: error: storage 
> size of ‘tv’ isn’t known
>  2736 |  struct timeval tv;
>       |                 ^~
> /var/lib/dkms/ipt-netflow/2.5.1/build/ipt_NETFLOW.c:2736:17: warning: unused 
> variable ‘tv’ [-Wunused-variable]
> /var/lib/dkms/ipt-netflow/2.5.1/build/ipt_NETFLOW.c: In function 
> ‘netflow_export_pdu_ipfix’:
> /var/lib/dkms/ipt-netflow/2.5.1/build/ipt_NETFLOW.c:2770:17: error: storage 
> size of ‘tv’ isn’t known
>  2770 |  struct timeval tv;
>       |                 ^~
> /var/lib/dkms/ipt-netflow/2.5.1/build/ipt_NETFLOW.c:2770:17: warning: unused 
> variable ‘tv’ [-Wunused-variable]
> /var/lib/dkms/ipt-netflow/2.5.1/build/ipt_NETFLOW.c: In function 
> ‘timeout_rate_j’:
> /var/lib/dkms/ipt-netflow/2.5.1/build/ipt_NETFLOW.c:3677:10: error: variable 
> ‘tv’ has initializer but incomplete type
>  3677 |   struct timeval tv = { .tv_sec = timeout_rate * 60, .tv_usec = 0 };
>       |          ^~~~~~~
> /var/lib/dkms/ipt-netflow/2.5.1/build/ipt_NETFLOW.c:3677:26: error: ‘struct 
> timeval’ has no member named ‘tv_sec’
>  3677 |   struct timeval tv = { .tv_sec = timeout_rate * 60, .tv_usec = 0 };
>       |                          ^~~~~~
> /var/lib/dkms/ipt-netflow/2.5.1/build/ipt_NETFLOW.c:3677:35: warning: excess 
> elements in struct initializer
>  3677 |   struct timeval tv = { .tv_sec = timeout_rate * 60, .tv_usec = 0 };
>       |                                   ^~~~~~~~~~~~
> /var/lib/dkms/ipt-netflow/2.5.1/build/ipt_NETFLOW.c:3677:35: note: (near 
> initialization for ‘tv’)
> /var/lib/dkms/ipt-netflow/2.5.1/build/ipt_NETFLOW.c:3677:55: error: ‘struct 
> timeval’ has no member named ‘tv_usec’
>  3677 |   struct timeval tv = { .tv_sec = timeout_rate * 60, .tv_usec = 0 };
>       |                                                       ^~~~~~~
> /var/lib/dkms/ipt-netflow/2.5.1/build/ipt_NETFLOW.c:3677:65: warning: excess 
> elements in struct initializer
>  3677 |   struct timeval tv = { .tv_sec = timeout_rate * 60, .tv_usec = 0 };
>       |                                                                 ^
> /var/lib/dkms/ipt-netflow/2.5.1/build/ipt_NETFLOW.c:3677:65: note: (near 
> initialization for ‘tv’)
> /var/lib/dkms/ipt-netflow/2.5.1/build/ipt_NETFLOW.c:3677:18: error: storage 
> size of ‘tv’ isn’t known
>  3677 |   struct timeval tv = { .tv_sec = timeout_rate * 60, .tv_usec = 0 };
>       |                  ^~
> /var/lib/dkms/ipt-netflow/2.5.1/build/ipt_NETFLOW.c:3680:14: error: implicit 
> declaration of function ‘timeval_to_jiffies’; did you mean 
> ‘nsecs_to_jiffies’? [-Werror=implicit-function-declaration]
>  3680 |   t_rate_j = timeval_to_jiffies(&tv);
>       |              ^~~~~~~~~~~~~~~~~~
>       |              nsecs_to_jiffies
> /var/lib/dkms/ipt-netflow/2.5.1/build/ipt_NETFLOW.c:3677:18: warning: unused 
> variable ‘tv’ [-Wunused-variable]
>  3677 |   struct timeval tv = { .tv_sec = timeout_rate * 60, .tv_usec = 0 };
>       |                  ^~

This all looks a lot like https://github.com/aabc/ipt-netflow/issues/152

It was closed by the original reporter with the note that he manually
commented out stuff in compat_dev.h. Was a build against kernel 5.8.13
though and upstream just asked to try the version from git which the
original reporter seemingly didn't try.

So let's look what else was fixed upstream since the 2.5.1 release:
https://github.com/aabc/ipt-netflow/compare/v2.5.1...master

This one pops up as it involves setting some LC_* variables explicitly
to "C":
https://github.com/aabc/ipt-netflow/commit/ee46c322f09b1124fcd77d9d50cd83deeb60b361

But the related https://github.com/aabc/ipt-netflow/issues/146 looks
like this was more a charset issue and not actually a language issue.
And the symptoms are completely different.

Leaves only this one as it mentions 5.9 explicity:
https://github.com/aabc/ipt-netflow/commit/1153f73f038205dc17303e6e6c455bbbb56191f7

All others don't seem related from my point of view.

Any chances that you could check if
1153f73f038205dc17303e6e6c455bbbb56191f7 (or else
ee46c322f09b1124fcd77d9d50cd83deeb60b361) fixes the issue for you?

                Regards, Axel
-- 
 ,''`.  |  Axel Beckert <a...@debian.org>, https://people.debian.org/~abe/
: :' :  |  Debian Developer, ftp.ch.debian.org Admin
`. `'   |  4096R: 2517 B724 C5F6 CA99 5329  6E61 2FF9 CD59 6126 16B5
  `-    |  1024D: F067 EA27 26B9 C3FC 1486  202E C09E 1D89 9593 0EDE

Reply via email to