@@ -228,6 +228,7 @@ class TKqpDirectWriteActor : public TActorBootstrapped<TKqpDirectWriteActor>, pu
228
228
hFunc (TEvPipeCache::TEvDeliveryProblem, Handle );
229
229
IgnoreFunc (TEvTxUserProxy::TEvAllocateTxIdResult);
230
230
hFunc (TEvPrivate::TEvShardRequestTimeout, Handle );
231
+ hFunc (TEvPrivate::TEvResolveRequestPlanned, Handle );
231
232
IgnoreFunc (TEvInterconnect::TEvNodeConnected);
232
233
IgnoreFunc (TEvTxProxySchemeCache::TEvInvalidateTableResult);
233
234
}
@@ -247,21 +248,26 @@ class TKqpDirectWriteActor : public TActorBootstrapped<TKqpDirectWriteActor>, pu
247
248
}
248
249
249
250
void PlanResolveTable () {
251
+ CA_LOG_D (" Plan resolve with delay " << CalculateNextAttemptDelay (ResolveAttempts));
250
252
TlsActivationContext->Schedule (
251
253
CalculateNextAttemptDelay (ResolveAttempts),
252
254
new IEventHandle (SelfId (), SelfId (), new TEvPrivate::TEvResolveRequestPlanned{}, 0 , 0 ));
253
255
}
254
256
257
+ void Handle (TEvPrivate::TEvResolveRequestPlanned::TPtr&) {
258
+ ResolveTable ();
259
+ }
260
+
255
261
void ResolveTable () {
256
262
SchemeEntry.reset ();
257
263
SchemeRequest.reset ();
258
264
259
265
if (ResolveAttempts++ >= BackoffSettings ()->MaxResolveAttempts ) {
260
- const auto error = TStringBuilder ()
261
- << " Too many table resolve attempts for Sink=" << this ->SelfId () << " ." ;
262
- CA_LOG_E (error);
266
+ CA_LOG_E (TStringBuilder ()
267
+ << " Too many table resolve attempts for table " << TableId << " ." );
263
268
RuntimeError (
264
- error,
269
+ TStringBuilder ()
270
+ << " Too many table resolve attempts for table `" << Settings.GetTable ().GetPath () << " `." ,
265
271
NYql::NDqProto::StatusIds::SCHEME_ERROR);
266
272
return ;
267
273
}
@@ -273,21 +279,24 @@ class TKqpDirectWriteActor : public TActorBootstrapped<TKqpDirectWriteActor>, pu
273
279
entry.RequestType = NSchemeCache::TSchemeCacheNavigate::TEntry::ERequestType::ByTableId;
274
280
entry.Operation = NSchemeCache::TSchemeCacheNavigate::OpTable;
275
281
entry.SyncVersion = false ;
282
+ entry.ShowPrivatePath = true ;
276
283
request->ResultSet .emplace_back (entry);
277
284
278
285
Send (MakeSchemeCacheID (), new TEvTxProxySchemeCache::TEvInvalidateTable (TableId, {}));
279
286
Send (MakeSchemeCacheID (), new TEvTxProxySchemeCache::TEvNavigateKeySet (request));
280
287
}
281
288
282
289
void Handle (TEvTxProxySchemeCache::TEvNavigateKeySetResult::TPtr& ev) {
290
+ auto & resultSet = ev->Get ()->Request ->ResultSet ;
291
+ YQL_ENSURE (resultSet.size () == 1 );
292
+
283
293
if (ev->Get ()->Request ->ErrorCount > 0 ) {
284
294
CA_LOG_E (TStringBuilder () << " Failed to get table: "
285
- << TableId << " '" );
295
+ << TableId << " '. Entry: " << resultSet[ 0 ]. ToString () );
286
296
PlanResolveTable ();
287
297
return ;
288
298
}
289
- auto & resultSet = ev->Get ()->Request ->ResultSet ;
290
- YQL_ENSURE (resultSet.size () == 1 );
299
+
291
300
SchemeEntry = resultSet[0 ];
292
301
293
302
CA_LOG_D (" Resolved TableId=" << TableId << " ("
0 commit comments