bugprone-exception-escape#9510
Conversation
This comment was marked as off-topic.
This comment was marked as off-topic.
There was a problem hiding this comment.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
libcudacxx/include/cuda/__driver/driver_api.h (1)
295-300:⚠️ Potential issue | 🟠 Major | 🏗️ Heavy liftimportant: these newly
noexcept*NoThrowwrappers still perform function-local static driver-symbol resolution through_CCCLRT_GET_DRIVER_FUNCTION(...), which can throw from__get_driver_entry_point(...). In anoexceptfunction this turns lookup failures intostd::terminateinstead of returningcudaError_t. Please make the lookup path non-throwing for*NoThrowwrappers (e.g., no-throw resolver + error-code fallback) and keep throwing lookup only in throwing wrappers.Also applies to: 433-439, 455-460, 487-492, 509-516, 555-565, 607-625, 637-645, 664-669, 745-750, 768-773, 785-790, 800-805, 881-886, 898-925, 929-953, 998-1005, 1020-1025
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 6586f809-9764-48dc-96ae-4da77454e380
📒 Files selected for processing (57)
.clang-tidycub/examples/device/example_device_radix_sort_custom.cucub/examples/device/example_device_topk_keys.cucub/examples/device/example_device_topk_pairs.cucub/test/test_device_batch_copy.cucub/test/test_namespace_wrapped.cucudax/examples/vector.cuhlibcudacxx/include/cuda/__driver/driver_api.hlibcudacxx/include/cuda/std/__memory/allocator_traits.hlibcudacxx/include/cuda/std/__optional/optional_ref.hthrust/examples/arbitrary_transformation.cuthrust/examples/basic_vector.cuthrust/examples/bucket_sort2d.cuthrust/examples/constant_iterator.cuthrust/examples/counting_iterator.cuthrust/examples/cuda/custom_temporary_allocation.cuthrust/examples/cuda/range_view.cuthrust/examples/discrete_voronoi.cuthrust/examples/dot_products_with_zip.cuthrust/examples/expand.cuthrust/examples/fill_copy_sequence.cuthrust/examples/histogram.cuthrust/examples/include/timer.hthrust/examples/lambda.cuthrust/examples/lexicographical_sort.cuthrust/examples/max_abs_diff.cuthrust/examples/minmax.cuthrust/examples/mode.cuthrust/examples/mr_basic.cuthrust/examples/norm.cuthrust/examples/permutation_iterator.cuthrust/examples/repeated_range.cuthrust/examples/run_length_encoding.cuthrust/examples/saxpy.cuthrust/examples/scan_by_key.cuthrust/examples/set_operations.cuthrust/examples/simple_moving_average.cuthrust/examples/sort.cuthrust/examples/sorting_aos_vs_soa.cuthrust/examples/sum.cuthrust/examples/summary_statistics.cuthrust/examples/summed_area_table.cuthrust/examples/tiled_range.cuthrust/examples/transform_input_output_iterator.cuthrust/examples/transform_output_iterator.cuthrust/examples/weld_vertices.cuthrust/examples/word_count.cuthrust/testing/mr_disjoint_pool.cuthrust/testing/mr_pool.cuthrust/thrust/detail/allocator/temporary_allocator.hthrust/thrust/detail/contiguous_storage.hthrust/thrust/detail/vector_base.hthrust/thrust/device_vector.hthrust/thrust/host_vector.hthrust/thrust/mr/allocator.hthrust/thrust/mr/disjoint_pool.hthrust/thrust/mr/pool.h
💤 Files with no reviewable changes (1)
- .clang-tidy
This comment has been minimized.
This comment has been minimized.
e86b5ab to
6a37eb9
Compare
This comment has been minimized.
This comment has been minimized.
6a37eb9 to
f3b17bd
Compare
This comment has been minimized.
This comment has been minimized.
f3b17bd to
8bfa00f
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 838e2027-35d7-4853-91fd-a79b201f91a1
📒 Files selected for processing (60)
.clang-tidyci/matrix.yamlcub/examples/device/example_device_radix_sort_custom.cucub/examples/device/example_device_topk_keys.cucub/examples/device/example_device_topk_pairs.cucub/test/test_device_batch_copy.cucub/test/test_namespace_wrapped.cucudax/examples/vector.cuhlibcudacxx/include/cuda/__driver/driver_api.hlibcudacxx/include/cuda/std/__memory/allocator_traits.hlibcudacxx/include/cuda/std/__optional/optional_ref.hlibcudacxx/test/libcudacxx/std/utilities/optional/optional.object/optional.object.observe/value.pass.cpplibcudacxx/test/libcudacxx/std/utilities/optional/optional.object/optional.object.observe/value_const_rvalue.pass.cppthrust/examples/arbitrary_transformation.cuthrust/examples/basic_vector.cuthrust/examples/bucket_sort2d.cuthrust/examples/constant_iterator.cuthrust/examples/counting_iterator.cuthrust/examples/cuda/custom_temporary_allocation.cuthrust/examples/cuda/range_view.cuthrust/examples/discrete_voronoi.cuthrust/examples/dot_products_with_zip.cuthrust/examples/expand.cuthrust/examples/fill_copy_sequence.cuthrust/examples/histogram.cuthrust/examples/include/timer.hthrust/examples/lambda.cuthrust/examples/lexicographical_sort.cuthrust/examples/max_abs_diff.cuthrust/examples/minmax.cuthrust/examples/mode.cuthrust/examples/mr_basic.cuthrust/examples/norm.cuthrust/examples/permutation_iterator.cuthrust/examples/repeated_range.cuthrust/examples/run_length_encoding.cuthrust/examples/saxpy.cuthrust/examples/scan_by_key.cuthrust/examples/set_operations.cuthrust/examples/simple_moving_average.cuthrust/examples/sort.cuthrust/examples/sorting_aos_vs_soa.cuthrust/examples/sum.cuthrust/examples/summary_statistics.cuthrust/examples/summed_area_table.cuthrust/examples/tiled_range.cuthrust/examples/transform_input_output_iterator.cuthrust/examples/transform_output_iterator.cuthrust/examples/weld_vertices.cuthrust/examples/word_count.cuthrust/testing/mr_disjoint_pool.cuthrust/testing/mr_pool.cuthrust/thrust/detail/allocator/temporary_allocator.hthrust/thrust/detail/contiguous_storage.hthrust/thrust/detail/vector_base.hthrust/thrust/device_vector.hthrust/thrust/host_vector.hthrust/thrust/mr/allocator.hthrust/thrust/mr/disjoint_pool.hthrust/thrust/mr/pool.h
✅ Files skipped from review due to trivial changes (52)
- thrust/thrust/device_vector.h
- thrust/examples/permutation_iterator.cu
- thrust/examples/lambda.cu
- thrust/examples/counting_iterator.cu
- thrust/thrust/mr/disjoint_pool.h
- thrust/examples/tiled_range.cu
- thrust/examples/fill_copy_sequence.cu
- thrust/examples/norm.cu
- thrust/thrust/detail/allocator/temporary_allocator.h
- thrust/examples/transform_input_output_iterator.cu
- thrust/examples/summed_area_table.cu
- cub/test/test_namespace_wrapped.cu
- thrust/examples/scan_by_key.cu
- thrust/examples/saxpy.cu
- thrust/thrust/detail/vector_base.h
- libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/optional.object.observe/value_const_rvalue.pass.cpp
- thrust/examples/expand.cu
- thrust/examples/bucket_sort2d.cu
- thrust/examples/dot_products_with_zip.cu
- thrust/examples/weld_vertices.cu
- cub/examples/device/example_device_topk_pairs.cu
- thrust/examples/cuda/custom_temporary_allocation.cu
- thrust/thrust/mr/pool.h
- thrust/examples/sum.cu
- thrust/thrust/detail/contiguous_storage.h
- thrust/examples/mr_basic.cu
- cub/examples/device/example_device_topk_keys.cu
- thrust/examples/transform_output_iterator.cu
- thrust/examples/sort.cu
- thrust/examples/basic_vector.cu
- thrust/testing/mr_pool.cu
- libcudacxx/test/libcudacxx/std/utilities/optional/optional.object/optional.object.observe/value.pass.cpp
- thrust/thrust/host_vector.h
- libcudacxx/include/cuda/std/__memory/allocator_traits.h
- thrust/examples/histogram.cu
- thrust/examples/max_abs_diff.cu
- thrust/examples/minmax.cu
- thrust/examples/constant_iterator.cu
- cub/test/test_device_batch_copy.cu
- thrust/examples/repeated_range.cu
- thrust/thrust/mr/allocator.h
- thrust/examples/set_operations.cu
- thrust/examples/simple_moving_average.cu
- thrust/testing/mr_disjoint_pool.cu
- thrust/examples/word_count.cu
- thrust/examples/run_length_encoding.cu
- thrust/examples/discrete_voronoi.cu
- thrust/examples/summary_statistics.cu
- thrust/examples/arbitrary_transformation.cu
- thrust/examples/sorting_aos_vs_soa.cu
- thrust/examples/lexicographical_sort.cu
- cub/examples/device/example_device_radix_sort_custom.cu
🚧 Files skipped from review as they are similar to previous changes (7)
- thrust/examples/mode.cu
- thrust/examples/cuda/range_view.cu
- libcudacxx/include/cuda/std/__optional/optional_ref.h
- thrust/examples/include/timer.h
- .clang-tidy
- cudax/examples/vector.cuh
- libcudacxx/include/cuda/__driver/driver_api.h
52a7479 to
927c5cf
Compare
This comment has been minimized.
This comment has been minimized.
927c5cf to
1c718ec
Compare
This comment has been minimized.
This comment has been minimized.
1c718ec to
75fa2dc
Compare
|
Tried to bump the |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
75fa2dc to
cec5c31
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
| [[nodiscard]] _CCCL_HOST_API inline ::cudaError_t | ||
| __primaryCtxReleaseNoThrow(::CUdevice __dev) noexcept // NOLINT(bugprone-exception-escape) |
There was a problem hiding this comment.
Hmm, but clang-tidy is actually right about these. __get_driver_entry_point can throw. However, I don't know what we should do about that
There was a problem hiding this comment.
If __get_driver_entry_point throws then we are basically screwed and will end up aborting 99/100 anyways. We can't construct most of our globals like cuda::devices, most of these nothrow functions are called in destructors or when constructing/handling other exceptions.
There was a problem hiding this comment.
Yeah.. Maybe we should make __get_driver_entry_point `noexcept and exit in case of any problems there
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
😬 CI Workflow Results🟥 Finished in 23h 47m: Pass: 99%/506 | Total: 7d 14h | Max: 1h 10m | Hits: 99%/653445See results here. |
Description
closes
Checklist