2929import java .util .ArrayList ;
3030import java .util .Iterator ;
3131import java .util .List ;
32+ import java .util .Objects ;
3233import java .util .UUID ;
3334import java .util .concurrent .TimeUnit ;
3435import java .util .concurrent .atomic .AtomicBoolean ;
6162import org .apache .hadoop .ozone .protocol .proto .OzoneManagerProtocolProtos .SnapshotMoveKeyInfos ;
6263import org .apache .hadoop .ozone .protocol .proto .OzoneManagerProtocolProtos .SnapshotMoveTableKeysRequest ;
6364import org .apache .hadoop .ozone .protocol .proto .OzoneManagerProtocolProtos .SnapshotPurgeRequest ;
65+ import org .apache .hadoop .ozone .protocol .proto .OzoneManagerProtocolProtos .Status ;
6466import org .apache .hadoop .ozone .protocol .proto .OzoneManagerProtocolProtos .Type ;
6567import org .apache .ratis .protocol .ClientId ;
6668import org .slf4j .Logger ;
@@ -238,7 +240,7 @@ public BackgroundTaskResult call() throws InterruptedException {
238240 return BackgroundTaskResult .EmptyTaskResult .newResult ();
239241 }
240242
241- private void submitSnapshotPurgeRequest (List <String > purgeSnapshotKeys ) {
243+ private void submitSnapshotPurgeRequest (List <String > purgeSnapshotKeys ) throws InterruptedException {
242244 if (!purgeSnapshotKeys .isEmpty ()) {
243245 SnapshotPurgeRequest snapshotPurgeRequest = SnapshotPurgeRequest
244246 .newBuilder ()
@@ -251,14 +253,16 @@ private void submitSnapshotPurgeRequest(List<String> purgeSnapshotKeys) {
251253 .setClientId (clientId .toString ())
252254 .build ();
253255
254- submitRequest (omRequest );
256+ try (BootstrapStateHandler .Lock lock = getBootstrapStateLock ().lock ()) {
257+ submitRequest (omRequest );
258+ }
255259 }
256260 }
257261
258262 private void submitSnapshotMoveDeletedKeys (SnapshotInfo snapInfo ,
259263 List <SnapshotMoveKeyInfos > deletedKeys ,
260264 List <HddsProtos .KeyValue > renamedList ,
261- List <SnapshotMoveKeyInfos > dirsToMove ) {
265+ List <SnapshotMoveKeyInfos > dirsToMove ) throws InterruptedException {
262266
263267 SnapshotMoveTableKeysRequest .Builder moveDeletedKeysBuilder = SnapshotMoveTableKeysRequest .newBuilder ()
264268 .setFromSnapshotID (toProtobuf (snapInfo .getSnapshotId ()));
@@ -287,15 +291,18 @@ private void submitSnapshotMoveDeletedKeys(SnapshotInfo snapInfo,
287291 .setSnapshotMoveTableKeysRequest (moveDeletedKeys )
288292 .setClientId (clientId .toString ())
289293 .build ();
290-
291- try (BootstrapStateHandler .Lock lock = new BootstrapStateHandler .Lock ()) {
294+ try (BootstrapStateHandler .Lock lock = getBootstrapStateLock ().lock ()) {
292295 submitRequest (omRequest );
293296 }
294297 }
295298
296299 private void submitRequest (OMRequest omRequest ) {
297300 try {
298- OzoneManagerRatisUtils .submitRequest (ozoneManager , omRequest , clientId , getRunCount ().get ());
301+ Status status =
302+ OzoneManagerRatisUtils .submitRequest (ozoneManager , omRequest , clientId , getRunCount ().get ()).getStatus ();
303+ if (!Objects .equals (status , Status .OK )) {
304+ LOG .error ("Request: {} failed with an status: {}. Will retry in the next run." , omRequest , status );
305+ }
299306 } catch (ServiceException e ) {
300307 LOG .error ("Request: {} fired by SnapshotDeletingService failed. Will retry in the next run" , omRequest , e );
301308 }
0 commit comments