nspcc-dev / nspcc-dev/neofs-node

rpc error: context deadline exceeded if timeout is default (15s)

Open
#1,920 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug I3 neofs-cli S4 U3
Dominant language
Go
Stars
38
Forks
51
Avg merge
1d 20h
Merged PRs (30d)
38

Description

Expected Behavior

"neofs-cli object put" shouldn't fail if one of the nodes is not responding while there are others helthy nodes to store the object.

Current Behavior

neofs-cli object put
rpc error: client failure: context deadline exceeded

Possible Solution

increase default timeot to 30s

Steps to Reproduce (for bugs)

  1. create container with policy REP 3 SELECT 4 so that if one of the nodes hangs, there are 3 nodes to comply with the REP 3 policy
  2. node1: suspend neofs-node: kill -STOP pidof neofs-node
  3. node2: try to put objects to the contaner using default timeout : error
  4. node2: try to put objects to the contaner using timeout=30s: ok

Your Environment

root@az:/home/service# neofs-node -version
NeoFS Storage node
Version: v0.32.0-125-gbcf3df35
GoVersion: go1.18.4

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Begin at the neofs-cli object put entry point and trace how the default timeout is applied to RPC calls. Reproduce the issue with REP 3 SELECT 4 and one suspended node, comparing the default timeout with 30 seconds. Done means object upload succeeds with healthy replica nodes when one node is unresponsive.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
distributed-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.