dapr / dapr/components-contrib

Add support for Hazelcast 4.X, 5.X in state store

Open
#3,072 3 comments 0 reactions 1 assignee Claimed by @mukundansundar View on GitHub
good first issue help wanted kind/enhancement
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.