"Action": "PUT", "error": "context canceled"

Since two weeks I was receiving emails telling me that my node did not meet the minimum version of the software. Thanks to this step by step instructions that I already used in the past I was able to successfully install the software again, without having any issues. Thank you!

Now that the node is started and hopefully running well again I am noticing some ERROR messages in the log. One example:

2023-06-20T00:10:39.905+0200 ERROR piecestore upload failed {"Piece ID": "HRFAB3LKYGGFEAGGVUAYJI452NM6ZZGEBL6DR7AR5X7AB7HTB54Q", "Satellite ID": "12EayRS2V1kEsWESU9QMRseFhdxYxKicsiFmxrsLZHeLUtdps3S", "Action": "PUT", "error": "context canceled", "errorVerbose": "context canceled\n\tstorj.io/common/rpc/rpcstatus.Wrap:75\n\tstorj.io/storj/storagenode/piecestore.(*Endpoint).Upload.func5:498\n\tstorj.io/storj/storagenode/piecestore.(*Endpoint).Upload:504\n\tstorj.io/common/pb.DRPCPiecestoreDescription.Method.func1:243\n\tstorj.io/drpc/drpcmux.(*Mux).HandleRPC:33\n\tstorj.io/common/rpc/rpctracing.(*Handler).HandleRPC:61\n\tstorj.io/common/experiment.(*Handler).HandleRPC:42\n\tstorj.io/drpc/drpcserver.(*Server).handleRPC:124\n\tstorj.io/drpc/drpcserver.(*Server).ServeOne:66\n\tstorj.io/drpc/drpcserver.(*Server).Serve.func2:114\n\tstorj.io/drpc/drpcctx.(*Tracker).track:35", "Size": 9984, "Remote Address": "XX.XXX.XX.XXX:14440"}

The “context canceled” errors are normal, your node was too slow and transfer has been canceled by the customer.


Do you know if it is possible to get a ratio like: amount of canceled requests by customer / total requests in order to use it as a performance indicator?

If this is already available how to achieve that on a windows install?

Having such an indicator could lead to some questions like:

what are good ratios, bad ratios, how to improve etc.

Currently, without having such indicator I do not know if the canceled requests are acceptable or if I should do something to improve node performances.


Thanks. Here the results.

========== AUDIT =============
Critically failed: 0
Critical Fail Rate: 0.00%
Recoverable failed: 0
Recoverable Fail Rate: 0.00%
Successful: 419
Success Rate: 100.00%
========== DOWNLOAD ==========
Failed: 0
Fail Rate: 0.00%
Canceled: 51
Cancel Rate: 5.76%
Successful: 834
Success Rate: 94.24%
========== UPLOAD ============
Rejected: 0
Acceptance Rate: 100.00%
---------- accepted ----------
Failed: 382
Fail Rate: 3.51%
Canceled: 386
Cancel Rate: 3.55%
Successful: 10120
Success Rate: 92.95%
========== REPAIR DOWNLOAD ===
Failed: 0
Fail Rate: 0.00%
Canceled: 0
Cancel Rate: 0.00%
Successful: 337
Success Rate: 100.00%
========== REPAIR UPLOAD =====
Failed: 10
Fail Rate: 0.93%
Canceled: 10
Cancel Rate: 0.93%
Successful: 1060
Success Rate: 98.15%

The log file is new, I reset it yesterday night.

Great. My upload failed rate is between 20% to 50%

I hope my node does not get disqualified as its online presence dropped in the past weeks (ip changed, some network outages etc). Reputation is now going up, hopefully I will be in the green area back in time.

Coming back on topic: the uploads mentioned in the scripts are the data that my node transfers to the customers or is the data transferred from the customer to my node?


1 Like

This is great, thanks. The manual refers to egress data and ingress data, I believe specifically to exclude possible misunderstanding.

In the script however, the more common terms download/upload are used. How should I interpret them? Upload as egress, yes? And download as ingress?

No. The terms are with respect to your node. So consider this as “uploaded to your node” and “downloaded from your node”. Upload = PUT = Ingress. Download = GET = Egress


@nerdatwork Crystal clear thanks!