Crowd logs show java.io.StreamCorruptedException: invalid stream header
Platform notice: Server and Data Center only. This article only applies to Atlassian products on the Server and Data Center platforms.
Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.
*Except Fisheye and Crucible
Problem
Various functions in Crowd fail. The following appears in the atlassian-crowd.log
2017-12-27 04:12:27,132 ajp-bio-8008-exec-457 ERROR [atlassian.event.internal.AsynchronousAbleEventDispatcher] There was an exception thrown trying to dispatch event [com.atlassian.crowd.event.user.UserCredentialUpdatedEvent@5d4fb1b1] from the invoker [SingleParameterMethodListenerInvoker{method=public void com.atlassian.crowd.event.listener.RemoveUserSessionWhenCredentialUpdatedListener.handleEvent(com.atlassian.crowd.event.user.UserCredentialUpdatedEvent), listener=com.atlassian.crowd.event.listener.RemoveUserSessionWhenCredentialUpdatedListener@52921a86}]
java.lang.RuntimeException: java.io.StreamCorruptedException: invalid stream header: 000B6469
Cause
The database memory cache stored on disk in the temp/ directory of the Crowd install for tomcat has been corrupted. This is not related to the session token being stored in memory or database.
Resolution
From the installation directory of Crowd run this command while Crowd is running (this is for Linux) to confirm the location of the temp/
directory that is used.
sudo jinfo `cat apache-tomcat/work/catalina.pid` | fgrep "java.io.tmpdir ="
It should return something like
java.io.tmpdir = /opt/atlassian/atlassian-crowd-3.1.1/apache-tomcat/temp
Next,
- Shut down Crowd
- Delete everything in the directory identified by
java.io.tmpdir
- Restart Crowd