Alexey
April 21, 2022, 5:59am
21
Specify its identity with --identity-dir
and config with --config-dir
in storagenode.exe exit-satellite
command.
Make sure that identity belongs this node (it will print the NodeID) and the config is point to the same identity and correct data location.
Could you please show the value of server.private-address:
for all nodes?
On your first screenshot it showed the correct NodeID, but incorrect data usage (so, it loaded data for the first node actually).
And I got the reason. It would be more noticeable if you posted it as a text…
You specified --config-dir "C: \Program Files\Storj\Storage Node"
(with space between C:
and remained path…), and it was happily ignored and used a default one - from the first node…
However, I now believe, that at least Windows binary ignores the --config-dir
option completely for exit-satellite
and exit-status
.
server.private-address:
Node1 127.0.0.1:14002
Node2 localhost:14003
Node3 localhost:14004
Node2 ID: 12sBsqsJR2mQh95ScQH5Snex7bRDNB8k9xVZLjP7tLqKb7Fb8a1
would that be ok?
“storagenode.exe” exit-satellite --identity-dir “C:\Users\Matao\AppData\Roaming\Storj\Identity3\storagenode” --config-dir “C:\Program Files\Storj2\Storage Node” --log.output stderr
Alexey
April 21, 2022, 6:40am
23
you posted console.address
for web-dashboard, not the server.private-address:
It will not be ok. It will try to exit the first node anyway. What’s mess…
Please run your command, and go further until it request the list of the satellites. It will print the used storage. Here you should stop it by Ctrl-C
.
Please copy the output and post here between two new lines with three backticks like this:
```
here is the text output
```
Or a screenshot. Now I would check it more close.
After that try to use this command:
"storagenode.exe" exit-satellite --identity-dir "C:\Users\Matao\AppData\Roaming\Storj\Identity3\storagenode" --log.output stderr --server.private-address 127.0.0.1:7780
and go further until the table with satellites and used space, then interrupt it and post result here
Uploading: node1–.jpg…
I do not understand you. is it what is in the picture?
The first node is exiting. I can’t do anything else with the first node.
In the last catch. is it ok to start?
Alexey
April 21, 2022, 7:21am
25
Yes, as you can see the total usage is match the usage on node3
The exit-satellite
and exit-status
doesn’t uses config file (I think this is a bug), so you must provide the private server address to this command to allow it to communicate with the right storagenode.
The second bug that these commands did not verify provided identity to communicate via private server address.
Thank you.
Start the output of the third node.
Now I will only have the second node.
I followed the guide for graceful output. I think I followed the steps correctly.
I didn’t know about the bugs.
1 Like
Alexey
April 21, 2022, 7:45am
27
Yes, I did not know about the bugs too.
opened 07:44AM - 21 Apr 22 UTC
Bug
<!--
Please make sure that we do not have any duplicates already open.
You ca… n ensure this by searching the issue list for this repository.
If there is a duplicate, please close your issue and add a comment to the
existing issue instead.
For more information about reporting issues, see
https://github.com/storj/storj/blob/main/docs/storagenode/CONTRIBUTING.md
---------------------------------------------------
GENERAL SUPPORT INFORMATION
---------------------------------------------------
The GitHub issue tracker is for bug reports and feature requests.
General support can be found at the following locations:
- Storj Community Forum - https://forum.storj.io
- File a ticket at https://support.storj.io/
---------------------------------------------------
BUG REPORT INFORMATION
---------------------------------------------------
-->
**Description**
The Graceful Exit commands `exit-satellite` and `exit-status` ignores provided config dir location and uses the default private server address `127.0.0.1:7778` anyway.
They also did not verify the provided identity - you can call `exit-satellite` with any identity and it will be successfully executed.
See https://forum.storj.io/t/a-few-days-ago-i-started-the-graceful-output-of-the-third-node-but-the-first-node-got-emptied/18163
<!--
Provide a more detailed introduction to the issue itself, and why you consider it to be a bug
-->
**Screenshots**
This is used space of the node which the SNO tried to exit:
![](https://storj-s3.bcdn.literatehosting.net/original/2X/c/c3d10f0a338c211b8060cb1b0360b4694d010710.jpeg)
Please note the used space in the command below (the NodeID is correct, the used space - is not):
![](https://storj-s3.bcdn.literatehosting.net/original/2X/b/b2fc6b3510594173d54d2268584736ce50499a3e.jpeg)
The exit is actually initiated for the first (default) node:
![](https://storj-s3.bcdn.literatehosting.net/original/2X/3/3a28c11edf42bc5aa615ec9cd8a7b450fc2a208b.jpeg)
See also, that output of `exit-status` did not change regardless of used identity-dir and config-dir:
The default one:
![](https://storj-s3.bcdn.literatehosting.net/original/2X/c/cfc5ea8cc9688fd171d3b30cb05e6dc40274bfb3.jpeg)
and for the second
![](https://storj-s3.bcdn.literatehosting.net/original/2X/b/bd880768aa399257727b99c1c5c779bd37176db5.jpeg)
**Steps to reproduce the issue:**
1. Setup two nodes on the same host, changing listening ports for all listeners.
2. Make them collect different amount of data (to see a difference)
3. Call Graceful Exit for the second (not default node), providing its identity-dir and config-dir
4. Continue until it print the table with satellites and used space - you will notice, that it's actually calling the exit from the default node, not from the chosen
5. If you continue exit, the exit actually start on the default node, not the provided - so the identity is ignored too.
**Describe the results you expected:**
When you call Graceful Exit from the not default node specifying the correct identity-dir and config-dir, it should be performed on the selected node, not the default one.
**Describe the results you received:**
When you call Graceful Exit from the not default node specifying the correct identity-dir and config-dir, it's performed on the default node, ignoring provided identity and config.
**Possible Fix**
The workaround is to use `--server.private-address` explicitly instead of `--config-dir`. However, the identity should be either not required or at least verified to do not call the disruptive command on a wrong node.
**Logs:**
From the default node
![](https://storj-s3.bcdn.literatehosting.net/original/2X/8/85b09ded4fafeda3198735fa065fb587ae9e6b1e.jpeg)
From the second node which we wanted to exit (and this is not happened):
![](https://storj-s3.bcdn.literatehosting.net/original/2X/a/ab41d7dcab4359ae1dcb2b884258bfe249d1e608.jpeg)
**Your environment**
- Operating system and version: Windows 10
- Additional environment details (Raspberry PI, Docker, VMWare, etc.): The multiple nodes handled by [Windows Toolbox](https://forum.storj.io/t/topic/4381/1)
I also updated the documentation to explicitly provide --server.private-address
instead of --config-dir
(which is ignored anyway).
1 Like