-
Type:
Bug
-
Resolution: Unresolved
-
Priority:
Medium
-
None
-
Affects Version/s: 8.5.4, 7.19.17, 7.19.19, 7.19.25, 8.5.20, 8.5.21
-
Component/s: Macros - Content by User
-
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
- Build a Confluence 8.5.4 cluster with 2 nodes
- Create Usermacro
- Enable Upgrademode
- Upgraded one node to 8.5.7
- 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
- Reboot both nodes after the upgrade is complete.
- Delete user macros before starting the upgrade and add them again after the update is complete