@@ -535,25 +535,38 @@ class TKqpTableWriteActor : public TActorBootstrapped<TKqpTableWriteActor> {
535535 getIssues ());
536536 return ;
537537 }
538- case NKikimrDataEvents::TEvWriteResult::STATUS_INTERNAL_ERROR: {
539- CA_LOG_E (" Got INTERNAL ERROR for table `"
538+ case NKikimrDataEvents::TEvWriteResult::STATUS_WRONG_SHARD_STATE:
539+ CA_LOG_E (" Got WRONG SHARD STATE for table `"
540540 << SchemeEntry->TableId .PathId .ToString () << " `."
541541 << " ShardID=" << ev->Get ()->Record .GetOrigin () << " ,"
542542 << " Sink=" << this ->SelfId () << " ."
543543 << getIssues ().ToOneLineString ());
544- // TODO: Add new status for splits in datashard. This is tmp solution.
545- if (getIssues (). ToOneLineString (). Contains ( " in a pre/offline state assuming this is due to a finished split (wrong shard state) " ) ) {
544+
545+ if (InconsistentTx ) {
546546 ResetShardRetries (ev->Get ()->Record .GetOrigin (), ev->Cookie );
547547 RetryResolveTable ();
548548 } else {
549549 RuntimeError (
550- TStringBuilder () << " Internal error for table `"
550+ TStringBuilder () << " Wrong shard state for table `"
551551 << TablePath << " `. "
552552 << getIssues ().ToOneLineString (),
553- NYql::NDqProto::StatusIds::INTERNAL_ERROR ,
553+ NYql::NDqProto::StatusIds::PRECONDITION_FAILED ,
554554 getIssues ());
555555 }
556556 return ;
557+ case NKikimrDataEvents::TEvWriteResult::STATUS_INTERNAL_ERROR: {
558+ CA_LOG_E (" Got INTERNAL ERROR for table `"
559+ << SchemeEntry->TableId .PathId .ToString () << " `."
560+ << " ShardID=" << ev->Get ()->Record .GetOrigin () << " ,"
561+ << " Sink=" << this ->SelfId () << " ."
562+ << getIssues ().ToOneLineString ());
563+ RuntimeError (
564+ TStringBuilder () << " Internal error for table `"
565+ << TablePath << " `. "
566+ << getIssues ().ToOneLineString (),
567+ NYql::NDqProto::StatusIds::INTERNAL_ERROR,
568+ getIssues ());
569+ return ;
557570 }
558571 case NKikimrDataEvents::TEvWriteResult::STATUS_DISK_SPACE_EXHAUSTED: {
559572 CA_LOG_E (" Got DISK_SPACE_EXHAUSTED for table `"
@@ -1798,6 +1811,18 @@ class TKqpBufferWriteActor :public TActorBootstrapped<TKqpBufferWriteActor>, pub
17981811 getIssues ());
17991812 return ;
18001813 }
1814+ case NKikimrDataEvents::TEvWriteResult::STATUS_WRONG_SHARD_STATE: {
1815+ CA_LOG_E (" Got WRONG SHARD STATE for table."
1816+ << " ShardID=" << ev->Get ()->Record .GetOrigin () << " ,"
1817+ << " Sink=" << this ->SelfId () << " ."
1818+ << getIssues ().ToOneLineString ());
1819+ ReplyErrorAndDie (
1820+ TStringBuilder () << " Wrong shard state for table. "
1821+ << getIssues ().ToOneLineString (),
1822+ NYql::NDqProto::StatusIds::INTERNAL_ERROR,
1823+ getIssues ());
1824+ return ;
1825+ }
18011826 case NKikimrDataEvents::TEvWriteResult::STATUS_INTERNAL_ERROR: {
18021827 CA_LOG_E (" Got INTERNAL ERROR for table."
18031828 << " ShardID=" << ev->Get ()->Record .GetOrigin () << " ,"
0 commit comments