Skip to content

fix: Gate GooglePolyline and format Nimble tests#17831

Open
duxiao1212 wants to merge 1 commit into
facebookincubator:mainfrom
duxiao1212:export-D108570476
Open

fix: Gate GooglePolyline and format Nimble tests#17831
duxiao1212 wants to merge 1 commit into
facebookincubator:mainfrom
duxiao1212:export-D108570476

Conversation

@duxiao1212

@duxiao1212 duxiao1212 commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

Summary:
X-link: facebookincubator/nimble#868

Move GooglePolylineFunctions.cpp behind VELOX_ENABLE_GEO in CMake so OSS builds without GEOS do not compile it, declare the direct geo dependencies explicitly, and apply clang-format fixes required by the Nimble GitHub pre-commit job.

Differential Revision: D108570476

@duxiao1212 duxiao1212 requested a review from majetideepak as a code owner June 15, 2026 02:16
@netlify

netlify Bot commented Jun 15, 2026

Copy link
Copy Markdown

Deploy Preview for meta-velox canceled.

Name Link
🔨 Latest commit 052098a
🔍 Latest deploy log https://app.netlify.com/projects/meta-velox/deploys/6a2f82c48eb21500098c0bea

@meta-cla meta-cla Bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Jun 15, 2026
@meta-codesync

meta-codesync Bot commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

@duxiao1212 has exported this pull request. If you are a Meta employee, you can view the originating Diff in D108570476.

@github-actions

github-actions Bot commented Jun 15, 2026

Copy link
Copy Markdown

Selective Build Plan

Linux release with adapters is running a selective build of 305 cmake targets (out of 606 total). See the CI workflows README for what this means.

Affected targets (305)

Directly changed (1)

Target Changed Files
velox_functions_prestosql_impl GooglePolylineFunctions.cpp

Transitively affected (304)

  • aggregate_companion_functions_test
  • local_runner_service_test
  • physical_size_aggregator_test
  • presto_sql_test
  • spark_aggregation_fuzzer_test
  • spark_expression_fuzzer_test
  • velox_abfs_test
  • velox_aggregates
  • velox_aggregates_GeometryAggregateTest
  • velox_aggregates_reduce_agg_bm
  • velox_aggregates_simple_aggregates_bm
  • velox_aggregates_string_keys_bm
  • velox_aggregates_test_group0
  • velox_aggregates_test_group1
  • velox_aggregates_test_group2
  • velox_aggregates_test_group3
  • velox_aggregates_test_group4
  • velox_aggregation_fuzzer
  • velox_aggregation_fuzzer_base
  • velox_aggregation_fuzzer_test
  • velox_aggregation_result_verifier
  • velox_aggregation_runner_test
  • velox_benchmark_array_writer_no_nulls
  • velox_benchmark_array_writer_with_nulls
  • velox_benchmark_basic_comparison_conjunct
  • velox_benchmark_basic_decoded_vector
  • velox_benchmark_basic_preproc
  • velox_benchmark_basic_selectivity_vector
  • velox_benchmark_basic_simple_arithmetic
  • velox_benchmark_basic_simple_cast
  • velox_benchmark_basic_vector_compare
  • velox_benchmark_basic_vector_fuzzer
  • velox_benchmark_basic_vector_slice
  • velox_benchmark_builder
  • velox_benchmark_estimate_flat_size
  • velox_benchmark_expr_flat_no_nulls
  • velox_benchmark_feature_normalization
  • velox_benchmark_local_remote_comparison
  • velox_benchmark_map_writer_no_nulls
  • velox_benchmark_map_writer_with_nulls
  • velox_benchmark_nested_array_writer_no_nulls
  • velox_benchmark_nested_array_writer_with_nulls
  • velox_cache_fuzzer
  • velox_cast_benchmark
  • velox_common_test
  • velox_constrained_input_generators
  • velox_constrained_input_generators_test
  • velox_constrained_vector_generator
  • velox_constrained_vector_generator_test
  • velox_core_test
  • velox_date_extract_benchmark
  • velox_driver_test
  • velox_duckdb_conversion_test
  • velox_dwio_cache_test
  • velox_dwio_common_test
  • velox_dwio_common_test_utils
  • velox_dwio_dwrf_buffered_output_stream_test
  • velox_dwio_dwrf_byte_rle_encoder_test
  • velox_dwio_dwrf_byte_rle_test
  • velox_dwio_dwrf_checksum_test
  • velox_dwio_dwrf_column_reader_test
  • velox_dwio_dwrf_column_statistics_test
  • velox_dwio_dwrf_compression_test
  • velox_dwio_dwrf_config_test
  • velox_dwio_dwrf_data_buffer_holder_test
  • velox_dwio_dwrf_decompression_test
  • velox_dwio_dwrf_decryption_test
  • velox_dwio_dwrf_dictionary_encoder_test
  • velox_dwio_dwrf_dictionary_encoding_utils_test
  • velox_dwio_dwrf_encoding_selector_test
  • velox_dwio_dwrf_encryption_test
  • velox_dwio_dwrf_flush_policy_test
  • velox_dwio_dwrf_index_builder_test
  • velox_dwio_dwrf_int_direct_test
  • velox_dwio_dwrf_int_encoder_test
  • velox_dwio_dwrf_layout_planner_test
  • velox_dwio_dwrf_ratio_checker_test
  • velox_dwio_dwrf_reader_base_test
  • velox_dwio_dwrf_reader_test
  • velox_dwio_dwrf_rle_test
  • velox_dwio_dwrf_rlev1_encoder_test
  • velox_dwio_dwrf_stream_labels_test
  • velox_dwio_dwrf_stripe_dictionary_cache_test
  • velox_dwio_dwrf_stripe_reader_base_test
  • velox_dwio_dwrf_stripe_stream_test
  • velox_dwio_dwrf_writer_context_test
  • velox_dwio_dwrf_writer_encoding_manager_test
  • velox_dwio_dwrf_writer_sink_test
  • velox_dwio_dwrf_writer_test
  • velox_dwio_iceberg_reader_benchmark
  • velox_dwio_iceberg_reader_benchmark_lib
  • velox_dwio_orc_column_statistics_test
  • velox_dwio_orc_reader_filter_test
  • velox_dwio_orc_reader_test
  • velox_dwio_parquet_page_reader_test
  • velox_dwio_parquet_reader_benchmark
  • velox_dwio_parquet_reader_benchmark_lib
  • velox_dwio_parquet_reader_test
  • velox_dwio_parquet_rlebp_decoder_test
  • velox_dwio_parquet_structure_decoder_test
  • velox_dwio_parquet_table_scan_test
  • velox_dwio_parquet_test_base
  • velox_dwio_parquet_tpch_test
  • velox_dwrf_column_writer_index_test
  • velox_dwrf_column_writer_stats_test
  • velox_dwrf_column_writer_test
  • velox_dwrf_e2e_filter_test
  • velox_dwrf_e2e_reader_test
  • velox_dwrf_e2e_writer_test
  • velox_dwrf_statistics_builder_utils_test
  • velox_dwrf_test_utils
  • velox_dwrf_writer_extended_test
  • velox_dwrf_writer_flush_test
  • velox_example_operator_extensibility
  • velox_example_scan_orc
  • velox_exchange_benchmark
  • velox_exchange_fuzzer
  • velox_exec_SpatialJoinTest
  • velox_exec_bm_duplicate_project
  • velox_exec_infra_test
  • velox_exec_prefixsort_test
  • velox_exec_test_group0
  • velox_exec_test_group1
  • velox_exec_test_group2
  • velox_exec_test_group3
  • velox_exec_test_group4
  • velox_exec_test_group5
  • velox_exec_test_group6
  • velox_exec_test_group7
  • velox_exec_test_group8
  • velox_exec_test_lib
  • velox_exec_util_test_group0
  • velox_expression_fuzzer
  • velox_expression_fuzzer_test
  • velox_expression_fuzzer_unit_test
  • velox_expression_runner
  • velox_expression_runner_test
  • velox_expression_runner_unit_test
  • velox_expression_test
  • velox_expression_test_utility
  • velox_expression_verifier
  • velox_expression_verifier_unit_test
  • velox_filemetadata_test
  • velox_filter_project_benchmark
  • velox_format_datetime_benchmark
  • velox_function_dynamic_link_test
  • velox_function_registry_test
  • velox_functions_aggregates_test
  • velox_functions_aggregates_test_lib
  • velox_functions_benchmarks_compare
  • velox_functions_benchmarks_row_writer_no_nulls
  • velox_functions_benchmarks_simdjson_function_with_expr
  • velox_functions_benchmarks_string_writer_no_nulls
  • velox_functions_benchmarks_url
  • velox_functions_iceberg_test
  • velox_functions_lib_test
  • velox_functions_prestosql_benchmarks_array_contains
  • velox_functions_prestosql_benchmarks_array_min_max
  • velox_functions_prestosql_benchmarks_array_position
  • velox_functions_prestosql_benchmarks_array_sum
  • velox_functions_prestosql_benchmarks_bitwise
  • velox_functions_prestosql_benchmarks_cardinality
  • velox_functions_prestosql_benchmarks_comparisons
  • velox_functions_prestosql_benchmarks_concat
  • velox_functions_prestosql_benchmarks_date_time
  • velox_functions_prestosql_benchmarks_field_reference
  • velox_functions_prestosql_benchmarks_generic
  • velox_functions_prestosql_benchmarks_in
  • velox_functions_prestosql_benchmarks_map_concat
  • velox_functions_prestosql_benchmarks_map_except
  • velox_functions_prestosql_benchmarks_map_input
  • velox_functions_prestosql_benchmarks_map_intersect
  • velox_functions_prestosql_benchmarks_map_subscript
  • velox_functions_prestosql_benchmarks_map_zip_with
  • velox_functions_prestosql_benchmarks_not
  • velox_functions_prestosql_benchmarks_regexp_replace
  • velox_functions_prestosql_benchmarks_row
  • velox_functions_prestosql_benchmarks_string_ascii_utf_functions
  • velox_functions_prestosql_benchmarks_uuid_cast
  • velox_functions_prestosql_benchmarks_width_bucket
  • velox_functions_prestosql_benchmarks_zip
  • velox_functions_prestosql_benchmarks_zip_with
  • velox_functions_remote_client_test
  • velox_functions_remote_server_main
  • velox_functions_spark
  • velox_functions_spark_aggregates
  • velox_functions_spark_aggregates_test
  • velox_functions_spark_impl
  • velox_functions_spark_test
  • velox_functions_test
  • velox_functions_test_lib
  • velox_functions_window_test_lib
  • velox_fuzzer_connector
  • velox_fuzzer_connector_test
  • velox_fuzzer_util
  • velox_gcs_file_test
  • velox_gcs_insert_test
  • velox_gcs_multiendpoints_test
  • velox_hash_benchmark
  • velox_hash_join_build_benchmark
  • velox_hash_join_list_result_benchmark
  • velox_hash_join_prepare_join_table_benchmark
  • velox_hdfs_file_test
  • velox_hdfs_insert_test
  • velox_hive_connector_test
  • velox_hive_iceberg_deletion_vector_test
  • velox_hive_iceberg_deletion_vector_writer_test
  • velox_hive_iceberg_dwrf_insert_test
  • velox_hive_iceberg_equality_delete_test
  • velox_hive_iceberg_insert_test
  • velox_hive_iceberg_merge_sink_test
  • velox_hive_iceberg_test
  • velox_hive_partition_function_benchmark
  • velox_in_10_min_demo
  • velox_join_fuzzer
  • velox_key_encoder_test
  • velox_like_benchmark
  • velox_like_tpch_benchmark
  • velox_local_runner_service_lib
  • velox_local_runner_service_runner
  • velox_mark_distinct_fuzzer
  • velox_mark_distinct_fuzzer_lib
  • velox_mark_sorted_benchmark
  • velox_memory_arbitration_fuzzer
  • velox_memory_test
  • velox_numeric_upcast_benchmark
  • velox_orderby_benchmark
  • velox_orderby_benchmark_util
  • velox_parquet_e2e_filter_test
  • velox_parquet_writer_sink_test
  • velox_parquet_writer_test
  • velox_prefixsort_benchmark
  • velox_presto_type_parser_test
  • velox_presto_types_fuzzer_utils_test
  • velox_presto_types_test
  • velox_prestosql_coverage
  • velox_query_benchmark
  • velox_query_replayer
  • velox_query_trace_replayer_base
  • velox_re2_functions_benchmarks
  • velox_row_number_fuzzer
  • velox_row_number_fuzzer_lib
  • velox_row_serializer_benchmark
  • velox_row_test
  • velox_rows_streaming_window_benchmark
  • velox_rpc_operator_test
  • velox_s3file_test
  • velox_s3insert_test
  • velox_s3metrics_test
  • velox_s3multiendpoints_test
  • velox_s3read_test
  • velox_s3registration_test
  • velox_serializer_benchmark
  • velox_serializer_test_group0
  • velox_simple_aggregate
  • velox_simple_aggregate_test
  • velox_sort_benchmark
  • velox_spark_function_registry_test
  • velox_spark_query_runner
  • velox_spark_query_runner_test
  • velox_spark_windows_test
  • velox_sparksql_benchmarks_cast
  • velox_sparksql_benchmarks_compare
  • velox_sparksql_benchmarks_from_json
  • velox_sparksql_benchmarks_get_funcs
  • velox_sparksql_benchmarks_hash
  • velox_sparksql_benchmarks_in
  • velox_sparksql_benchmarks_simd_compare
  • velox_sparksql_benchmarks_split
  • velox_sparksql_coverage
  • velox_spatial_join_benchmark
  • velox_spatial_join_fuzzer
  • velox_spill_fuzzer_base_lib
  • velox_spiller_aggregate_benchmark
  • velox_spiller_aggregate_benchmark_base
  • velox_spiller_join_benchmark
  • velox_spiller_join_benchmark_base
  • velox_streaming_aggregation_benchmark
  • velox_table_evolution_fuzzer_test
  • velox_text_reader_test
  • velox_text_writer_test
  • velox_tool_trace_test
  • velox_topn_row_number_fuzzer
  • velox_topn_row_number_fuzzer_lib
  • velox_tpcds_benchmark
  • velox_tpcds_benchmark_lib
  • velox_tpcds_connector_test
  • velox_tpch_benchmark
  • velox_tpch_benchmark_lib
  • velox_tpch_connector_test
  • velox_tpch_speed_test
  • velox_unsafe_row_serialize_benchmark
  • velox_vector_fuzzer
  • velox_vector_fuzzer_test
  • velox_vector_test
  • velox_window_fuzzer
  • velox_window_fuzzer_test
  • velox_window_prefixsort_benchmark
  • velox_window_sub_partitioned_sort_benchmark
  • velox_windows_agg_test
  • velox_windows_rank_test
  • velox_windows_value_test
  • velox_writer_fuzzer
  • velox_writer_fuzzer_test

Unresolved (1)

These files could not be mapped to any target; a full build may be needed if they are build-relevant.

  • velox/functions/prestosql/CMakeLists.txt

Slow path • Graph generated from PR branch

@github-actions

github-actions Bot commented Jun 15, 2026

Copy link
Copy Markdown

CI Failure Analysis

Auto-generated by the CI Failure Analysis workflow. This comment is updated in place each time CI fails on a new commit, so it always reflects the latest run — re-pushing or re-running CI will refresh the analysis below. Last updated 2026-06-15 05:03:37 UTC from workflow run 27524516962.

❌ Linux release with adapters — TEST Failure View logs

Failed tests: velox_function_dynamic_link_test (6 of 6 test cases failed)

All 6 test cases fail with the same root cause — the shared library (.so) files that the test tries to dlopen at runtime were not built:

[ RUN      ] DynamicLinkTest.dynamicLoadFunc
C++ exception with description "Exception: VeloxUserError
Error Source: USER
Error Code: INVALID_ARGUMENT
Reason: Error while loading shared library:
  /__w/velox/velox/_build/release/velox/common/dynamic_registry/tests/libvelox_function_dynamic.so:
  cannot open shared object file: No such file or directory
Function: loadDynamicLibrary
File: velox/common/dynamic_registry/DynamicLibraryLoader.cpp
Line: 30
[  FAILED  ] DynamicLinkTest.dynamicLoadFunc (2 ms)

The same error occurs for all 6 missing .so files:

  • libvelox_function_dynamic.so
  • libvelox_overwrite_varchar_function_dynamic.so
  • libvelox_function_err_dynamic.so
  • libvelox_overload_varchar_function_dynamic.so
  • libvelox_function_non_default_dynamic.so

Failed test cases:

  1. DynamicLinkTest.dynamicLoadFunc
  2. DynamicLinkTest.dynamicLoadSameFuncTwice
  3. DynamicLinkTest.dynamicLoadOverwriteFunc
  4. DynamicLinkTest.dynamicLoadErrFunc
  5. DynamicLinkTest.dynamicLoadOverloadFunc
  6. DynamicLinkTest.dynamicLoadFuncNonDefaultRegistry

Correlation with PR changes:
This failure is not caused by the PR. The PR (#17831) only modifies velox/functions/prestosql/CMakeLists.txt and velox/functions/prestosql/GooglePolylineFunctions.cpp to make Google Polyline functions conditional on VELOX_ENABLE_GEO. These changes are entirely unrelated to the velox/common/dynamic_registry/ test infrastructure.

Root cause — selective build missing .so dependencies:
This is a CI infrastructure issue with the selective (changed-files-only) build mode. The PR build is selective (138 tests), and the build target list includes velox_function_dynamic_link_test (the test binary) but does not include its runtime .so dependencies (velox_function_dynamic, velox_overwrite_varchar_function_dynamic, etc.). On the main branch, the full build (3934 targets) builds both the test binary and all .so modules, so the test passes.

Known issues:

  • #14205 tracks a different DynamicLinkTest failure (folly flag conflict), but the underlying issue is the same test suite's fragility in CI.
  • This specific "missing .so" failure is a pre-existing issue with selective builds. On the most recent main branch run, velox_function_dynamic_link_test passes because the full build produces all .so files.

Reproduce locally:

# Full build will pass because it builds the .so dependencies:
make release
cd _build/release && ctest -R velox_function_dynamic_link_test

# Or run the test binary directly:
./_build/release/velox/common/dynamic_registry/tests/velox_function_dynamic_link_test

Recommended fix:
No fix needed in this PR. The selective build's target list should be updated (in the CI workflow configuration) to include the shared library targets (velox_function_dynamic, velox_overwrite_varchar_function_dynamic, velox_function_err_dynamic, velox_overload_varchar_function_dynamic, velox_function_non_default_dynamic) whenever velox_function_dynamic_link_test is selected, or the test should declare these as build dependencies so cmake automatically builds them in selective mode.

Summary:
X-link: facebookincubator/nimble#868

Move GooglePolylineFunctions.cpp behind VELOX_ENABLE_GEO in CMake so OSS builds without GEOS do not compile it, declare the direct geo dependencies explicitly, and apply clang-format fixes required by the Nimble GitHub pre-commit job.

Differential Revision: D108570476
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. meta-exported

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant