Skip to content

Conversation

@GrigoriyPA
Copy link
Collaborator

@GrigoriyPA GrigoriyPA commented Jan 2, 2026

Changelog entry

Fixed S3 async decompression, bug ticket: https://st.yandex-team.ru/YQ-5013

Changelog category

  • Bugfix

Description for reviewers

Main fixes:

Other fixes:

  • Fixed request hanging on directory listing with file:// url schema
  • Fixed error text when file:// schema used wih S3 raw read actor or with async decompression
  • Fixed YSON type parsing error printing
  • Fixed style issues and typos
  • Fixed kqprun colored output flush

@GrigoriyPA GrigoriyPA requested a review from a team as a code owner January 2, 2026 10:25
@github-actions github-actions bot added the bugfix label Jan 2, 2026
@github-actions
Copy link

github-actions bot commented Jan 2, 2026

🟢 2026-01-02 10:37:37 UTC The validation of the Pull Request description is successful.

@ydbot
Copy link
Collaborator

ydbot commented Jan 2, 2026

Run Extra Tests

Run additional tests for this PR. You can customize:

  • Test Size: small, medium, large (default: all)
  • Test Targets: any directory path (default: ydb/)
  • Sanitizers: ASAN, MSAN, TSAN
  • Coredumps: enable for debugging (default: off)
  • Additional args: custom ya make arguments

▶  Run tests

@github-actions
Copy link

github-actions bot commented Jan 2, 2026

2026-01-02 10:30:15 UTC Pre-commit check linux-x86_64-relwithdebinfo for 2c4d411 has started.
2026-01-02 10:30:31 UTC Artifacts will be uploaded here
2026-01-02 10:32:39 UTC ya make is running...
2026-01-02 10:37:24 UTC Check cancelled

@github-actions
Copy link

github-actions bot commented Jan 2, 2026

2026-01-02 10:30:56 UTC Pre-commit check linux-x86_64-release-asan for 2c4d411 has started.
2026-01-02 10:31:12 UTC Artifacts will be uploaded here
2026-01-02 10:35:22 UTC ya make is running...
2026-01-02 10:37:11 UTC Check cancelled

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR fixes a critical S3 async decompression bug (YQ-5013) along with extensive code style improvements. The main fixes address deadlock conditions in concurrent directory listing and improper decompressor lifecycle management that could cause data loss or hangs during async decompression.

Key changes:

  • Fixed deadlock in concurrent BFS directory listing when futures resolve synchronously
  • Corrected async decompressor shutdown logic to properly handle remaining data buffers
  • Added validation to prevent unsupported file:// protocol usage with async decompression and certain formats

Reviewed changes

Copilot reviewed 18 out of 19 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
ydb/library/yql/providers/s3/actors/yql_s3_read_actor.cpp Critical async decompression fixes: proper decompressor finishing, buffer clearing, and event processing prioritization
ydb/library/yql/providers/s3/provider/yql_s3_listing_strategy.cpp Fixed deadlock when listing futures resolve synchronously; extensive formatting improvements
ydb/library/yql/providers/s3/provider/yql_s3_datasource_type_ann.cpp Added validation to prevent file:// reading with incompatible pragmas (async decompression, raw/json_list formats)
ydb/core/kqp/ut/federated_query/s3/kqp_federated_query_ut.cpp Comprehensive test coverage for file validation and async decompression error handling
ydb/library/yql/providers/s3/actors/yql_s3_raw_read_actor.cpp Added file:// protocol check to prevent unsupported usage in raw read actor
ydb/library/yql/providers/s3/actors/yql_s3_write_actor.cpp Improved error handling for type parsing with proper error stream capture
ydb/library/yql/providers/s3/provider/yql_s3_dq_integration.cpp Style improvements and minor logic adjustments for path processing
ydb/library/yql/providers/s3/actors/yql_s3_decompressor_actor.cpp Code style improvements and const correctness
ydb/library/yql/providers/s3/events/events.h Constructor formatting and move semantics improvements
ydb/library/yql/providers/s3/actors_factory/yql_s3_actors_factory.cpp Fixed variable naming from "s3ReadActoryConfig" to "s3ReadFactoryConfig"
ydb/library/yql/providers/s3/object_listers/yql_s3_list.cpp Improved error message clarity for delimiter usage with local files
ydb/library/yql/providers/pq/async_io/dq_pq_rd_read_actor.cpp Enhanced error reporting for type parsing failures
ydb/library/yql/providers/s3/credentials/credentials.cpp Fixed spacing in debug output strings
ydb/library/yql/providers/s3/compressors/lz4io.cpp Added missing braces for if statement
ydb/library/yql/providers/s3/common/source_context.cpp Removed unnecessary parentheses in condition
ydb/library/yql/providers/s3/common/source_context.h Constructor formatting cleanup
ydb/library/yql/providers/s3/range_helpers/path_list_reader.h Constructor formatting and spacing improvements
ydb/tests/tools/kqprun/runlib/actors.h Added missing Endl to error output for proper line termination
ydb/core/kqp/ut/federated_query/common/common.cpp Enabled local file support in test configuration

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@github-actions github-actions bot added bugfix and removed bugfix labels Jan 2, 2026
@github-actions
Copy link

github-actions bot commented Jan 2, 2026

2026-01-02 10:41:20 UTC Pre-commit check linux-x86_64-release-asan for e4bbc0f has started.
2026-01-02 10:41:39 UTC Artifacts will be uploaded here
2026-01-02 10:43:50 UTC ya make is running...
2026-01-02 11:01:03 UTC Check cancelled

@github-actions
Copy link

github-actions bot commented Jan 2, 2026

2026-01-02 10:41:34 UTC Pre-commit check linux-x86_64-relwithdebinfo for e4bbc0f has started.
2026-01-02 10:41:50 UTC Artifacts will be uploaded here
2026-01-02 10:44:04 UTC ya make is running...
2026-01-02 11:00:58 UTC Check cancelled

@github-actions
Copy link

github-actions bot commented Jan 2, 2026

2026-01-02 11:01:45 UTC Pre-commit check linux-x86_64-release-asan for cdca106 has started.
2026-01-02 11:04:13 UTC Artifacts will be uploaded here
2026-01-02 11:06:12 UTC ya make is running...
🟡 2026-01-02 12:17:34 UTC Some tests failed, follow the links below. This fail is not in blocking policy yet

Ya make output | Test bloat

TESTS PASSED ERRORS FAILED SKIPPED MUTED?
14046 13941 0 79 8 18

🟢 2026-01-02 12:17:45 UTC Build successful.
🟢 2026-01-02 12:18:16 UTC ydbd size 3.8 GiB changed* by +45.2 KiB, which is < 100.0 KiB vs main: OK

ydbd size dash main: 5f595af merge: cdca106 diff diff %
ydbd size 4 102 095 784 Bytes 4 102 142 056 Bytes +45.2 KiB +0.001%
ydbd stripped size 1 534 915 664 Bytes 1 534 934 576 Bytes +18.5 KiB +0.001%

*please be aware that the difference is based on comparing your commit and the last completed build from the post-commit, check comparation

@github-actions
Copy link

github-actions bot commented Jan 2, 2026

2026-01-02 11:05:12 UTC Pre-commit check linux-x86_64-relwithdebinfo for cdca106 has started.
2026-01-02 11:05:30 UTC Artifacts will be uploaded here
2026-01-02 11:29:18 UTC ya make is running...
🟡 2026-01-02 13:12:31 UTC Some tests failed, follow the links below. Going to retry failed tests...

Details

Ya make output | Test bloat

TESTS PASSED ERRORS FAILED SKIPPED MUTED?
43296 40090 0 6 3163 37

2026-01-02 13:12:48 UTC ya make is running... (failed tests rerun, try 2)
🟢 2026-01-02 13:23:11 UTC Tests successful.

Ya make output | Test bloat | Test bloat

TESTS PASSED ERRORS FAILED SKIPPED MUTED?
621 (only retried tests) 608 0 0 0 13

🟢 2026-01-02 13:23:18 UTC Build successful.
🟢 2026-01-02 13:23:42 UTC ydbd size 2.3 GiB changed* by +31.4 KiB, which is < 100.0 KiB vs main: OK

ydbd size dash main: 5f595af merge: cdca106 diff diff %
ydbd size 2 495 321 104 Bytes 2 495 353 304 Bytes +31.4 KiB +0.001%
ydbd stripped size 530 649 440 Bytes 530 655 456 Bytes +5.9 KiB +0.001%

*please be aware that the difference is based on comparing your commit and the last completed build from the post-commit, check comparation

@GrigoriyPA GrigoriyPA merged commit a8e682e into ydb-platform:main Jan 12, 2026
9 checks passed
@GrigoriyPA GrigoriyPA deleted the YQ-5013-fix-s3-async-decompressio branch January 12, 2026 09:43
@ydbot
Copy link
Collaborator

ydbot commented Jan 12, 2026

Backport

To backport this PR, click the button next to the target branch and then click "Run workflow" in the Run Actions UI.

Branch Run
stable-25-3, stable-25-3-1, stable-25-4 ▶  Backport
stable-25-4 ▶  Backport

▶  Backport manual

GrigoriyPA added a commit to GrigoriyPA/ydb that referenced this pull request Jan 12, 2026
GrigoriyPA added a commit to GrigoriyPA/ydb that referenced this pull request Jan 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants