Improve the exception handling in the backup client

XMLWordPrintable

    • 0
    • 2

      Problem statement

      In case of using Bitbucket Backup client there are two setting responsible for the SCM drain timeout:

      • backup.drain.scm.timeout on Bitbucket side in bitbucket.properties
      • backup.scmdrain.timeout on the backup client side in backup-config.properties

      In case of hitting the timeout set with the backup.drain.scm.timeout it's clearly stated in the logs while hitting the timeout set with backup.scmdrain.timeout is not clear:

      DEBUG [threadpool:thread-2] crowdadmin @177BEOGx120x5715886x0 10.11.29.45 "POST /mvc/admin/backups HTTP/1.1" c.a.s.i.m.backup.BackupPhase Failed to close the backup zip
      java.nio.channels.ClosedChannelException: null
      	at sun.nio.ch.FileChannelImpl.ensureOpen(FileChannelImpl.java:110)
      	at sun.nio.ch.FileChannelImpl.write(FileChannelImpl.java:199)
      	at java.nio.channels.Channels.writeFullyImpl(Channels.java:78)
      	at java.nio.channels.Channels.writeFully(Channels.java:101)
      	at java.nio.channels.Channels.access$000(Channels.java:61)
      	at java.nio.channels.Channels$1.write(Channels.java:174)
      	at de.schlichtherle.truezip.io.LEDataOutputStream.write(LEDataOutputStream.java:91)
      	at java.util.zip.DeflaterOutputStream.deflate(DeflaterOutputStream.java:253)
      	at java.util.zip.DeflaterOutputStream.finish(DeflaterOutputStream.java:226)
      	at de.schlichtherle.truezip.zip.RawZipOutputStream$DeflaterOutputMethod.finish(RawZipOutputStream.java:1036)
      	at de.schlichtherle.truezip.zip.RawZipOutputStream$Crc32UpdatingOutputMethod.finish(RawZipOutputStream.java:1092)
      	at de.schlichtherle.truezip.zip.RawZipOutputStream.closeEntry(RawZipOutputStream.java:478)
      	at de.schlichtherle.truezip.zip.ZipOutputStream.closeEntry(ZipOutputStream.java:293)
      	at de.schlichtherle.truezip.zip.RawZipOutputStream.finish(RawZipOutputStream.java:506)
      	at de.schlichtherle.truezip.zip.ZipOutputStream.finish(ZipOutputStream.java:298)
      	at de.schlichtherle.truezip.zip.RawZipOutputStream.close(RawZipOutputStream.java:695)
      	at de.schlichtherle.truezip.zip.ZipOutputStream.close(ZipOutputStream.java:303)
      	at com.atlassian.stash.internal.maintenance.backup.BackupPhase$CloseShieldZipOutputStream.reallyClose(BackupPhase.java:157)
      	at com.atlassian.stash.internal.maintenance.backup.BackupPhase$CloseShieldZipOutputStream.access$000(BackupPhase.java:144)
      	at com.atlassian.stash.internal.maintenance.backup.BackupPhase.run(BackupPhase.java:80)
      	at com.atlassian.stash.internal.maintenance.CompositeMaintenanceTask$Step.run(CompositeMaintenanceTask.java:133)
      	at com.atlassian.stash.internal.maintenance.CompositeMaintenanceTask.run(CompositeMaintenanceTask.java:69)
      	at com.atlassian.stash.internal.maintenance.MaintenanceModePhase.run(MaintenanceModePhase.java:27)
      	at com.atlassian.stash.internal.maintenance.backup.AbstractBackupTask.run(AbstractBackupTask.java:85)
      	at com.atlassian.stash.internal.maintenance.DefaultMaintenanceTaskMonitor.run(DefaultMaintenanceTaskMonitor.java:212)
      	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
      	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      	at com.atlassian.stash.internal.concurrent.DefaultTransferableStateManager$StateTransferringRunnable.run(DefaultTransferableStateManager.java:166)
      	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
      	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
      	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
      	at java.lang.Thread.run(Thread.java:748
      

      Solution

      Please make the error message more clear addressing the timeout situation.

            Assignee:
            Unassigned
            Reporter:
            Anton Shaleev (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: