NIKSS-vSwitch / nikss

Native In-Kernel P4-programmable Software Switch for Software-Defined Networking (previously PSA-eBPF)
Apache License 2.0
47 stars 4 forks source link

Workflow Build Docker image failed #106

Open tatry opened 12 months ago

tatry commented 12 months ago

Workflow fails with error related to building p4c compiler, e.g.:

#15 27.13 In file included from /tmp/p4c/lib/error_message.h:22,
#15 27.13                  from /tmp/p4c/lib/error_helper.h:29,
#15 27.13                  from /tmp/p4c/lib/error_reporter.h:21,
#15 27.13                  from /tmp/p4c/lib/compile_context.h:24,
#15 27.13                  from /tmp/p4c/lib/compile_context.cpp:17,
#15 27.13                  from /tmp/p4c/build/lib/unified_libp4ctoolkit_srcs_1.cpp:4:
#15 27.13 /tmp/p4c/lib/source_file.h:27:10: fatal error: gtest/gtest_prod.h: No such file or directory
#15 27.13    27 | #include "gtest/gtest_prod.h"
#15 27.13       |          ^~~~~~~~~~~~~~~~~~~~
#15 27.13 compilation terminated.
#15 27.13 make[2]: *** [lib/CMakeFiles/p4ctoolkit.dir/build.make:63: lib/CMakeFiles/p4ctoolkit.dir/unified_libp4ctoolkit_srcs_1.cpp.o] Error 1
#15 27.13 make[1]: *** [CMakeFiles/Makefile2:860: lib/CMakeFiles/p4ctoolkit.dir/all] Error 2
#15 27.13 make: *** [Makefile:163: all] Error 2
#15 ERROR: process "/bin/sh -c chmod u+x /nikss/scripts/docker-build.sh && /nikss/scripts/docker-build.sh" did not complete successfully: exit code: 2
------
 > [builder 6/6] RUN chmod u+x /nikss/scripts/docker-build.sh && /nikss/scripts/docker-build.sh:
27.13                  from /tmp/p4c/lib/compile_context.h:24,
27.13                  from /tmp/p4c/lib/compile_context.cpp:17,
27.13                  from /tmp/p4c/build/lib/unified_libp4ctoolkit_srcs_1.cpp:4:
27.13 /tmp/p4c/lib/source_file.h:27:10: fatal error: gtest/gtest_prod.h: No such file or directory
27.13    27 | #include "gtest/gtest_prod.h"
27.13       |          ^~~~~~~~~~~~~~~~~~~~
27.13 compilation terminated.
27.13 make[2]: *** [lib/CMakeFiles/p4ctoolkit.dir/build.make:63: lib/CMakeFiles/p4ctoolkit.dir/unified_libp4ctoolkit_srcs_1.cpp.o] Error 1
27.13 make[1]: *** [CMakeFiles/Makefile2:860: lib/CMakeFiles/p4ctoolkit.dir/all] Error 2
27.13 make: *** [Makefile:163: all] Error 2
------
Dockerfile:14
--------------------
  12 |     COPY . /nikss
  13 |     WORKDIR /nikss
  14 | >>> RUN chmod u+x /nikss/scripts/docker-build.sh && /nikss/scripts/docker-build.sh
  15 |     
  16 |     FROM ubuntu:20.04 as runtime
--------------------
ERROR: failed to solve: process "/bin/sh -c chmod u+x /nikss/scripts/docker-build.sh && /nikss/scripts/docker-build.sh" did not complete successfully: exit code: 2
Error: Process completed with exit code 1.

The error indicates that the problem is related with latest changes in build process of p4c - they removed git submodules and fetch its content via cmake. In other words in build script https://github.com/NIKSS-vSwitch/nikss/blob/740e5f8d773f69c802c0794557dc18b7f7125f4d/scripts/docker-build.sh#L25-L31 must be a command to download submodules after checkout, because they are no longer downloaded during git clone.