Add better error handling

This commit is contained in:
mcrakhman 2022-09-28 19:55:47 +02:00 committed by Mikhail Iudin
parent b8bdbacbce
commit 2347591c69
No known key found for this signature in database
GPG Key ID: FAAAA8BAABDFF1C0
8 changed files with 97 additions and 69 deletions

View File

@ -2,12 +2,15 @@ package cache
import ( import (
"context" "context"
"errors"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/synctree" "github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/synctree"
"github.com/anytypeio/go-anytype-infrastructure-experiments/pkg/acl/tree" "github.com/anytypeio/go-anytype-infrastructure-experiments/pkg/acl/tree"
) )
const CName = "commonspace.cache" const CName = "commonspace.cache"
var ErrSpaceNotFound = errors.New("space not found")
type TreeContainer interface { type TreeContainer interface {
Tree() tree.ObjectTree Tree() tree.ObjectTree
} }

View File

@ -40,8 +40,6 @@ type Space interface {
Id() string Id() string
SpaceSyncRpc() RpcHandler SpaceSyncRpc() RpcHandler
SyncService() syncservice.SyncService
DiffService() diffservice.DiffService
DeriveTree(ctx context.Context, payload tree.ObjectTreeCreatePayload, listener synctree.UpdateListener) (tree.ObjectTree, error) DeriveTree(ctx context.Context, payload tree.ObjectTreeCreatePayload, listener synctree.UpdateListener) (tree.ObjectTree, error)
CreateTree(ctx context.Context, payload tree.ObjectTreeCreatePayload, listener synctree.UpdateListener) (tree.ObjectTree, error) CreateTree(ctx context.Context, payload tree.ObjectTreeCreatePayload, listener synctree.UpdateListener) (tree.ObjectTree, error)

View File

@ -8,6 +8,7 @@ import (
var ( var (
errGroup = rpcerr.ErrGroup(ErrCodes_ErrorOffset) errGroup = rpcerr.ErrGroup(ErrCodes_ErrorOffset)
ErrUnexpected = errGroup.Register(errors.New("Unexpected error"), uint64(ErrCodes_Unexpected)) ErrUnexpected = errGroup.Register(errors.New("unexpected error"), uint64(ErrCodes_Unexpected))
ErrSpaceMissing = errGroup.Register(errors.New("Space is missing"), uint64(ErrCodes_SpaceMissing)) ErrSpaceMissing = errGroup.Register(errors.New("space is missing"), uint64(ErrCodes_SpaceMissing))
ErrSpaceExists = errGroup.Register(errors.New("space exists"), uint64(ErrCodes_SpaceMissing))
) )

View File

@ -8,7 +8,8 @@ import "pkg/acl/aclrecordproto/protos/aclrecord.proto";
enum ErrCodes { enum ErrCodes {
Unexpected = 0; Unexpected = 0;
SpaceMissing = 1; SpaceMissing = 1;
ErrorOffset = 16; SpaceExists = 2;
ErrorOffset = 100;
} }
service Space { service Space {

View File

@ -29,19 +29,22 @@ type ErrCodes int32
const ( const (
ErrCodes_Unexpected ErrCodes = 0 ErrCodes_Unexpected ErrCodes = 0
ErrCodes_SpaceMissing ErrCodes = 1 ErrCodes_SpaceMissing ErrCodes = 1
ErrCodes_ErrorOffset ErrCodes = 16 ErrCodes_SpaceExists ErrCodes = 2
ErrCodes_ErrorOffset ErrCodes = 100
) )
var ErrCodes_name = map[int32]string{ var ErrCodes_name = map[int32]string{
0: "Unexpected", 0: "Unexpected",
1: "SpaceMissing", 1: "SpaceMissing",
16: "ErrorOffset", 2: "SpaceExists",
100: "ErrorOffset",
} }
var ErrCodes_value = map[string]int32{ var ErrCodes_value = map[string]int32{
"Unexpected": 0, "Unexpected": 0,
"SpaceMissing": 1, "SpaceMissing": 1,
"ErrorOffset": 16, "SpaceExists": 2,
"ErrorOffset": 100,
} }
func (x ErrCodes) String() string { func (x ErrCodes) String() string {
@ -940,64 +943,65 @@ func init() {
} }
var fileDescriptor_5855f4ef9cf24cdb = []byte{ var fileDescriptor_5855f4ef9cf24cdb = []byte{
// 911 bytes of a gzipped FileDescriptorProto // 919 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x56, 0xcd, 0x8e, 0x1b, 0x45, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x56, 0xcd, 0x8e, 0x1b, 0x45,
0x10, 0xf6, 0x78, 0x7f, 0x6c, 0x97, 0xf7, 0xc7, 0xe9, 0xb0, 0x61, 0x70, 0x88, 0x63, 0xe6, 0x80, 0x10, 0xf6, 0x78, 0xbd, 0x6b, 0xbb, 0xbc, 0x3f, 0x4e, 0x87, 0x0d, 0x83, 0x43, 0x1c, 0x33, 0x07,
0x56, 0x20, 0xd6, 0xc8, 0x1c, 0x02, 0x2c, 0x08, 0x25, 0xcb, 0xae, 0x6c, 0x85, 0x90, 0xa8, 0x37, 0xb4, 0x02, 0xb1, 0x46, 0xe6, 0x10, 0x60, 0x91, 0x50, 0xb2, 0x78, 0x65, 0x2b, 0xe4, 0x47, 0xbd,
0x01, 0x09, 0x71, 0xe9, 0xcc, 0xd4, 0xda, 0x43, 0xc6, 0xd3, 0x43, 0x77, 0x9b, 0xc5, 0x4f, 0xc0, 0x09, 0x48, 0x88, 0x4b, 0x67, 0xa6, 0xd6, 0x1e, 0x32, 0x9e, 0x1e, 0xa6, 0xdb, 0x6c, 0xfc, 0x04,
0x05, 0x24, 0x9e, 0x00, 0x89, 0x67, 0xe1, 0xc2, 0x31, 0xc7, 0x1c, 0xd1, 0xee, 0x8b, 0xa0, 0xae, 0x5c, 0x40, 0xe2, 0x09, 0x90, 0x78, 0x16, 0x2e, 0x1c, 0x73, 0xcc, 0x11, 0xed, 0xbe, 0x08, 0xea,
0x99, 0xf1, 0x8c, 0x1d, 0x27, 0x7b, 0xcc, 0xc5, 0xd3, 0x55, 0xfd, 0x55, 0xf5, 0xd7, 0xf5, 0x55, 0x9a, 0x19, 0xcf, 0xd8, 0x4c, 0xb2, 0xc7, 0x5c, 0x3c, 0x5d, 0x55, 0x5f, 0x55, 0x7f, 0xf5, 0xd3,
0x77, 0x1b, 0x3e, 0xf5, 0xe5, 0x64, 0x22, 0xe3, 0x5e, 0xfa, 0xd1, 0x89, 0xf0, 0xb1, 0x47, 0xbf, 0xdd, 0x86, 0xcf, 0x5d, 0x39, 0x9b, 0xc9, 0xb0, 0x9f, 0x7c, 0x54, 0x24, 0x5c, 0xec, 0xd3, 0xaf,
0x7a, 0x16, 0xfb, 0x89, 0x92, 0x46, 0xf6, 0xe8, 0x57, 0x17, 0xde, 0x03, 0x72, 0xb0, 0xba, 0x88, 0x5a, 0x84, 0x6e, 0x14, 0x4b, 0x2d, 0xfb, 0xf4, 0xab, 0x72, 0xed, 0x21, 0x29, 0x58, 0x43, 0x84,
0x67, 0xa7, 0xd6, 0xd7, 0xee, 0x25, 0xcf, 0x46, 0x3d, 0xe1, 0x47, 0x3d, 0xa3, 0x10, 0xfd, 0xb1, 0x8b, 0x53, 0xa3, 0xeb, 0xf4, 0xa3, 0xe7, 0x93, 0xbe, 0x70, 0x83, 0xbe, 0x8e, 0x11, 0xdd, 0xa9,
0x88, 0x47, 0xb8, 0x10, 0x59, 0xb8, 0xd3, 0xd0, 0xf6, 0x47, 0x79, 0x80, 0xf0, 0x23, 0x85, 0xbe, 0x08, 0x27, 0xb8, 0xe2, 0x99, 0xab, 0x13, 0xd7, 0xce, 0x27, 0x99, 0x83, 0x70, 0x83, 0x18, 0x5d,
0x54, 0xc1, 0x02, 0x7e, 0xee, 0x4d, 0xe1, 0xde, 0x10, 0xb6, 0x07, 0x28, 0x82, 0xd3, 0x59, 0xec, 0x19, 0x7b, 0x2b, 0xf8, 0xa5, 0x36, 0x81, 0x3b, 0x63, 0xd8, 0x19, 0xa1, 0xf0, 0x4e, 0x17, 0xa1,
0x73, 0x9b, 0x85, 0x31, 0x58, 0x3f, 0x53, 0x72, 0xe2, 0x3a, 0x5d, 0x67, 0x7f, 0x9d, 0xd3, 0x98, 0xcb, 0x4d, 0x14, 0xc6, 0xa0, 0x76, 0x16, 0xcb, 0x99, 0x6d, 0xf5, 0xac, 0x83, 0x1a, 0xa7, 0x35,
0xed, 0x40, 0xd5, 0x48, 0xb7, 0x4a, 0x9e, 0xaa, 0x91, 0xec, 0x2d, 0xd8, 0x88, 0xc2, 0x49, 0x68, 0xdb, 0x85, 0xaa, 0x96, 0x76, 0x95, 0x34, 0x55, 0x2d, 0xd9, 0x3b, 0xb0, 0x19, 0xf8, 0x33, 0x5f,
0xdc, 0xb5, 0xae, 0xb3, 0xbf, 0xcd, 0x53, 0xc3, 0x3b, 0x87, 0x9d, 0x79, 0x2a, 0xd4, 0xd3, 0xc8, 0xdb, 0x1b, 0x3d, 0xeb, 0x60, 0x87, 0x27, 0x82, 0x73, 0x0e, 0xbb, 0xcb, 0x50, 0xa8, 0xe6, 0x81,
0xd8, 0x5c, 0x63, 0xa1, 0xc7, 0x94, 0x6b, 0x8b, 0xd3, 0x98, 0x1d, 0x42, 0x1d, 0x23, 0x9c, 0x60, 0x36, 0xb1, 0xa6, 0x42, 0x4d, 0x29, 0xd6, 0x36, 0xa7, 0x35, 0x3b, 0x82, 0x06, 0x06, 0x38, 0xc3,
0x6c, 0xb4, 0x5b, 0xed, 0xae, 0xed, 0x37, 0xfb, 0xb7, 0x0f, 0xf2, 0xdd, 0x1e, 0x2c, 0xc6, 0x1f, 0x50, 0x2b, 0xbb, 0xda, 0xdb, 0x38, 0x68, 0x0d, 0x6e, 0x1f, 0x66, 0xd9, 0x1e, 0xae, 0xfa, 0x0f,
0xa7, 0x38, 0x3e, 0x0f, 0xb0, 0x0b, 0xfb, 0x72, 0x1a, 0xcf, 0x17, 0x26, 0xc3, 0x3b, 0x84, 0xbd, 0x13, 0x1c, 0x5f, 0x3a, 0x98, 0x8d, 0x5d, 0x39, 0x0f, 0x97, 0x1b, 0x93, 0xe0, 0x1c, 0xc1, 0x7e,
0x95, 0x81, 0x96, 0x77, 0x18, 0xd0, 0xea, 0x0d, 0x5e, 0x0d, 0x03, 0xe2, 0x83, 0x22, 0xa0, 0x9d, 0xa9, 0xa3, 0xe1, 0xed, 0x7b, 0xb4, 0x7b, 0x93, 0x57, 0x7d, 0x8f, 0xf8, 0xa0, 0xf0, 0x28, 0x93,
0x34, 0x38, 0x8d, 0xbd, 0x1f, 0x61, 0xb7, 0x08, 0xfe, 0x79, 0x8a, 0xda, 0x30, 0x17, 0x6a, 0x24, 0x26, 0xa7, 0xb5, 0xf3, 0x23, 0xec, 0xe5, 0xce, 0x3f, 0xcf, 0x51, 0x69, 0x66, 0x43, 0x9d, 0x1a,
0xc8, 0x30, 0x8f, 0xcd, 0x4d, 0xd6, 0x83, 0x4d, 0x65, 0xab, 0x94, 0x53, 0x7f, 0x7b, 0x05, 0x75, 0x32, 0xce, 0x7c, 0x33, 0x91, 0xf5, 0x61, 0x2b, 0x36, 0x55, 0xca, 0xa8, 0xbf, 0x5b, 0x42, 0xdd,
0x3b, 0xcf, 0x33, 0x98, 0x77, 0x02, 0xad, 0x12, 0xb5, 0x44, 0xc6, 0x1a, 0x59, 0x1f, 0x6a, 0x8a, 0xd8, 0x79, 0x0a, 0x73, 0x4e, 0xa0, 0x5d, 0xa0, 0x16, 0xc9, 0x50, 0x21, 0x1b, 0x40, 0x3d, 0x26,
0x68, 0x6a, 0xd7, 0xa1, 0x2c, 0xee, 0xab, 0x0a, 0xc0, 0x73, 0xa0, 0x77, 0xe1, 0xc0, 0xb5, 0x87, 0x9a, 0xca, 0xb6, 0x28, 0x8a, 0xfd, 0xba, 0x02, 0xf0, 0x0c, 0xe8, 0x5c, 0x58, 0x70, 0xed, 0xd1,
0x4f, 0x7f, 0x42, 0xdf, 0xd8, 0xd9, 0x07, 0xa8, 0xb5, 0x18, 0xe1, 0x6b, 0x88, 0x7e, 0x0e, 0x35, 0xb3, 0x9f, 0xd0, 0xd5, 0xc6, 0xfa, 0x00, 0x95, 0x12, 0x13, 0x7c, 0x03, 0xd1, 0x2f, 0xa1, 0xee,
0x5f, 0xc6, 0x06, 0x63, 0x43, 0x9b, 0x6d, 0xf6, 0xbb, 0xc5, 0x1a, 0x45, 0x9e, 0xa3, 0x14, 0xf2, 0xca, 0x50, 0x63, 0xa8, 0x29, 0xd9, 0xd6, 0xa0, 0x97, 0xef, 0x91, 0xc7, 0x39, 0x4e, 0x20, 0xdf,
0x9d, 0x88, 0xa6, 0xc8, 0xf3, 0x00, 0xf6, 0x15, 0x80, 0x92, 0xd2, 0x1c, 0x51, 0x57, 0x51, 0xa5, 0x89, 0x60, 0x8e, 0x3c, 0x73, 0x60, 0x5f, 0x03, 0xc4, 0x52, 0xea, 0x63, 0x9a, 0x2a, 0xaa, 0xb4,
0xad, 0x46, 0xa5, 0x46, 0xe3, 0xe2, 0xfc, 0xb1, 0x42, 0x4c, 0x01, 0xdf, 0x87, 0x66, 0x3c, 0x0c, 0xe9, 0x51, 0x61, 0xd0, 0xb8, 0x38, 0x7f, 0x12, 0x23, 0x26, 0x80, 0xef, 0x7d, 0x3d, 0x1d, 0x7b,
0x78, 0x29, 0x84, 0xdd, 0x80, 0x4d, 0x8b, 0x1e, 0x06, 0xee, 0x3a, 0xb1, 0xca, 0x2c, 0xd6, 0x01, 0xbc, 0xe0, 0xc2, 0x6e, 0xc0, 0x96, 0x41, 0x8f, 0x3d, 0xbb, 0x46, 0xac, 0x52, 0x89, 0x75, 0x01,
0x30, 0x4a, 0xf8, 0xcf, 0xc2, 0x78, 0x34, 0x0c, 0xdc, 0x0d, 0x9a, 0x2b, 0x79, 0xbc, 0x7f, 0xaa, 0x74, 0x2c, 0xdc, 0xe7, 0x7e, 0x38, 0x19, 0x7b, 0xf6, 0x26, 0xd9, 0x0a, 0x1a, 0xe7, 0xef, 0x2a,
0x70, 0x63, 0x35, 0x39, 0xf6, 0x05, 0x80, 0x55, 0xeb, 0x49, 0x12, 0x08, 0x83, 0xb4, 0xd9, 0x66, 0xdc, 0x28, 0x27, 0xc7, 0xbe, 0x02, 0x30, 0xdd, 0x7a, 0x1a, 0x79, 0x42, 0x23, 0x25, 0xdb, 0x1a,
0xbf, 0xbd, 0xbc, 0xa5, 0xc1, 0x1c, 0x31, 0xa8, 0xf0, 0x12, 0x9e, 0xdd, 0x87, 0xdd, 0xb3, 0x69, 0x74, 0xd6, 0x53, 0x1a, 0x2d, 0x11, 0xa3, 0x0a, 0x2f, 0xe0, 0xd9, 0x7d, 0xd8, 0x3b, 0x9b, 0x07,
0x14, 0x95, 0x34, 0xce, 0xaa, 0x72, 0x7b, 0x39, 0xc5, 0xc9, 0x22, 0x6c, 0x50, 0xe1, 0xcb, 0x91, 0x41, 0xa1, 0xc7, 0x69, 0x55, 0x6e, 0xaf, 0x87, 0x38, 0x59, 0x85, 0x8d, 0x2a, 0x7c, 0xdd, 0x93,
0xec, 0x5b, 0x68, 0x15, 0xae, 0x54, 0xd2, 0xac, 0x48, 0xdd, 0x57, 0x67, 0x4b, 0x71, 0x83, 0x0a, 0x3d, 0x84, 0x76, 0xae, 0x4a, 0x5a, 0x9a, 0x16, 0xa9, 0xf7, 0xfa, 0x68, 0x09, 0x6e, 0x54, 0xe1,
0x7f, 0x29, 0x96, 0x1d, 0xc3, 0x36, 0x2a, 0x25, 0xd5, 0x3c, 0xd9, 0x3a, 0x25, 0xbb, 0xb5, 0x9c, 0xff, 0xf3, 0x65, 0x43, 0xd8, 0xc1, 0x38, 0x96, 0xf1, 0x32, 0x58, 0x8d, 0x82, 0xdd, 0x5a, 0x0f,
0xec, 0xb8, 0x0c, 0x1a, 0x54, 0xf8, 0x62, 0xd4, 0xbd, 0x1a, 0x6c, 0xfc, 0x62, 0x4b, 0xe5, 0xfd, 0x36, 0x2c, 0x82, 0x46, 0x15, 0xbe, 0xea, 0x75, 0xaf, 0x0e, 0x9b, 0xbf, 0x98, 0x52, 0x39, 0xbf,
0xe6, 0x40, 0x6b, 0xb9, 0x1e, 0xf6, 0xe0, 0xd8, 0x7a, 0xa4, 0x1d, 0xd7, 0xe0, 0xa9, 0xc1, 0x3e, 0x5a, 0xd0, 0x5e, 0xaf, 0x87, 0x39, 0x38, 0xa6, 0x1e, 0xc9, 0xc4, 0x35, 0x79, 0x22, 0xb0, 0x2f,
0x83, 0x5a, 0x2a, 0x69, 0x71, 0x14, 0xaf, 0x90, 0x39, 0xc7, 0x33, 0x0f, 0xb6, 0x74, 0x2c, 0x12, 0xa0, 0x9e, 0xb4, 0x34, 0x3f, 0x8a, 0x57, 0xb4, 0x39, 0xc3, 0x33, 0x07, 0xb6, 0x55, 0x28, 0x22,
0x3d, 0x96, 0xe6, 0x91, 0x30, 0x63, 0x77, 0x8d, 0xf2, 0x2e, 0xf8, 0xbc, 0xdf, 0x1d, 0xd8, 0x5b, 0x35, 0x95, 0xfa, 0xb1, 0xd0, 0x53, 0x7b, 0x83, 0xe2, 0xae, 0xe8, 0x9c, 0xdf, 0x2c, 0xd8, 0x2f,
0x59, 0xd6, 0x37, 0x43, 0xe7, 0x0f, 0x27, 0x6f, 0xaf, 0x65, 0x5d, 0xde, 0x0c, 0x9f, 0x0f, 0xe1, 0x2d, 0xeb, 0xdb, 0xa1, 0xf3, 0xbb, 0x95, 0x8d, 0xd7, 0x7a, 0x5f, 0xde, 0x0e, 0x9f, 0x8f, 0xe1,
0xfa, 0x0a, 0x65, 0x2d, 0x17, 0x52, 0x36, 0x3b, 0xd2, 0xa9, 0xe1, 0xfd, 0xe5, 0x40, 0xeb, 0xd1, 0x7a, 0x49, 0x67, 0x0d, 0x17, 0xea, 0x6c, 0x7a, 0xa4, 0x13, 0xc1, 0xf9, 0xd3, 0x82, 0xf6, 0xe3,
0x54, 0x8f, 0xa9, 0x23, 0xae, 0xbe, 0xa8, 0xee, 0x40, 0x93, 0x86, 0xb6, 0x05, 0x50, 0x65, 0xdd, 0xb9, 0x9a, 0xd2, 0x44, 0x5c, 0x7d, 0x51, 0xdd, 0x81, 0x16, 0x2d, 0xcd, 0x08, 0x60, 0x9c, 0x4e,
0xbe, 0x57, 0xb4, 0xd4, 0x69, 0x31, 0xc9, 0xcb, 0x48, 0x76, 0x07, 0x6a, 0xc2, 0x8f, 0xb8, 0x94, 0xfb, 0x7e, 0x3e, 0x52, 0xa7, 0xb9, 0x91, 0x17, 0x91, 0xec, 0x0e, 0xd4, 0x85, 0x1b, 0x70, 0x29,
0x26, 0x6b, 0xea, 0x5b, 0x07, 0xc5, 0x93, 0xc1, 0xc5, 0xf9, 0xdd, 0xa3, 0x6f, 0x38, 0x19, 0xf9, 0x75, 0x3a, 0xd4, 0xb7, 0x0e, 0xf3, 0x27, 0x83, 0x8b, 0xf3, 0xbb, 0xc7, 0xdf, 0x72, 0x12, 0xb2,
0x8e, 0x33, 0xb4, 0x77, 0x1d, 0xae, 0x95, 0xf8, 0xa5, 0x7b, 0xf1, 0xfe, 0x76, 0xa0, 0x59, 0x5a, 0x8c, 0x53, 0xb4, 0x73, 0x1d, 0xae, 0x15, 0xf8, 0x25, 0xb9, 0x38, 0x7f, 0x59, 0xd0, 0x2a, 0x6c,
0x8a, 0xb5, 0xa1, 0x1e, 0x06, 0x18, 0x9b, 0xd0, 0xcc, 0xb2, 0x47, 0x61, 0x6e, 0xb3, 0x77, 0xa1, 0xc5, 0x3a, 0xd0, 0xf0, 0x3d, 0x0c, 0xb5, 0xaf, 0x17, 0xe9, 0xa3, 0xb0, 0x94, 0xd9, 0xfb, 0xd0,
0x61, 0xc2, 0x09, 0x6a, 0x23, 0x26, 0x09, 0x11, 0x5e, 0xe3, 0x85, 0xc3, 0xce, 0x12, 0xcd, 0xc7, 0xd4, 0xfe, 0x0c, 0x95, 0x16, 0xb3, 0x88, 0x08, 0x6f, 0xf0, 0x5c, 0x61, 0xac, 0x44, 0xf3, 0xc9,
0xb3, 0x24, 0x3d, 0x6e, 0x0d, 0x5e, 0x38, 0xd8, 0xfb, 0xb0, 0xa3, 0x30, 0x89, 0x42, 0x5f, 0x98, 0x22, 0x4a, 0x8e, 0x5b, 0x93, 0xe7, 0x0a, 0xf6, 0x21, 0xec, 0xc6, 0x18, 0x05, 0xbe, 0x2b, 0xb4,
0x50, 0xc6, 0xf7, 0x71, 0x46, 0x87, 0x68, 0x9d, 0x2f, 0x79, 0xed, 0x03, 0xa0, 0x11, 0xd3, 0xbb, 0x2f, 0xc3, 0xfb, 0xb8, 0xa0, 0x43, 0x54, 0xe3, 0x6b, 0x5a, 0xf3, 0x00, 0x28, 0xc4, 0xe4, 0xee,
0x67, 0x8b, 0xd3, 0xf8, 0x83, 0x2f, 0xa1, 0x7e, 0xac, 0xd4, 0x91, 0x0c, 0x50, 0xb3, 0x1d, 0x80, 0xd9, 0xe6, 0xb4, 0xfe, 0xe8, 0x21, 0x34, 0x86, 0x71, 0x7c, 0x2c, 0x3d, 0x54, 0x6c, 0x17, 0xe0,
0x27, 0x31, 0xfe, 0x9a, 0xa0, 0x6f, 0x30, 0x68, 0x55, 0x58, 0x0b, 0xb6, 0x88, 0xfe, 0x83, 0x50, 0x69, 0x88, 0x2f, 0x22, 0x74, 0x35, 0x7a, 0xed, 0x0a, 0x6b, 0xc3, 0x36, 0xd1, 0x7f, 0xe0, 0x2b,
0xeb, 0x30, 0x1e, 0xb5, 0x1c, 0xb6, 0x0b, 0x4d, 0x92, 0xeb, 0xe1, 0xd9, 0x99, 0x46, 0xd3, 0x6a, 0xe5, 0x87, 0x93, 0xb6, 0xc5, 0xf6, 0xd2, 0x84, 0x86, 0x2f, 0x7c, 0xa5, 0x55, 0xbb, 0x6a, 0x14,
0xf5, 0x5f, 0x38, 0xb0, 0x41, 0x18, 0x76, 0x17, 0xea, 0xf9, 0xf5, 0xcd, 0xde, 0x59, 0x75, 0xa5, 0xd4, 0xbf, 0x47, 0x67, 0x67, 0x0a, 0x75, 0xdb, 0x1b, 0xbc, 0xb2, 0x60, 0x93, 0x20, 0xec, 0x2e,
0x93, 0x68, 0xed, 0xf6, 0xca, 0xdb, 0x3e, 0xd5, 0xfe, 0x6b, 0x68, 0xcc, 0x8b, 0xc8, 0x4a, 0xc0, 0x34, 0xb2, 0xfb, 0x9c, 0xbd, 0x57, 0x76, 0xc7, 0x53, 0x17, 0x3b, 0x9d, 0xd2, 0xeb, 0x3f, 0x19,
0x65, 0xe5, 0xdb, 0x37, 0x57, 0xce, 0x65, 0x59, 0x4e, 0x60, 0xf3, 0xd4, 0x28, 0x14, 0x13, 0x76, 0x86, 0x6f, 0xa0, 0xb9, 0xac, 0x2a, 0x2b, 0x00, 0xd7, 0x47, 0xa1, 0x73, 0xb3, 0xd4, 0x96, 0x46,
0x73, 0xd5, 0xad, 0x9f, 0xbd, 0x1e, 0xed, 0xd7, 0x4d, 0xee, 0x3b, 0x1f, 0x3b, 0xf7, 0x0e, 0xff, 0x39, 0x81, 0xad, 0x53, 0x1d, 0xa3, 0x98, 0xb1, 0x9b, 0x65, 0xcf, 0x40, 0xfa, 0x9c, 0x74, 0xde,
0xbd, 0xe8, 0x38, 0xcf, 0x2f, 0x3a, 0xce, 0x7f, 0x17, 0x1d, 0xe7, 0xcf, 0xcb, 0x4e, 0xe5, 0xf9, 0x64, 0x3c, 0xb0, 0x3e, 0xb5, 0xee, 0x1d, 0xfd, 0x73, 0xd1, 0xb5, 0x5e, 0x5e, 0x74, 0xad, 0x7f,
0x65, 0xa7, 0xf2, 0xe2, 0xb2, 0x53, 0xf9, 0xe1, 0xbd, 0x2b, 0xff, 0xd9, 0x3c, 0xdd, 0xa4, 0xcf, 0x2f, 0xba, 0xd6, 0x1f, 0x97, 0xdd, 0xca, 0xcb, 0xcb, 0x6e, 0xe5, 0xd5, 0x65, 0xb7, 0xf2, 0xc3,
0x27, 0xff, 0x07, 0x00, 0x00, 0xff, 0xff, 0xd8, 0x19, 0x98, 0xcc, 0x05, 0x09, 0x00, 0x00, 0x07, 0x57, 0xfe, 0xd5, 0x79, 0xb6, 0x45, 0x9f, 0xcf, 0xfe, 0x0b, 0x00, 0x00, 0xff, 0xff, 0xce,
0x99, 0xdc, 0xc5, 0x16, 0x09, 0x00, 0x00,
} }
func (m *HeadSyncRange) Marshal() (dAtA []byte, err error) { func (m *HeadSyncRange) Marshal() (dAtA []byte, err error) {

View File

@ -1,6 +1,7 @@
package storage package storage
import ( import (
"errors"
"github.com/anytypeio/go-anytype-infrastructure-experiments/app" "github.com/anytypeio/go-anytype-infrastructure-experiments/app"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/spacesyncproto" "github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/spacesyncproto"
"github.com/anytypeio/go-anytype-infrastructure-experiments/pkg/acl/aclrecordproto" "github.com/anytypeio/go-anytype-infrastructure-experiments/pkg/acl/aclrecordproto"
@ -9,6 +10,8 @@ import (
const CName = "commonspace.storage" const CName = "commonspace.storage"
var ErrSpaceStorageExists = errors.New("space storage exists")
type SpaceStorage interface { type SpaceStorage interface {
storage.Provider storage.Provider
ACLStorage() (storage.ListStorage, error) ACLStorage() (storage.ListStorage, error)

View File

@ -2,13 +2,17 @@ package syncservice
import ( import (
"context" "context"
"github.com/anytypeio/go-anytype-infrastructure-experiments/app/logger"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/cache" "github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/cache"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/spacesyncproto" "github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/spacesyncproto"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/net/rpc/rpcerr"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/nodeconf" "github.com/anytypeio/go-anytype-infrastructure-experiments/common/nodeconf"
"github.com/anytypeio/go-anytype-infrastructure-experiments/pkg/acl/treechangeproto" "github.com/anytypeio/go-anytype-infrastructure-experiments/pkg/acl/treechangeproto"
"time" "time"
) )
var log = logger.NewNamed("syncservice").Sugar()
type SyncService interface { type SyncService interface {
NotifyHeadUpdate( NotifyHeadUpdate(
ctx context.Context, ctx context.Context,
@ -104,7 +108,12 @@ func (s *syncService) responsibleStreamCheckLoop(ctx context.Context) {
continue continue
} }
// sending empty message for the server to understand from which space is it coming // sending empty message for the server to understand from which space is it coming
stream.Send(&spacesyncproto.ObjectSyncMessage{SpaceId: s.spaceId}) err = stream.Send(&spacesyncproto.ObjectSyncMessage{SpaceId: s.spaceId})
if err != nil {
err = rpcerr.Unwrap(err)
log.With("spaceId", s.spaceId).Errorf("failed to open stream: %v", err)
continue
}
s.streamPool.AddAndReadStreamAsync(stream) s.streamPool.AddAndReadStreamAsync(stream)
} }
} }

View File

@ -2,6 +2,7 @@ package nodespace
import ( import (
"context" "context"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/cache"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/spacesyncproto" "github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/spacesyncproto"
"github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/storage" "github.com/anytypeio/go-anytype-infrastructure-experiments/common/commonspace/storage"
) )
@ -13,9 +14,14 @@ type rpcHandler struct {
func (r *rpcHandler) PushSpace(ctx context.Context, req *spacesyncproto.PushSpaceRequest) (resp *spacesyncproto.PushSpaceResponse, err error) { func (r *rpcHandler) PushSpace(ctx context.Context, req *spacesyncproto.PushSpaceRequest) (resp *spacesyncproto.PushSpaceResponse, err error) {
_, err = r.s.GetSpace(ctx, req.SpaceId) _, err = r.s.GetSpace(ctx, req.SpaceId)
if err == nil { if err == nil {
resp = &spacesyncproto.PushSpaceResponse{} err = spacesyncproto.ErrSpaceExists
return return
} }
if err != cache.ErrSpaceNotFound {
err = spacesyncproto.ErrUnexpected
return
}
payload := storage.SpaceStorageCreatePayload{ payload := storage.SpaceStorageCreatePayload{
RecWithId: req.AclRoot, RecWithId: req.AclRoot,
SpaceHeader: req.SpaceHeader, SpaceHeader: req.SpaceHeader,
@ -24,6 +30,9 @@ func (r *rpcHandler) PushSpace(ctx context.Context, req *spacesyncproto.PushSpac
_, err = r.s.spaceStorageProvider.CreateSpaceStorage(payload) _, err = r.s.spaceStorageProvider.CreateSpaceStorage(payload)
if err != nil { if err != nil {
err = spacesyncproto.ErrUnexpected err = spacesyncproto.ErrUnexpected
if err == storage.ErrSpaceStorageExists {
err = spacesyncproto.ErrSpaceExists
}
return return
} }
return return