dapr / dapr/components-contrib
Add support for Hazelcast 4.X, 5.X in state store
- Dominant language
- Go
- Stars
- 602
- Forks
- 580
- Avg merge
- 4d 9h
- Merged PRs (30d)
- 6
Description
## Expected Behavior
Dapr application starts with Hazelcast as a state store.
## Actual Behavior
State store component loading failed, resulting in application termination
## Steps to Reproduce the Problem
`Dapr CLI version: 1.3.0
Dapr Runtime version: 1.11.2
Hazelcast version: 5.3.1`
1. Create component.yml for hazelcast state store
```yml
apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
name: transaction-state-store
spec:
type: state.hazelcast
version: v1
metadata:
- name: hazelcastServers
value: localhost:5701
- name: hazelcastMap
value: transactions
```
2. Start Hazelcast Server
```bash
docker run -e JAVA_OPTS="-Dhazelcast.local.publicAddress=127.0.0.1:5701" -p 5701:5701 hazelcast/hazelcast
```
3. Start dapr application with hazelcast component
## Logs
**Dapr**
```
INFO[0000] Loading components… app_id=hazelcast-demo-producer instance=Prateeks-MacBook-Air.local scope=dapr.runtime type=log ver=1.11.2
INFO[0000] Waiting for all outstanding components to be processed app_id=hazelcast-demo-producer instance=Prateeks-MacBook-Air.local scope=dapr.runtime type=log ver=1.11.2
2023/08/09 16:41:16 github.com/hazelcast/hazelcast-go-client/internal.(*lifecycleService).fireLifecycleEvent
INFO: hz.client_1 [dev] [0.5-SNAPSHOT] HazelcastClient 0.5-SNAPSHOT is STARTING
2023/08/09 16:41:16 github.com/hazelcast/hazelcast-go-client/internal.(*clusterService).connectToAddress
INFO: hz.client_1 [dev] [0.5-SNAPSHOT] Trying to connect to localhost:5701 as owner member.
2023/08/09 16:41:16 github.com/hazelcast/hazelcast-go-client/internal.(*Connection).close
WARN: hz.client_1 [dev] [0.5-SNAPSHOT] Connection : %!v(PANIC=String method: interface conversion: interface is nil, not core.Address) closed, err: EOF
2023/08/09 16:41:17 github.com/hazelcast/hazelcast-go-client/internal.(*clusterService).connectToAddress
WARN: hz.client_1 [dev] [0.5-SNAPSHOT] Error during initial connection to localhost:5701 error: packet is not sent
2023/08/09 16:41:20 github.com/hazelcast/hazelcast-go-client/internal.(*clusterService).connectToAddress
INFO: hz.client_1 [dev] [0.5-SNAPSHOT] Trying to connect to localhost:5701 as owner member.
2023/08/09 16:41:21 github.com/hazelcast/hazelcast-go-client/internal.(*Connection).close
WARN: hz.client_1 [dev] [0.5-SNAPSHOT] Connection : %!v(PANIC=String method: interface conversion: interface is nil, not core.Address) closed, err: EOF
WARN[0005] Error processing component, daprd process will exit gracefully app_id=hazelcast-demo-producer instance=Prateeks-MacBook-Air.local scope=dapr.runtime type=log ver=1.11.2
FATA[0005] process component transaction-state-store error: [INIT_COMPONENT_FAILURE]: initialization error occurred for transaction-state-store (state.hazelcast/v1): init timeout for component transaction-state-store exceeded after 5s app_id=hazelcast-demo-producer instance=Prateeks-MacBook-Air.local scope=dapr.runtime type=log ver=1.11.2
❌ The daprd process exited with error code: exit status 1
```
**Hazelcast**
```
2023-08-09 11:11:16,947 [ WARN] [hz.mystifying_cartwright.IO.thread-in-0] [c.h.i.s.t.TcpServerConnection]: [127.0.0.1]:5701 [dev] [5.3.1] Connection[id=1, /172.17.0.5:5701->/172.17.0.1:61926, qualifier=null, endpoint=null, remoteUuid=null, alive=false, connectionType=NONE, planeIndex=-1] closed. Reason: Exception in Connection[id=1, /172.17.0.5:5701->/172.17.0.1:61926, qualifier=null, endpoint=null, remoteUuid=null, alive=true, connectionType=NONE, planeIndex=-1], thread=hz.mystifying_cartwright.IO.thread-in-0
java.lang.IllegalStateException: Unknown protocol: CB2
at com.hazelcast.internal.server.tcp.UnifiedProtocolDecoder.onRead(UnifiedProtocolDecoder.java:132) ~[hazelcast-5.3.1.jar:5.3.1]
at com.hazelcast.internal.networking.nio.NioInboundPipeline.process(NioInboundPipeline.java:137) ~[hazelcast-5.3.1.jar:5.3.1]
at com.hazelcast.internal.networking.nio.NioPipeline.lambda$start$0(NioPipeline.java:127) ~[hazelcast-5.3.1.jar:5.3.1]
at com.hazelcast.internal.networking.nio.NioThread.processTaskQueue(NioThread.java:355) [hazelcast-5.3.1.jar:5.3.1]
at com.hazelcast.internal.networking.nio.NioThread.selectLoop(NioThread.java:290) [hazelcast-5.3.1.jar:5.3.1]
at com.hazelcast.internal.networking.nio.NioThread.executeRun(NioThread.java:249) [hazelcast-5.3.1.jar:5.3.1]
at com.hazelcast.internal.util.executor.HazelcastManagedThread.run(HazelcastManagedThread.java:111) [hazelcast-5.3.1.jar:5.3.1]
2023-08-09 11:11:21,011 [ WARN] [hz.mystifying_cartwright.IO.thread-in-1] [c.h.i.s.t.TcpServerConnection]: [127.0.0.1]:5701 [dev] [5.3.1] Connection[id=2, /172.17.0.5:5701->/172.17.0.1:61930, qualifier=null, endpoint=null, remoteUuid=null, alive=false, connectionType=NONE, planeIndex=-1] closed. Reason: Exception in Connection[id=2, /172.17.0.5:5701->/172.17.0.1:61930, qualifier=null, endpoint=null, remoteUuid=null, alive=true, connectionType=NONE, planeIndex=-1], thread=hz.mystifying_cartwright.IO.thread-in-1
java.lang.IllegalStateException: Unknown protocol: CB2
at com.hazelcast.internal.server.tcp.UnifiedProtocolDecoder.onRead(UnifiedProtocolDecoder.java:132) ~[hazelcast-5.3.1.jar:5.3.1]
at com.hazelcast.internal.networking.nio.NioInboundPipeline.process(NioInboundPipeline.java:137) ~[hazelcast-5.3.1.jar:5.3.1]
at com.hazelcast.internal.networking.nio.NioPipeline.lambda$start$0(NioPipeline.java:127) ~[hazelcast-5.3.1.jar:5.3.1]
at com.hazelcast.internal.networking.nio.NioThread.processTaskQueue(NioThread.java:355) [hazelcast-5.3.1.jar:5.3.1]
at com.hazelcast.internal.networking.nio.NioThread.selectLoop(NioThread.java:290) [hazelcast-5.3.1.jar:5.3.1]
at com.hazelcast.internal.networking.nio.NioThread.executeRun(NioThread.java:249) [hazelcast-5.3.1.jar:5.3.1]
at com.hazelcast.internal.util.executor.HazelcastManagedThread.run(HazelcastManagedThread.java:111) [hazelcast-5.3.1.jar:5.3.1]
```
Contributor guide
Assessment
This issue has not been assessed yet.