Fix export uploader (win build + YT) - #36133
Conversation
This comment was marked as outdated.
This comment was marked as outdated.
There was a problem hiding this comment.
Pull request overview
This PR adjusts the Windows fallback implementation of SchemeShard export uploaders so that it exposes the same factory function names as the non-Windows implementation, matching the API declared in schemeshard_export_uploaders.h.
Changes:
- Renamed Windows fallback uploader factory functions to
CreateSchemeUploaderandCreateExportMetadataUploader(removing theFallbacksuffix).
Comments suppressed due to low confidence (2)
ydb/core/tx/schemeshard/schemeshard_export_uploaders_fallback.cpp:73
- These uploader factory functions are templates defined in a .cpp file, but unlike the non-Windows implementation (schemeshard_export_uploaders.cpp) there are no explicit instantiations for the concrete settings types used by the call sites (ExportToS3Settings / ExportToFsSettings). On Windows this will typically result in unresolved symbols at link time for CreateSchemeUploader<...>. Add explicit template instantiations for the required settings types (mirroring schemeshard_export_uploaders.cpp) or move the template definitions into the header to allow implicit instantiation.
IActor* CreateSchemeUploader(TActorId schemeShard, ui64 exportId, ui32 itemIdx, TPathId sourcePathId,
const TSettings& settings, const TString& databaseRoot, const TString& metadata,
bool enablePermissions, bool enableChecksums, const TMaybe<NBackup::TEncryptionIV>& iv
) {
Y_UNUSED(sourcePathId, settings, databaseRoot, metadata, enablePermissions, enableChecksums, iv);
return new TSchemeUploaderFallback<TSettings>(schemeShard, exportId, itemIdx);
ydb/core/tx/schemeshard/schemeshard_export_uploaders_fallback.cpp:82
- Same issue as for CreateSchemeUploader: CreateExportMetadataUploader is a function template defined only in this .cpp, but this file does not explicitly instantiate it for the concrete settings types used elsewhere. This can cause unresolved symbols on Windows for CreateExportMetadataUploader<ExportToS3Settings/FsSettings>. Add explicit instantiations (or make the template definition available in the header).
NActors::IActor* CreateExportMetadataUploader(NActors::TActorId schemeShard, ui64 exportId,
const TSettings& settings, const NKikimrSchemeOp::TExportMetadata& exportMetadata,
bool enableChecksums
) {
Y_UNUSED(settings, exportMetadata, enableChecksums);
return new TExportMetadataUploaderFallback<TSettings>(schemeShard, exportId);
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
26c8b17 to
3591a27
Compare
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
Co-authored-by: Ilnaz Nizametdinov <i.nizametdinov@gmail.com>
|
⚪
🟢
*please be aware that the difference is based on comparing your commit and the last completed build from the post-commit, check comparation |
|
⚪ ⚪ Ya make output | Test bloat | Test bloat
🟢
*please be aware that the difference is based on comparing your commit and the last completed build from the post-commit, check comparation |
Co-authored-by: Ilnaz Nizametdinov <i.nizametdinov@gmail.com>
Changelog entry
...
Changelog category
Description for reviewers
...