apache / arrow-nanoarrow

Helpers for Arrow C Data & Arrow C Stream interfaces
https://arrow.apache.org/nanoarrow
Apache License 2.0
175 stars 38 forks source link

Meson coverage build may fail under Ubuntu 24.04 #663

Open paleolimbot opened 1 month ago

paleolimbot commented 1 month ago

The coverage build is failing on at least one PR:

https://github.com/apache/arrow-nanoarrow/actions/runs/11340106498/job/31535953273?pr=661#step:8:855

  [1/1] Generates coverage reports
  FAILED: meson-internal__coverage 
  /opt/hostedtoolcache/Python/3.12.7/x64/bin/meson --internal coverage /home/runner/work/arrow-nanoarrow/arrow-nanoarrow /home/runner/work/arrow-nanoarrow/arrow-nanoarrow/subprojects /home/runner/work/arrow-nanoarrow/arrow-nanoarrow/_meson_builddir /home/runner/work/arrow-nanoarrow/arrow-nanoarrow/_meson_builddir/meson-logs --llvm-cov llvm-cov-18
  Ubuntu LLVM version 18.1.3
    Optimized build.
  genhtml: LCOV version 2.0-1
  Capturing coverage data from /home/runner/work/arrow-nanoarrow/arrow-nanoarrow/_meson_builddir
  geninfo cmd: '/usr/bin/geninfo /home/runner/work/arrow-nanoarrow/arrow-nanoarrow/_meson_builddir --output-filename /home/runner/work/arrow-nanoarrow/arrow-nanoarrow/_meson_builddir/meson-logs/coverage.info.initial --initial --memory 0'
  Found gcov version: 13.2.0
  Using intermediate gcov format
  Writing temporary data to /tmp/geninfo_datXdoJ
  Scanning /home/runner/work/arrow-nanoarrow/arrow-nanoarrow/_meson_builddir for .gcno files ...
  Found 60 graph files in /home/runner/work/arrow-nanoarrow/arrow-nanoarrow/_meson_builddir
  Processing /home/runner/work/arrow-nanoarrow/arrow-nanoarrow/_meson_builddir/nanoarrow-device-test.p/subprojects_googletest-1.14.0_googletest_src_gtest_main.cc.gcno
  Processing /home/runner/work/arrow-nanoarrow/arrow-nanoarrow/_meson_builddir/nanoarrow-device-test.p/src_nanoarrow_device_device_test.cc.gcno
  geninfo: ERROR: mismatched end line for _ZN33NanoarrowDevice_CheckRuntime_Test8TestBodyEv at /home/runner/work/arrow-nanoarrow/arrow-nanoarrow/src/nanoarrow/device/device_test.cc:24: 24 -> 26
    (use "geninfo --ignore-errors mismatch ..." to bypass this error)
  Traceback (most recent call last):
    File "/opt/hostedtoolcache/Python/3.12.7/x64/bin/meson", line 8, in <module>
      sys.exit(main())
               ^^^^^^
    File "/opt/hostedtoolcache/Python/3.12.7/x64/lib/python3.12/site-packages/mesonbuild/mesonmain.py", line 291, in main
      return run(sys.argv[1:], launcher)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/opt/hostedtoolcache/Python/3.12.7/x64/lib/python3.12/site-packages/mesonbuild/mesonmain.py", line 279, in run
      return run_script_command(args[1], args[2:])
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/opt/hostedtoolcache/Python/3.12.7/x64/lib/python3.12/site-packages/mesonbuild/mesonmain.py", line 220, in run_script_command
      return module.run(script_args)
             ^^^^^^^^^^^^^^^^^^^^^^^
    File "/opt/hostedtoolcache/Python/3.12.7/x64/lib/python3.12/site-packages/mesonbuild/scripts/coverage.py", line 208, in run
      return coverage(options.outputs, options.source_root,
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/opt/hostedtoolcache/Python/3.12.7/x64/lib/python3.12/site-packages/mesonbuild/scripts/coverage.py", line 113, in coverage
      subprocess.check_call([lcov_exe,
    File "/opt/hostedtoolcache/Python/3.12.7/x64/lib/python3.12/subprocess.py", line 413, in check_call
      raise CalledProcessError(retcode, cmd)
  subprocess.CalledProcessError: Command '['lcov', '--directory', '/home/runner/work/arrow-nanoarrow/arrow-nanoarrow/_meson_builddir', '--capture', '--initial', '--output-file', '/home/runner/work/arrow-nanoarrow/arrow-nanoarrow/_meson_builddir/meson-logs/coverage.info.initial']' returned non-zero exit status 1.
  ninja: build stopped: subcommand failed.
WillAyd commented 1 month ago

FWIW I think this started when ubuntu-latest switched from 22.04 to 24.04

I've seen some reports in lcov about this like https://github.com/linux-test-project/lcov/issues/296 although I'm not sure there is a clear resolution just yet

paleolimbot commented 1 month ago

Hmm...this is still failing on main:

 [1/1] Generates coverage reports
  FAILED: meson-internal__coverage 
  /opt/hostedtoolcache/Python/3.12.7/x64/bin/meson --internal coverage /home/runner/work/arrow-nanoarrow/arrow-nanoarrow /home/runner/work/arrow-nanoarrow/arrow-nanoarrow/subprojects /home/runner/work/arrow-nanoarrow/arrow-nanoarrow/_meson_builddir /home/runner/work/arrow-nanoarrow/arrow-nanoarrow/_meson_builddir/meson-logs --llvm-cov llvm-cov-18
  Ubuntu LLVM version 18.1.3
    Optimized build.
  genhtml: LCOV version 2.0-1
  Capturing coverage data from /home/runner/work/arrow-nanoarrow/arrow-nanoarrow/_meson_builddir
  geninfo cmd: '/usr/bin/geninfo /home/runner/work/arrow-nanoarrow/arrow-nanoarrow/_meson_builddir --output-filename /home/runner/work/arrow-nanoarrow/arrow-nanoarrow/_meson_builddir/meson-logs/coverage.info.initial --initial --memory 0'
  Found gcov version: 13.2.0
  Using intermediate gcov format
  Writing temporary data to /tmp/geninfo_datcUKe
  Scanning /home/runner/work/arrow-nanoarrow/arrow-nanoarrow/_meson_builddir for .gcno files ...
  Found 60 graph files in /home/runner/work/arrow-nanoarrow/arrow-nanoarrow/_meson_builddir
  Processing /home/runner/work/arrow-nanoarrow/arrow-nanoarrow/_meson_builddir/nanoarrow-device-test.p/subprojects_googletest-1.14.0_googletest_src_gtest_main.cc.gcno
  Processing /home/runner/work/arrow-nanoarrow/arrow-nanoarrow/_meson_builddir/nanoarrow-device-test.p/src_nanoarrow_device_device_test.cc.gcno
  geninfo: ERROR: mismatched end line for _ZN33NanoarrowDevice_CheckRuntime_Test8TestBodyEv at /home/runner/work/arrow-nanoarrow/arrow-nanoarrow/src/nanoarrow/device/device_test.cc:24: 24 -> 26
    (use "geninfo --ignore-errors mismatch ..." to bypass this error)
  Traceback (most recent call last):
    File "/opt/hostedtoolcache/Python/3.12.7/x64/bin/meson", line 8, in <module>