EC: panic during object put to a container with {'__NEOFS__METAINFO_CONSISTENCY': 'strict'} #1526

Closed
opened 2025-12-28 17:35:43 +00:00 by sami · 1 comment
Owner

Originally created by @evgeniiz321 on GitHub (Oct 21, 2025).

Originally assigned to: @cthulhu-rider on GitHub.

2025-10-21T10:04:41.867Z	info	cache/clients.go:198	connection to the SN successfully initialized	{"scope": "put", "public key": "02380637a80887ab04fbb97c8c656bd9fdfe7bc26e80eb5b2367d03c412df87a51", "address": "/dns4/localhost/tcp/59005"}
panic: runtime error: index out of range [0] with length 0

goroutine 262 [running]:
github.com/nspcc-dev/neofs-node/pkg/services/object/put.(*distributedTarget).sendObject(_, {{0x20, 0x9, 0x81, 0x37, 0x9c, 0xa9, 0xbb, 0xb1, 0xc5, ...}, ...}, ...)
	github.com/nspcc-dev/neofs-node/pkg/services/object/put/distributed.go:391 +0xd65
github.com/nspcc-dev/neofs-node/pkg/services/object/put.(*distributedTarget).saveECPartOnNode(_, {{0x20, 0x9, 0x81, 0x37, 0x9c, 0xa9, 0xbb, 0xb1, 0xc5, ...}, ...}, ...)
	github.com/nspcc-dev/neofs-node/pkg/services/object/put/ec.go:132 +0x268
github.com/nspcc-dev/neofs-node/pkg/services/object/put.(*distributedTarget).distributeECPart-range1(...)
	github.com/nspcc-dev/neofs-node/pkg/services/object/put/ec.go:106
github.com/nspcc-dev/neofs-node/pkg/services/object/put.(*distributedTarget).distributeECPart.NodeSequenceForPart.func1(...)
	github.com/nspcc-dev/neofs-node/internal/ec/policy.go:12
github.com/nspcc-dev/neofs-node/pkg/services/object/put.(*distributedTarget).distributeECPart(_, {{0x20, 0x9, 0x81, 0x37, 0x9c, 0xa9, 0xbb, 0xb1, 0xc5, ...}, ...}, ...)
	github.com/nspcc-dev/neofs-node/pkg/services/object/put/ec.go:105 +0x2db
github.com/nspcc-dev/neofs-node/pkg/services/object/put.(*distributedTarget).formAndSaveObjectForECPart.(*distributedTarget).saveECPart.func1({{0x20, 0x9, 0x81, 0x37, 0x9c, 0xa9, 0xbb, 0xb1, 0xc5, 0x37, ...}, ...}, ...)
	github.com/nspcc-dev/neofs-node/pkg/services/object/put/ec.go:99 +0xd7
github.com/nspcc-dev/neofs-node/pkg/services/object/put.(*distributedTarget).distributeObject(_, {{0x20, 0x9, 0x81, 0x37, 0x9c, 0xa9, 0xbb, 0xb1, 0xc5, ...}, ...}, ...)
	github.com/nspcc-dev/neofs-node/pkg/services/object/put/distributed.go:244 +0x551
github.com/nspcc-dev/neofs-node/pkg/services/object/put.(*distributedTarget).saveECPart(...)
	github.com/nspcc-dev/neofs-node/pkg/services/object/put/ec.go:98
github.com/nspcc-dev/neofs-node/pkg/services/object/put.(*distributedTarget).formAndSaveObjectForECPart(_, {_, _}, {{0x78, 0xfa, 0xcb, 0xc5, 0x58, 0xff, 0x36, ...}, ...}, ...)
	github.com/nspcc-dev/neofs-node/pkg/services/object/put/ec.go:90 +0x737
github.com/nspcc-dev/neofs-node/pkg/services/object/put.(*distributedTarget).applyECRule(_, {_, _}, {{0x78, 0xfa, 0xcb, 0xc5, 0x58, 0xff, 0x36, ...}, ...}, ...)
	github.com/nspcc-dev/neofs-node/pkg/services/object/put/ec.go:48 +0x119
github.com/nspcc-dev/neofs-node/pkg/services/object/put.(*distributedTarget).ecAndSaveObject(_, {_, _}, {{0x78, 0xfa, 0xcb, 0xc5, 0x58, 0xff, 0x36, ...}, ...}, ...)
	github.com/nspcc-dev/neofs-node/pkg/services/object/put/ec.go:27 +0x1da
github.com/nspcc-dev/neofs-node/pkg/services/object/put.(*distributedTarget).saveObject(_, {{0x78, 0xfa, 0xcb, 0xc5, 0x58, 0xff, 0x36, 0xe8, 0xcf, ...}, ...}, ...)
	github.com/nspcc-dev/neofs-node/pkg/services/object/put/distributed.go:208 +0x545
github.com/nspcc-dev/neofs-node/pkg/services/object/put.(*distributedTarget).Close(0xc001124380)
	github.com/nspcc-dev/neofs-node/pkg/services/object/put/distributed.go:156 +0x2d1
github.com/nspcc-dev/neofs-node/pkg/services/object/put.(*readyObjectPayloadWriter).Close(0x2012f10?)
	github.com/nspcc-dev/neofs-node/pkg/services/object/put/slice.go:121 +0x1b
github.com/nspcc-dev/neofs-sdk-go/object/slicer.writeInMemObject({_, _}, {_, _}, {_, _}, {{0x78, 0xfa, 0xcb, 0xc5, ...}, ...}, ...)
	github.com/nspcc-dev/neofs-sdk-go@v1.0.0-rc.15.0.20251015122943-b38583ddd311/object/slicer/slicer.go:658 +0x3e3
github.com/nspcc-dev/neofs-sdk-go/object/slicer.(*PayloadWriter)._writeChild(0xc00124a388, {0x15a36d0, 0xc001260180}, {0x3e8, {0x15a5da0, 0xc001250c00}, {0x15a5de0, 0xc001242e80}}, {0xc000cb9570, 0x1, ...}, ...)
	github.com/nspcc-dev/neofs-sdk-go@v1.0.0-rc.15.0.20251015122943-b38583ddd311/object/slicer/slicer.go:554 +0x379
github.com/nspcc-dev/neofs-sdk-go/object/slicer.(*PayloadWriter).writeLastChild(...)
	github.com/nspcc-dev/neofs-sdk-go@v1.0.0-rc.15.0.20251015122943-b38583ddd311/object/slicer/slicer.go:508
github.com/nspcc-dev/neofs-sdk-go/object/slicer.(*PayloadWriter).Close(0x0?)
	github.com/nspcc-dev/neofs-sdk-go@v1.0.0-rc.15.0.20251015122943-b38583ddd311/object/slicer/slicer.go:487 +0x274
github.com/nspcc-dev/neofs-node/pkg/services/object/put.(*slicingTarget).Close(0xc0012ed440)
	github.com/nspcc-dev/neofs-node/pkg/services/object/put/slice.go:87 +0x2f
github.com/nspcc-dev/neofs-node/pkg/services/object/put.(*validatingTarget).Close(0x200a410?)
	github.com/nspcc-dev/neofs-node/pkg/services/object/put/validation.go:168 +0x93
github.com/nspcc-dev/neofs-node/pkg/services/object/put.(*Streamer).Close(0xc00125a2a0)
	github.com/nspcc-dev/neofs-node/pkg/services/object/put/streamer.go:276 +0x3b
github.com/nspcc-dev/neofs-node/pkg/services/object.(*putStream).close(0x1592860?)
	github.com/nspcc-dev/neofs-node/pkg/services/object/server.go:397 +0x4e
github.com/nspcc-dev/neofs-node/pkg/services/object.(*Server).Put(0xc000125600, {0x15ad950, 0xc0012232e0})
	github.com/nspcc-dev/neofs-node/pkg/services/object/server.go:426 +0x6ba
github.com/nspcc-dev/neofs-sdk-go/proto/object._ObjectService_Put_Handler({0x130ba80?, 0xc000125600}, {0x15a88c0, 0xc0003e3a40})
	github.com/nspcc-dev/neofs-sdk-go@v1.0.0-rc.15.0.20251015122943-b38583ddd311/proto/object/service_grpc.pb.go:725 +0xd8
google.golang.org/grpc.(*Server).processStreamingRPC(0xc000464200, {0x15a36d0, 0xc0012600c0}, 0xc00125a240, 0xc00041b620, 0x2025f80, 0x0)
	google.golang.org/grpc@v1.75.1/server.go:1722 +0x12e8
google.golang.org/grpc.(*Server).handleStream(0xc000464200, {0x15a4550, 0xc000e7b1e0}, 0xc00125a240)
	google.golang.org/grpc@v1.75.1/server.go:1846 +0xb47
google.golang.org/grpc.(*Server).serveStreams.func2.1()
	google.golang.org/grpc@v1.75.1/server.go:1061 +0x7f
created by google.golang.org/grpc.(*Server).serveStreams.func2 in goroutine 236
	google.golang.org/grpc@v1.75.1/server.go:1072 +0x11d
Originally created by @evgeniiz321 on GitHub (Oct 21, 2025). Originally assigned to: @cthulhu-rider on GitHub. ``` 2025-10-21T10:04:41.867Z info cache/clients.go:198 connection to the SN successfully initialized {"scope": "put", "public key": "02380637a80887ab04fbb97c8c656bd9fdfe7bc26e80eb5b2367d03c412df87a51", "address": "/dns4/localhost/tcp/59005"} panic: runtime error: index out of range [0] with length 0 goroutine 262 [running]: github.com/nspcc-dev/neofs-node/pkg/services/object/put.(*distributedTarget).sendObject(_, {{0x20, 0x9, 0x81, 0x37, 0x9c, 0xa9, 0xbb, 0xb1, 0xc5, ...}, ...}, ...) github.com/nspcc-dev/neofs-node/pkg/services/object/put/distributed.go:391 +0xd65 github.com/nspcc-dev/neofs-node/pkg/services/object/put.(*distributedTarget).saveECPartOnNode(_, {{0x20, 0x9, 0x81, 0x37, 0x9c, 0xa9, 0xbb, 0xb1, 0xc5, ...}, ...}, ...) github.com/nspcc-dev/neofs-node/pkg/services/object/put/ec.go:132 +0x268 github.com/nspcc-dev/neofs-node/pkg/services/object/put.(*distributedTarget).distributeECPart-range1(...) github.com/nspcc-dev/neofs-node/pkg/services/object/put/ec.go:106 github.com/nspcc-dev/neofs-node/pkg/services/object/put.(*distributedTarget).distributeECPart.NodeSequenceForPart.func1(...) github.com/nspcc-dev/neofs-node/internal/ec/policy.go:12 github.com/nspcc-dev/neofs-node/pkg/services/object/put.(*distributedTarget).distributeECPart(_, {{0x20, 0x9, 0x81, 0x37, 0x9c, 0xa9, 0xbb, 0xb1, 0xc5, ...}, ...}, ...) github.com/nspcc-dev/neofs-node/pkg/services/object/put/ec.go:105 +0x2db github.com/nspcc-dev/neofs-node/pkg/services/object/put.(*distributedTarget).formAndSaveObjectForECPart.(*distributedTarget).saveECPart.func1({{0x20, 0x9, 0x81, 0x37, 0x9c, 0xa9, 0xbb, 0xb1, 0xc5, 0x37, ...}, ...}, ...) github.com/nspcc-dev/neofs-node/pkg/services/object/put/ec.go:99 +0xd7 github.com/nspcc-dev/neofs-node/pkg/services/object/put.(*distributedTarget).distributeObject(_, {{0x20, 0x9, 0x81, 0x37, 0x9c, 0xa9, 0xbb, 0xb1, 0xc5, ...}, ...}, ...) github.com/nspcc-dev/neofs-node/pkg/services/object/put/distributed.go:244 +0x551 github.com/nspcc-dev/neofs-node/pkg/services/object/put.(*distributedTarget).saveECPart(...) github.com/nspcc-dev/neofs-node/pkg/services/object/put/ec.go:98 github.com/nspcc-dev/neofs-node/pkg/services/object/put.(*distributedTarget).formAndSaveObjectForECPart(_, {_, _}, {{0x78, 0xfa, 0xcb, 0xc5, 0x58, 0xff, 0x36, ...}, ...}, ...) github.com/nspcc-dev/neofs-node/pkg/services/object/put/ec.go:90 +0x737 github.com/nspcc-dev/neofs-node/pkg/services/object/put.(*distributedTarget).applyECRule(_, {_, _}, {{0x78, 0xfa, 0xcb, 0xc5, 0x58, 0xff, 0x36, ...}, ...}, ...) github.com/nspcc-dev/neofs-node/pkg/services/object/put/ec.go:48 +0x119 github.com/nspcc-dev/neofs-node/pkg/services/object/put.(*distributedTarget).ecAndSaveObject(_, {_, _}, {{0x78, 0xfa, 0xcb, 0xc5, 0x58, 0xff, 0x36, ...}, ...}, ...) github.com/nspcc-dev/neofs-node/pkg/services/object/put/ec.go:27 +0x1da github.com/nspcc-dev/neofs-node/pkg/services/object/put.(*distributedTarget).saveObject(_, {{0x78, 0xfa, 0xcb, 0xc5, 0x58, 0xff, 0x36, 0xe8, 0xcf, ...}, ...}, ...) github.com/nspcc-dev/neofs-node/pkg/services/object/put/distributed.go:208 +0x545 github.com/nspcc-dev/neofs-node/pkg/services/object/put.(*distributedTarget).Close(0xc001124380) github.com/nspcc-dev/neofs-node/pkg/services/object/put/distributed.go:156 +0x2d1 github.com/nspcc-dev/neofs-node/pkg/services/object/put.(*readyObjectPayloadWriter).Close(0x2012f10?) github.com/nspcc-dev/neofs-node/pkg/services/object/put/slice.go:121 +0x1b github.com/nspcc-dev/neofs-sdk-go/object/slicer.writeInMemObject({_, _}, {_, _}, {_, _}, {{0x78, 0xfa, 0xcb, 0xc5, ...}, ...}, ...) github.com/nspcc-dev/neofs-sdk-go@v1.0.0-rc.15.0.20251015122943-b38583ddd311/object/slicer/slicer.go:658 +0x3e3 github.com/nspcc-dev/neofs-sdk-go/object/slicer.(*PayloadWriter)._writeChild(0xc00124a388, {0x15a36d0, 0xc001260180}, {0x3e8, {0x15a5da0, 0xc001250c00}, {0x15a5de0, 0xc001242e80}}, {0xc000cb9570, 0x1, ...}, ...) github.com/nspcc-dev/neofs-sdk-go@v1.0.0-rc.15.0.20251015122943-b38583ddd311/object/slicer/slicer.go:554 +0x379 github.com/nspcc-dev/neofs-sdk-go/object/slicer.(*PayloadWriter).writeLastChild(...) github.com/nspcc-dev/neofs-sdk-go@v1.0.0-rc.15.0.20251015122943-b38583ddd311/object/slicer/slicer.go:508 github.com/nspcc-dev/neofs-sdk-go/object/slicer.(*PayloadWriter).Close(0x0?) github.com/nspcc-dev/neofs-sdk-go@v1.0.0-rc.15.0.20251015122943-b38583ddd311/object/slicer/slicer.go:487 +0x274 github.com/nspcc-dev/neofs-node/pkg/services/object/put.(*slicingTarget).Close(0xc0012ed440) github.com/nspcc-dev/neofs-node/pkg/services/object/put/slice.go:87 +0x2f github.com/nspcc-dev/neofs-node/pkg/services/object/put.(*validatingTarget).Close(0x200a410?) github.com/nspcc-dev/neofs-node/pkg/services/object/put/validation.go:168 +0x93 github.com/nspcc-dev/neofs-node/pkg/services/object/put.(*Streamer).Close(0xc00125a2a0) github.com/nspcc-dev/neofs-node/pkg/services/object/put/streamer.go:276 +0x3b github.com/nspcc-dev/neofs-node/pkg/services/object.(*putStream).close(0x1592860?) github.com/nspcc-dev/neofs-node/pkg/services/object/server.go:397 +0x4e github.com/nspcc-dev/neofs-node/pkg/services/object.(*Server).Put(0xc000125600, {0x15ad950, 0xc0012232e0}) github.com/nspcc-dev/neofs-node/pkg/services/object/server.go:426 +0x6ba github.com/nspcc-dev/neofs-sdk-go/proto/object._ObjectService_Put_Handler({0x130ba80?, 0xc000125600}, {0x15a88c0, 0xc0003e3a40}) github.com/nspcc-dev/neofs-sdk-go@v1.0.0-rc.15.0.20251015122943-b38583ddd311/proto/object/service_grpc.pb.go:725 +0xd8 google.golang.org/grpc.(*Server).processStreamingRPC(0xc000464200, {0x15a36d0, 0xc0012600c0}, 0xc00125a240, 0xc00041b620, 0x2025f80, 0x0) google.golang.org/grpc@v1.75.1/server.go:1722 +0x12e8 google.golang.org/grpc.(*Server).handleStream(0xc000464200, {0x15a4550, 0xc000e7b1e0}, 0xc00125a240) google.golang.org/grpc@v1.75.1/server.go:1846 +0xb47 google.golang.org/grpc.(*Server).serveStreams.func2.1() google.golang.org/grpc@v1.75.1/server.go:1061 +0x7f created by google.golang.org/grpc.(*Server).serveStreams.func2 in goroutine 236 google.golang.org/grpc@v1.75.1/server.go:1072 +0x11d ```
sami 2025-12-28 17:35:43 +00:00
Author
Owner

@cthulhu-rider commented on GitHub (Oct 22, 2025):

fails the same w/ __NEOFS__METAINFO_CONSISTENCY=optimistic

@cthulhu-rider commented on GitHub (Oct 22, 2025): fails the same w/ `__NEOFS__METAINFO_CONSISTENCY=optimistic`
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
nspcc-dev/neofs-node#1526
No description provided.