Uploaded image for project: 'Bitbucket Data Center'
  1. Bitbucket Data Center
  2. BSERV-12732

Fork syncing fails with an exception during rolling upgrade

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Low
    • 7.10.0
    • 7.9.0
    • Maintenance - Upgrade
    • None

    Description

      Issue Summary

      While performing rolling upgrade, auto fork syncing fails when system is in Mixed mode i.e. nodes have different versions.

      Steps to Reproduce

      1. Given a cluster with 2 nodes having version 7.9.0
      2. Create a repository, push some changes in default branch.
      3. Create a fork of this repository.
      4. Create a branch out of default branch in parent repository and push some commits.
      5. Go to Rolling upgrade page and enable upgrade mode.
      6. Upgrade one of the nodes to 7.9.1 and leave the other one at older version.
      7. Merge the branch created in step 4 to default branch.
      8. Go to child repository and check commits in default branch.

      Expected Results

      New commits from the merged branch are shown.

      Actual Results

      Default branch in child repository still has old state before merging the branch. The below exception is noticed in the logs - 

      [INFO] 2021-01-07 18:26:06,276 ERROR [hz.hazelcast.partition-operation.thread-0]  c.h.s.i.o.impl.OperationRunnerImpl [localhost]:5702 [mgoyal2] [3.12.9] Problem while reading Externalizable class: com.atlassian.stash.internal.repository.sync.auto.AutoRefSyncRequest, exception: java.lang.ClassNotFoundException: com.atlassian.stash.internal.repository.sync.auto.AutoRefSyncRequest
      [INFO] com.hazelcast.nio.serialization.HazelcastSerializationException: Problem while reading Externalizable class: com.atlassian.stash.internal.repository.sync.auto.AutoRefSyncRequest, exception: java.lang.ClassNotFoundException: com.atlassian.stash.internal.repository.sync.auto.AutoRefSyncRequest
      [INFO] 	at com.hazelcast.internal.serialization.impl.JavaDefaultSerializers$ExternalizableSerializer.read(JavaDefaultSerializers.java:159)
      [INFO] 	at com.hazelcast.internal.serialization.impl.JavaDefaultSerializers$ExternalizableSerializer.read(JavaDefaultSerializers.java:135)
      [INFO] 	at com.hazelcast.internal.serialization.impl.StreamSerializerAdapter.read(StreamSerializerAdapter.java:48)
      [INFO] 	at com.hazelcast.internal.serialization.impl.AbstractSerializationService.readObject(AbstractSerializationService.java:269)
      [INFO] 	at com.atlassian.hazelcast.serialization.OsgiSafeStreamSerializer.safeReadObject(OsgiSafeStreamSerializer.java:134)
      [INFO] 	at com.atlassian.hazelcast.serialization.OsgiSafeStreamSerializer.read(OsgiSafeStreamSerializer.java:107)
      [INFO] 	at com.atlassian.hazelcast.serialization.OsgiSafeStreamSerializer.read(OsgiSafeStreamSerializer.java:63)
      [INFO] 	at com.hazelcast.internal.serialization.impl.StreamSerializerAdapter.read(StreamSerializerAdapter.java:48)
      [INFO] 	at com.hazelcast.internal.serialization.impl.AbstractSerializationService.readObject(AbstractSerializationService.java:269)
      [INFO] 	at com.hazelcast.internal.serialization.impl.ByteArrayObjectDataInput.readObject(ByteArrayObjectDataInput.java:574)
      [INFO] 	at com.atlassian.stash.internal.concurrent.SubmitTaskToBucketProcessor.readData(SubmitTaskToBucketProcessor.java:78)
      [INFO] 	at com.hazelcast.internal.serialization.impl.DataSerializableSerializer.readInternal(DataSerializableSerializer.java:160)
      [INFO] 	at com.hazelcast.internal.serialization.impl.DataSerializableSerializer.read(DataSerializableSerializer.java:106)
      [INFO] 	at com.hazelcast.internal.serialization.impl.DataSerializableSerializer.read(DataSerializableSerializer.java:51)
      [INFO] 	at com.hazelcast.internal.serialization.impl.StreamSerializerAdapter.read(StreamSerializerAdapter.java:48)
      [INFO] 	at com.hazelcast.internal.serialization.impl.AbstractSerializationService.readObject(AbstractSerializationService.java:269)
      [INFO] 	at com.hazelcast.internal.serialization.impl.ByteArrayObjectDataInput.readObject(ByteArrayObjectDataInput.java:574)
      [INFO] 	at com.hazelcast.map.impl.operation.EntryOperation.readInternal(EntryOperation.java:263)
      [INFO] 	at com.hazelcast.spi.Operation.readData(Operation.java:728)
      [INFO] 	at com.hazelcast.internal.serialization.impl.DataSerializableSerializer.readInternal(DataSerializableSerializer.java:160)
      [INFO] 	at com.hazelcast.internal.serialization.impl.DataSerializableSerializer.read(DataSerializableSerializer.java:106)
      [INFO] 	at com.hazelcast.internal.serialization.impl.DataSerializableSerializer.read(DataSerializableSerializer.java:51)
      [INFO] 	at com.hazelcast.internal.serialization.impl.StreamSerializerAdapter.read(StreamSerializerAdapter.java:48)
      [INFO] 	at com.hazelcast.internal.serialization.impl.AbstractSerializationService.toObject(AbstractSerializationService.java:187)
      [INFO] 	at com.hazelcast.spi.impl.NodeEngineImpl.toObject(NodeEngineImpl.java:324)
      [INFO] 	at com.hazelcast.spi.impl.operationservice.impl.OperationRunnerImpl.run(OperationRunnerImpl.java:397)
      [INFO] 	at com.hazelcast.spi.impl.operationexecutor.impl.OperationThread.process(OperationThread.java:153)
      [INFO] 	at com.hazelcast.spi.impl.operationexecutor.impl.OperationThread.process(OperationThread.java:123)
      [INFO] 	at com.hazelcast.spi.impl.operationexecutor.impl.OperationThread.run(OperationThread.java:110)
      

      Workaround

      After the upgrade is finalized, push one or more change in the repository so that auto ref syncing process kicks in.

       

       

      Attachments

        Issue Links

          Activity

            People

              mgoyal2@atlassian.com Manish
              mgoyal2@atlassian.com Manish
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Backbone Issue Sync