After a version upgrade without downtime, a serialVersionUID incompatible error occurs and the user macro page cannot be opened.

XMLWordPrintable

    • 18
    • Severity 3 - Minor
    • 3

      Issue Summary

      When performing a zero downtime upgrade in a clustered environment with two nodes, a serialVersionUID incompatible error occurs and the user macro page cannot be opened.

      This is reproducible on Data Center: yes

      Steps to Reproduce

      1. Build a Confluence 8.5.4 cluster with 2 nodes
      2. Create Usermacro
      3. Enable Upgrademode
      4. Upgraded one node to 8.5.7
      5. Open the user macro page

      Expected Results

      Open the user macro page without error.

      Actual Results

      The following error page appears

      The below exception is thrown in the atlassian-confluence.log file:

      2024-03-08 07:11:20,944 ERROR [http-nio-8090-exec-7 url: /500page.jsp; user: admin] [atlassian.confluence.status.SystemErrorInformationLogger] logException Unhandled exception 964c4d61-3c44-4721-96eb-d1d53012eb1e: java.io.InvalidClassException: com.atlassian.confluence.renderer.UserMacroConfig; local class incompatible: stream classdesc serialVersionUID = -5491163114869596160, local class serialVersionUID = 3183566811844980367
       -- traceId: e28b69770870271a
      com.hazelcast.nio.serialization.HazelcastSerializationException: java.io.InvalidClassException: com.atlassian.confluence.renderer.UserMacroConfig; local class incompatible: stream classdesc serialVersionUID = -5491163114869596160, local class serialVersionUID = 3183566811844980367
         at com.hazelcast.internal.serialization.impl.SerializationUtil.handleException(SerializationUtil.java:70)
         at com.hazelcast.internal.serialization.impl.AbstractSerializationService.readObject(AbstractSerializationService.java:275)
         at com.atlassian.hazelcast.serialization.OsgiSafeStreamSerializer.safeReadObject(OsgiSafeStreamSerializer.java:134)
         at com.atlassian.hazelcast.serialization.OsgiSafeStreamSerializer.read(OsgiSafeStreamSerializer.java:107)
         at com.atlassian.hazelcast.serialization.OsgiSafeStreamSerializer.read(OsgiSafeStreamSerializer.java:63)
         at com.hazelcast.internal.serialization.impl.StreamSerializerAdapter.read(StreamSerializerAdapter.java:48)
      ...
      Caused by: java.io.InvalidClassException: com.atlassian.confluence.renderer.UserMacroConfig; local class incompatible: stream classdesc serialVersionUID = -5491163114869596160, local class serialVersionUID = 3183566811844980367
         at java.base/java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:560)
         at java.base/java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:2020)
         at java.base/java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1870)
         at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2201)
         at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1687)
         at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:489)
         at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:447)
         at java.base/java.util.HashMap.readObject(HashMap.java:1466)
      

      Workaround

      1. Reboot both nodes after the upgrade is complete.
      2. Delete user macros before starting the upgrade and add them again after the update is complete

            Assignee:
            Unassigned
            Reporter:
            Tomoya Suzuki
            Votes:
            14 Vote for this issue
            Watchers:
            24 Start watching this issue

              Created:
              Updated: