Skip to content
This repository was archived by the owner on Mar 11, 2022. It is now read-only.

Commit 1131164

Browse files
authored
[fix] Backport issues found with #67 (#71)
1 parent ec5c76d commit 1131164

File tree

3 files changed

+11
-2
lines changed

3 files changed

+11
-2
lines changed

cloudstate/discovery/server.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,8 +138,9 @@ func (s *EntityDiscoveryServer) RegisterCRDTEntity(entity *crdt.Entity, config p
138138
return fmt.Errorf("failed to resolveFileDescriptor for DescriptorConfig: %+v: %w", config, err)
139139
}
140140
s.entitySpec.Entities = append(s.entitySpec.Entities, &protocol.Entity{
141-
EntityType: protocol.CRDT,
142-
ServiceName: entity.ServiceName.String(),
141+
EntityType: protocol.CRDT,
142+
ServiceName: entity.ServiceName.String(),
143+
PersistenceId: entity.ServiceName.String(), // make sure CRDT entities have unique keys per service
143144
})
144145
return s.updateSpec()
145146
}

cloudstate/eventsourced/context.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,13 @@ func (c *Context) fail(err error) {
9494
c.failed = err
9595
}
9696

97+
func (c *Context) reset() {
98+
c.events = nil
99+
c.failed = nil
100+
c.forward = nil
101+
c.sideEffects = nil
102+
}
103+
97104
func (c *Context) resetSnapshotEvery() {
98105
c.shouldSnapshot = false
99106
}

cloudstate/eventsourced/server.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,7 @@ func (s *Server) handle(stream entity.EventSourced_HandleServer) error {
128128
// see: https://github.com/cloudstateio/cloudstate/pull/119#discussion_r444851439
129129
return fmt.Errorf("failed context was not reported: %w", r.context.failed)
130130
}
131+
r.context.reset()
131132
msg, err := r.stream.Recv()
132133
switch err {
133134
case nil:

0 commit comments

Comments
 (0)