Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG]: test_ring_buffer.cpp compilation failure #325

Open
2 tasks done
pdmack opened this issue May 4, 2023 · 0 comments
Open
2 tasks done

[BUG]: test_ring_buffer.cpp compilation failure #325

pdmack opened this issue May 4, 2023 · 0 comments
Labels
bug Something isn't working

Comments

@pdmack
Copy link
Contributor

pdmack commented May 4, 2023

Version

23.07

Which installation method(s) does this occur on?

Docker

Describe the bug.

This is a custom MRC build within a docker image but external to the specified conda setup. It generally relies on the existing cmake constructs provided by the project with a few modifications. But it relies on dependencies drawn from a combination of non conda-forge or nvidia* conda packages: 22.04 Jammy, PyPi, src builds of grpc, etc.

The compilation and linking completes with the exception of the test_ring_buffer.cpp test code. The error itself relates to deleted functions from C++11 (C++0x) but it's not clear to me what the root cause is. This error does not occur in the conda build.

Minimum reproducible example

Please contact @pdmack directly

Relevant log output

/opt/rapids/src/mrc/cpp/mrc/tests/coroutines/test_ring_buffer.cpp: In lambda function:
/opt/rapids/src/mrc/cpp/mrc/tests/coroutines/test_ring_buffer.cpp:223:57: error: use of deleted function 'mrc::coroutines::RingBuffer<long unsigned int>::WriteOperation::WriteOperation(const mrc::coroutines::RingBuffer<long unsigned int>::WriteOperation&)'
  223 |                 co_await rb.write(i).resume_immediately();
      |                                                         ^
In file included from /opt/rapids/src/mrc/cpp/mrc/tests/coroutines/test_ring_buffer.cpp:41:
/opt/rapids/src/mrc/cpp/mrc/include/mrc/coroutines/ring_buffer.hpp:114:12: note: 'mrc::coroutines::RingBuffer<long unsigned int>::WriteOperation::WriteOperation(const mrc::coroutines::RingBuffer<long unsigned int>::WriteOperation&)' is implicitly deleted because the default definition would be ill-formed:
  114 |     struct WriteOperation : ThreadLocalContext
      |            ^~~~~~~~~~~~~~
/opt/rapids/src/mrc/cpp/mrc/include/mrc/coroutines/ring_buffer.hpp:114:12: error: use of deleted function 'std::unique_lock<_Mutex>::unique_lock(const std::unique_lock<_Mutex>&) [with _Mutex = std::mutex]'
In file included from /usr/include/c++/11/condition_variable:41,
                 from /opt/rapids/src/mrc/cpp/mrc/include/mrc/coroutines/thread_pool.hpp:45,
                 from /opt/rapids/src/mrc/cpp/mrc/include/mrc/coroutines/latch.hpp:42,
                 from /opt/rapids/src/mrc/cpp/mrc/tests/coroutines/test_ring_buffer.cpp:40:
/usr/include/c++/11/bits/unique_lock.h:107:7: note: declared here
  107 |       unique_lock(const unique_lock&) = delete;
      |       ^~~~~~~~~~~
/opt/rapids/src/mrc/cpp/mrc/tests/coroutines/test_ring_buffer.cpp:226:51: error: use of deleted function 'mrc::coroutines::RingBuffer<long unsigned int>::WriteOperation::WriteOperation(const mrc::coroutines::RingBuffer<long unsigned int>::WriteOperation&)'
  226 |                 co_await rb.write(i).resume_on(&tp);
      |                                                   ^
make[2]: *** [cpp/mrc/tests/CMakeFiles/test_mrc.dir/build.make:104: cpp/mrc/tests/CMakeFiles/test_mrc.dir/coroutines/test_ring_buffer.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:799: cpp/mrc/tests/CMakeFiles/test_mrc.dir/all] Error 2
make: *** [Makefile:166: all] Error 2

Full env printout

<details><summary>Click here to see environment details</summary><pre>

     ***OS Information***
     DISTRIB_ID=Ubuntu
     DISTRIB_RELEASE=22.04
     DISTRIB_CODENAME=jammy
     DISTRIB_DESCRIPTION="Ubuntu 22.04.2 LTS"
     PRETTY_NAME="Ubuntu 22.04.2 LTS"
     NAME="Ubuntu"
     VERSION_ID="22.04"
     VERSION="22.04.2 LTS (Jammy Jellyfish)"
     VERSION_CODENAME=jammy
     ID=ubuntu
     ID_LIKE=debian
     HOME_URL="https://www.ubuntu.com/"
     SUPPORT_URL="https://help.ubuntu.com/"
     BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
     PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
     UBUNTU_CODENAME=jammy
     Linux 37fd8139e87a 5.4.0-139-generic #156-Ubuntu SMP Fri Jan 20 17:27:18 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

     ***GPU Information***
     Thu May  4 21:02:03 2023
     +-----------------------------------------------------------------------------+
     | NVIDIA-SMI 525.89.02    Driver Version: 525.89.02    CUDA Version: 12.1     |
     |-------------------------------+----------------------+----------------------+
     | GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
     | Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
     |                               |                      |               MIG M. |
     |===============================+======================+======================|
     |   0  Quadro RTX 8000     Off  | 00000000:04:00.0 Off |                    0 |
     | N/A   32C    P8    26W / 250W |      9MiB / 46080MiB |      0%      Default |
     |                               |                      |                  N/A |
     +-------------------------------+----------------------+----------------------+
     |   1  Quadro RTX 8000     Off  | 00000000:43:00.0 Off |                    0 |
     | N/A   33C    P8    29W / 250W |      9MiB / 46080MiB |      0%      Default |
     |                               |                      |                  N/A |
     +-------------------------------+----------------------+----------------------+
     |   2  Quadro RTX 8000     Off  | 00000000:88:00.0 Off |                    0 |
     | N/A   31C    P8    28W / 250W |      9MiB / 46080MiB |      0%      Default |
     |                               |                      |                  N/A |
     +-------------------------------+----------------------+----------------------+
     |   3  Quadro RTX 8000     Off  | 00000000:C4:00.0 Off |                    0 |
     | N/A   33C    P8    26W / 250W |      9MiB / 46080MiB |      0%      Default |
     |                               |                      |                  N/A |
     +-------------------------------+----------------------+----------------------+

     +-----------------------------------------------------------------------------+
     | Processes:                                                                  |
     |  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
     |        ID   ID                                                   Usage      |
     |=============================================================================|
     +-----------------------------------------------------------------------------+

     ***CPU***
     Architecture:                    x86_64
     CPU op-mode(s):                  32-bit, 64-bit
     Address sizes:                   43 bits physical, 48 bits virtual
     Byte Order:                      Little Endian
     CPU(s):                          128
     On-line CPU(s) list:             0-127
     Vendor ID:                       AuthenticAMD
     Model name:                      AMD EPYC 7702P 64-Core Processor
     CPU family:                      23
     Model:                           49
     Thread(s) per core:              2
     Core(s) per socket:              64
     Socket(s):                       1
     Stepping:                        0
     Frequency boost:                 enabled
     CPU max MHz:                     2000.0000
     CPU min MHz:                     1500.0000
     BogoMIPS:                        3999.58
     Flags:                           fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate sme ssbd mba sev ibrs ibpb stibp vmmcall fsgsbase bmi1 avx2 smep bmi2 cqm rdt_a rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local clzero irperf xsaveerptr wbnoinvd arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif umip rdpid overflow_recov succor smca
     Virtualization:                  AMD-V
     L1d cache:                       2 MiB (64 instances)
     L1i cache:                       2 MiB (64 instances)
     L2 cache:                        32 MiB (64 instances)
     L3 cache:                        256 MiB (16 instances)
     NUMA node(s):                    1
     NUMA node0 CPU(s):               0-127
     Vulnerability Itlb multihit:     Not affected
     Vulnerability L1tf:              Not affected
     Vulnerability Mds:               Not affected
     Vulnerability Meltdown:          Not affected
     Vulnerability Mmio stale data:   Not affected
     Vulnerability Retbleed:          Vulnerable
     Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl and seccomp
     Vulnerability Spectre v1:        Mitigation; usercopy/swapgs barriers and __user pointer sanitization
     Vulnerability Spectre v2:        Mitigation; Retpolines, IBPB conditional, IBRS_FW, STIBP conditional, RSB filling, PBRSB-eIBRS Not affected
     Vulnerability Srbds:             Not affected
     Vulnerability Tsx async abort:   Not affected

     ***CMake***
     /usr/bin/cmake
     cmake version 3.26.3

     CMake suite maintained and supported by Kitware (kitware.com/cmake).

     ***g++***
     /usr/bin/g++
     g++ (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0
     Copyright (C) 2021 Free Software Foundation, Inc.
     This is free software; see the source for copying conditions.  There is NO
     warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


     ***nvcc***
     /usr/local/cuda/bin/nvcc
     nvcc: NVIDIA (R) Cuda compiler driver
     Copyright (c) 2005-2023 NVIDIA Corporation
     Built on Mon_Apr__3_17:16:06_PDT_2023
     Cuda compilation tools, release 12.1, V12.1.105
     Build cuda_12.1.r12.1/compiler.32688072_0

     ***Python***
     /usr/bin/python
     Python 3.10.6

     ***Environment Variables***
     PATH                            : /root/.local/bin:/usr/local/mpi/bin:/usr/local/nvidia/bin:/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/ucx/bin:/usr/local/cuda/bin:/usr/local/bin
     LD_LIBRARY_PATH                 : /usr/local/cuda/compat/lib.real:/usr/local/cuda/compat/lib:/usr/local/nvidia/lib:/usr/local/nvidia/lib64:/usr/local/cuda/lib64:/usr/local/mpi/lib:/usr/local/ucx/lib:/usr/local/lib:/usr/lib
     NUMBAPRO_NVVM                   :
     NUMBAPRO_LIBDEVICE              :
     CONDA_PREFIX                    :
     PYTHON_PATH                     :

     conda not found
     ***pip packages***
     /usr/local/bin/pip
     Package            Version              Editable project location
     ------------------ -------------------- --------------------------------
     blinker            1.4
     cryptography       3.4.8
     Cython             0.29.28
     dbus-python        1.2.18
     distro             1.7.0
     exceptiongroup     1.1.1
     httplib2           0.20.2
     importlib-metadata 4.6.4
     iniconfig          2.0.0
     jeepney            0.7.1
     keyring            23.5.0
     launchpadlib       1.10.16
     lazr.restfulclient 0.14.4
     lazr.uri           1.0.6
     more-itertools     8.10.0
     mrc                23.7.0a0+40.gdb51433 /opt/rapids/src/mrc/build/python
     oauthlib           3.2.0
     packaging          23.1
     pip                23.1.2
     pluggy             1.0.0
     pybind11-stubgen   0.13.0
     PyGObject          3.42.1
     PyJWT              2.3.0
     pyparsing          2.4.7
     pytest             7.3.1
     python-apt         2.4.0+ubuntu1
     scikit-build       0.17.3
     SecretStorage      3.3.1
     setuptools         67.7.2
     six                1.16.0
     tomli              2.0.1
     wadllib            1.3.6
     wheel              0.40.0
     zipp               1.0.0

</pre></details>

Other/Misc.

This is a non-conda build environment. All other compilation and tests can be run except for this one. I fully acknowledge that this is a currently unsupported build environment.

Code of Conduct

  • I agree to follow MRC's Code of Conduct
  • I have searched the open bugs and have found no duplicates for this bug report
@pdmack pdmack added the bug Something isn't working label May 4, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
Status: Todo
Development

No branches or pull requests

1 participant