Skip to content
This repository was archived by the owner on Dec 13, 2021. It is now read-only.
This repository was archived by the owner on Dec 13, 2021. It is now read-only.

Support for ehcache v3.9.x #3

@mmoayyed

Description

@mmoayyed

Per the documentation the supported versions today compatible with each other are:

5.6.4, matches Ehcache 3.8.0, available from : ehcache/ehcache3/releases [//]: # (needle_version)

As of this writing, ehcache 3.9.x seems incompatible with Terracotta when run using:

docker run --rm --name tc-server -p 9410:9410 -d \
 --env OFFHEAP_RESOURCE1_NAME=main \
 --env OFFHEAP_RESOURCE2_NAME=extra \
 --env OFFHEAP_RESOURCE1_SIZE=256 \
 --env OFFHEAP_RESOURCE2_SIZE=16 \
terracotta/terracotta-server-oss:5.6.4

Error message from the ehcache 3.9.x client (3.9.2 to be exact):

2021-02-26 15:21:05,830 ERROR [com.tc.object.handshakemanager.ClientHandshakeManagerImpl] - <ClientID[13]: Interrupted while waiting for handshake>
org.terracotta.exception.ConnectionClosedException: Entity: org.terracotta.lease.LeaseAcquirer:SystemLeaseAcquirer Connection closed before sending message
	at com.tc.object.ClientEntityManagerImpl.throwClosedExceptionOnMessage(ClientEntityManagerImpl.java:514)
	at com.tc.object.ClientEntityManagerImpl.queueInFlightMessage(ClientEntityManagerImpl.java:656)
	at com.tc.object.ClientEntityManagerImpl.queueInFlightMessage(ClientEntityManagerImpl.java:626)
	at com.tc.object.ClientEntityManagerImpl.sendMessageWhileBusy(ClientEntityManagerImpl.java:597)
	at com.tc.object.ClientEntityManagerImpl.internalRelease(ClientEntityManagerImpl.java:577)
	at com.tc.object.ClientEntityManagerImpl.internalLookup(ClientEntityManagerImpl.java:563)
	at com.tc.object.ClientEntityManagerImpl.fetchEntity(ClientEntityManagerImpl.java:188)
	at com.terracotta.connection.entity.TerracottaEntityRef.fetchEntity(TerracottaEntityRef.java:82)
	at org.terracotta.lease.LeaseMaintainerFactory.getLeaseAcquirer(LeaseMaintainerFactory.java:63)
	at org.terracotta.lease.LeaseMaintainerFactory.createLeaseMaintainer(LeaseMaintainerFactory.java:46)
	at org.terracotta.lease.connection.BasicLeasedConnection.create(BasicLeasedConnection.java:40)
	at org.terracotta.lease.connection.LeasedConnectionServiceImpl.createLeasedConnection(LeasedConnectionServiceImpl.java:58)
	at org.terracotta.lease.connection.LeasedConnectionServiceImpl.connect(LeasedConnectionServiceImpl.java:47)
	at org.terracotta.lease.connection.LeasedConnectionFactory.getLeasedConnection(LeasedConnectionFactory.java:71)
	at org.terracotta.lease.connection.LeasedConnectionFactory.connect(LeasedConnectionFactory.java:47)
	at org.ehcache.clustered.client.internal.ConnectionSource$ClusterUri.connect(ConnectionSource.java:71)
	at org.ehcache.clustered.client.internal.service.ConnectionState.connect(ConnectionState.java:151)
	at org.ehcache.clustered.client.internal.service.ConnectionState.initClusterConnection(ConnectionState.java:128)
	at org.ehcache.clustered.client.internal.service.DefaultClusteringService.start(DefaultClusteringService.java:122)
	at org.ehcache.core.spi.ServiceLocator.startAllServices(ServiceLocator.java:128)
	at org.ehcache.core.EhcacheManager.init(EhcacheManager.java:577)
	at org.ehcache.jsr107.EhcacheCachingProvider.createCacheManager(EhcacheCachingProvider.java:159)
	at org.ehcache.jsr107.EhcacheCachingProvider.getCacheManager(EhcacheCachingProvider.java:134)
	at org.ehcache.jsr107.EhcacheCachingProvider.getCacheManager(EhcacheCachingProvider.java:97)

Terracotta server logs:

2021-02-26 11:21:07.971 ERROR   --- [orkerComm # 0_R] c.t.n.protocol.tcm.TCMessageHydrateSink : Error hydrating message of type CLIENT_HANDSHAKE_MESSAGE
com.tc.net.protocol.tcm.UnknownNameException: unknown name: 10 for message class com.tc.object.msg.ClientHandshakeMessageImpl
	at com.tc.net.protocol.tcm.TCMessageImpl.hydrate(TCMessageImpl.java:179)
	at com.tc.net.protocol.tcm.TCMessageHydrateSink.putMessage(TCMessageHydrateSink.java:36)
	at com.tc.net.protocol.tcm.TCMessageRouterImpl.putMessage(TCMessageRouterImpl.java:64)
	at com.tc.net.protocol.tcm.AbstractMessageChannel.receive(AbstractMessageChannel.java:215)
	at com.tc.net.protocol.transport.MessageTransportBase.receiveToReceiveLayer(MessageTransportBase.java:138)
	at com.tc.net.protocol.transport.ServerMessageTransport.receiveTransportMessageImpl(ServerMessageTransport.java:101)
	at com.tc.net.protocol.transport.MessageTransportBase.receiveTransportMessage(MessageTransportBase.java:113)
	at com.tc.net.protocol.transport.ServerStackProvider$MessageSink.putMessage(ServerStackProvider.java:267)
	at com.tc.net.protocol.transport.WireProtocolAdaptorImpl.addReadData(WireProtocolAdaptorImpl.java:75)
	at com.tc.net.core.TCConnectionImpl.addNetworkData(TCConnectionImpl.java:827)
	at com.tc.net.core.TCConnectionImpl.doReadFromBufferInternal(TCConnectionImpl.java:488)
	at com.tc.net.core.TCConnectionImpl.doReadFromBuffer(TCConnectionImpl.java:342)
	at com.tc.net.core.TCConnectionImpl.doReadInternal(TCConnectionImpl.java:325)
	at com.tc.net.core.TCConnectionImpl.doRead(TCConnectionImpl.java:309)
	at com.tc.net.core.CoreNIOServices$CommThread.selectLoop(CoreNIOServices.java:667)
	at com.tc.net.core.CoreNIOServices$CommThread.run(CoreNIOServices.java:371)
2021-02-26 11:21:07.979  INFO   --- [n 0.0.0.0:9410)] c.t.n.p.transport.ServerStackProvider   : "Client Cannot Reconnect. Connection attempts from the Terracotta node at 172.17.0.1:59080 are being rejected by the Terracotta server array. Reason: Stack for ConnectionID(14.fb6fcd7e24ab4abba9d0ced613095dcc.4211040f-b39f-48db-911e-c6ddc26afcc9-177de11f475.Permanent) not found."

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions