After deleting an object, you can download it via http #81

Closed
opened 2025-12-28 17:36:03 +00:00 by sami · 3 comments
Owner

Originally created by @acheyda on GitHub (Oct 5, 2022).

Originally assigned to: @KirillovDenis on GitHub.

After deleting an object, you can download it via http

Expected Behavior

0 / ? [--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------=] 0.00% 2562047h47m16s
rpc error: read object header: status: code = 2052 message = object already removed

Current Behavior

% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 129M 100 129M 0 0 73.0M 0 0:00:01 0:00:01 --:--:-- 73.0M
root@perf-load-04:/home/admin# diff /tmp/trueobject.sample /tmp/get_true1object.sample
root@perf-load-04:/home/admin#

#Put an object in a container:

neofs-cli --rpc-endpoint 172.26.160.169:8080 -w configuration/wallets/wallet.json object put --file /tmp/trueobject.sample --cid 5fxwdo3qiMnwxBzcBmkLQpnDhBafPqaWkZLo447LKu7M
Enter password >
135266304 / 135266304 [====================================================================================================================================================================================================] 100.00% 20s
[/tmp/trueobject.sample] Object successfully stored
ID: GC57hWdnYwYGdnz8o3wjrTRZgBBnpwdsUenME1RFMU7y
CID: 5fxwdo3qiMnwxBzcBmkLQpnDhBafPqaWkZLo447LKu7M

#Download an object:

curl http://172.26.160.169/get_by_attribute/5fxwdo3qiMnwxBzcBmkLQpnDhBafPqaWkZLo447LKu7M/FileName/trueobject.sample -o /tmp/get_true1object.sample
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 129M 100 129M 0 0 73.0M 0 0:00:01 0:00:01 --:--:-- 73.0M
root@perf-load-04:/home/admin# diff /tmp/trueobject.sample /tmp/get_true1object.sample
root@perf-load-04:/home/admin# curl http://172.26.160.169/get/5fxwdo3qiMnwxBzcBmkLQpnDhBafPqaWkZLo447LKu7M/GC57hWdnYwYGdnz8o3wjrTRZgBBnpwdsUenME1RFMU7y -o /tmp/get_true1object.sample
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 129M 100 129M 0 0 73.5M 0 0:00:01 0:00:01 --:--:-- 73.5M
root@perf-load-04:/home/admin# diff /tmp/trueobject.sample /tmp/get_true1object.sample

#Change the Epoch:
<neofs-adm -c configuration/config.yaml morph force-new-epoch>

#Delete an object:

neofs-cli --rpc-endpoint 172.26.160.169:8080 -w configuration/wallets/wallet.json object delete --cid 5fxwdo3qiMnwxBzcBmkLQpnDhBafPqaWkZLo447LKu7M --oid GC57hWdnYwYGdnz8o3wjrTRZgBBnpwdsUenME1RFMU7y
Enter password >
Object removed successfully.
ID: CPPeBv2ggmanxRS55QZ7imvDEKp298hi992T2XvgEmPf
CID: 5fxwdo3qiMnwxBzcBmkLQpnDhBafPqaWkZLo447LKu7M

#Download an object http, http with attribute, grpc:

curl http://172.26.160.169/get_by_attribute/5fxwdo3qiMnwxBzcBmkLQpnDhBafPqaWkZLo447LKu7M/FileName/trueobject.sample -o /tmp/get_true1object.sample
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 129M 100 129M 0 0 339M 0 --:--:-- --:--:-- --:--:-- 339M
root@perf-load-04:/home/admin# diff /tmp/trueobject.sample /tmp/get_true1object.sample
root@perf-load-04:/home/admin# curl http://172.26.160.169/get/5fxwdo3qiMnwxBzcBmkLQpnDhBafPqaWkZLo447LKu7M/GC57hWdnYwYGdnz8o3wjrTRZgBBnpwdsUenME1RFMU7y -o /tmp/get_true1object.sample
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 129M 100 129M 0 0 206M 0 --:--:-- --:--:-- --:--:-- 206M
root@perf-load-04:/home/admin# diff /tmp/trueobject.sample /tmp/get_true1object.sample
root@perf-load-04:/home/admin# neofs-cli --rpc-endpoint 172.26.160.169:8080 -w configuration/wallets/wallet.json object get --cid 5fxwdo3qiMnwxBzcBmkLQpnDhBafPqaWkZLo447LKu7M --oid GC57hWdnYwYGdnz8o3wjrTRZgBBnpwdsUenME1RFMU7y --file /tmp/get_true1object.sample
Enter password >
0 / ? [--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------=] 0.00% 2562047h47m16s
rpc error: read object header: status: code = 2052 message = object already removed

#Additional verification:

neofs-cli --rpc-endpoint 172.26.160.169:8080 -w configuration/wallets/wallet.json netmap netinfo
Enter password >
Epoch: 23
Network magic: [net 0x3bf3415] 62862357
Time per block: 8s
NeoFS network configuration (system)
Audit fee: 0
Storage price: 0
Container fee: 0
EigenTrust alpha: 0.1
Number of EigenTrust iterations: 4
Epoch duration: 450
Inner Ring candidate fee: 0
Maximum object size: 13421728
Withdrawal fee: 0
NeoFS network configuration (other)
root@perf-load-04:/home/admin# curl http://172.26.160.169/get_by_attribute/5fxwdo3qiMnwxBzcBmkLQpnDhBafPqaWkZLo447LKu7M/FileName/trueobject.sample -o /tmp/get_true1object.sample
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 129M 100 129M 0 0 216M 0 --:--:-- --:--:-- --:--:-- 216M
root@perf-load-04:/home/admin# diff /tmp/trueobject.sample /tmp/get_true1object.sample
root@perf-load-04:/home/admin# neofs-cli --rpc-endpoint 172.26.160.169:8080 -w configuration/wallets/wallet.json container list-objects --cid 5fxwdo3qiMnwxBzcBmkLQpnDhBafPqaWkZLo447LKu7M
Enter password >
root@perf-load-04:/home/admin# curl http://172.26.160.169/get_by_attribute/5fxwdo3qiMnwxBzcBmkLQpnDhBafPqaWkZLo447LKu7M/FileName/trueobject.sample -o /tmp/get_true1object.sample
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 129M 100 129M 0 0 234M 0 --:--:-- --:--:-- --:--:-- 234M
root@perf-load-04:/home/admin# diff /tmp/trueobject.sample /tmp/get_true1object.sample

#I will assume that the epoch does not affect, after several changes of epochs the result will remain the same.

#After about 10 m the files are different but continues to be visible oid:

curl 
http://172.26.160.169/get/5fxwdo3qiMnwxBzcBmkLQpnDhBafPqaWkZLo447LKu7M/GC57hWdnYwYGdnz8o3wjrTRZgBBnpwdsUenME1RFMU7y -o /tmp/get_true1object.sample
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 92 100 92 0 0 23000 0 --:--:-- --:--:-- --:--:-- 23000
root@perf-load-04:/home/admin# diff /tmp/trueobject.sample /tmp/get_true1object.sample
Binary files /tmp/trueobject.sample и /tmp/get_true1object.sample differ

Your Environment

NeoFS Storage node
Version: v0.31.0
GoVersion: go1.18.4

NeoFS HTTP Gateway
Version: v0.23.0-dirty
GoVersion: go1.18.4

Originally created by @acheyda on GitHub (Oct 5, 2022). Originally assigned to: @KirillovDenis on GitHub. **After deleting an object, you can download it via http** ## Expected Behavior ``` 0 / ? [--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------=] 0.00% 2562047h47m16s rpc error: read object header: status: code = 2052 message = object already removed ``` ## Current Behavior ``` % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 129M 100 129M 0 0 73.0M 0 0:00:01 0:00:01 --:--:-- 73.0M root@perf-load-04:/home/admin# diff /tmp/trueobject.sample /tmp/get_true1object.sample root@perf-load-04:/home/admin# ``` #**Put an object in a container:** ``` neofs-cli --rpc-endpoint 172.26.160.169:8080 -w configuration/wallets/wallet.json object put --file /tmp/trueobject.sample --cid 5fxwdo3qiMnwxBzcBmkLQpnDhBafPqaWkZLo447LKu7M Enter password > 135266304 / 135266304 [====================================================================================================================================================================================================] 100.00% 20s [/tmp/trueobject.sample] Object successfully stored ID: GC57hWdnYwYGdnz8o3wjrTRZgBBnpwdsUenME1RFMU7y CID: 5fxwdo3qiMnwxBzcBmkLQpnDhBafPqaWkZLo447LKu7M ``` #**Download an object:** ``` curl http://172.26.160.169/get_by_attribute/5fxwdo3qiMnwxBzcBmkLQpnDhBafPqaWkZLo447LKu7M/FileName/trueobject.sample -o /tmp/get_true1object.sample % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 129M 100 129M 0 0 73.0M 0 0:00:01 0:00:01 --:--:-- 73.0M root@perf-load-04:/home/admin# diff /tmp/trueobject.sample /tmp/get_true1object.sample root@perf-load-04:/home/admin# curl http://172.26.160.169/get/5fxwdo3qiMnwxBzcBmkLQpnDhBafPqaWkZLo447LKu7M/GC57hWdnYwYGdnz8o3wjrTRZgBBnpwdsUenME1RFMU7y -o /tmp/get_true1object.sample % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 129M 100 129M 0 0 73.5M 0 0:00:01 0:00:01 --:--:-- 73.5M root@perf-load-04:/home/admin# diff /tmp/trueobject.sample /tmp/get_true1object.sample ``` #**Change the Epoch:** `<neofs-adm -c configuration/config.yaml morph force-new-epoch>` #**Delete an object:** ``` neofs-cli --rpc-endpoint 172.26.160.169:8080 -w configuration/wallets/wallet.json object delete --cid 5fxwdo3qiMnwxBzcBmkLQpnDhBafPqaWkZLo447LKu7M --oid GC57hWdnYwYGdnz8o3wjrTRZgBBnpwdsUenME1RFMU7y Enter password > Object removed successfully. ID: CPPeBv2ggmanxRS55QZ7imvDEKp298hi992T2XvgEmPf CID: 5fxwdo3qiMnwxBzcBmkLQpnDhBafPqaWkZLo447LKu7M ``` #**Download an object http, http with attribute, grpc:** ``` curl http://172.26.160.169/get_by_attribute/5fxwdo3qiMnwxBzcBmkLQpnDhBafPqaWkZLo447LKu7M/FileName/trueobject.sample -o /tmp/get_true1object.sample % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 129M 100 129M 0 0 339M 0 --:--:-- --:--:-- --:--:-- 339M root@perf-load-04:/home/admin# diff /tmp/trueobject.sample /tmp/get_true1object.sample root@perf-load-04:/home/admin# curl http://172.26.160.169/get/5fxwdo3qiMnwxBzcBmkLQpnDhBafPqaWkZLo447LKu7M/GC57hWdnYwYGdnz8o3wjrTRZgBBnpwdsUenME1RFMU7y -o /tmp/get_true1object.sample % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 129M 100 129M 0 0 206M 0 --:--:-- --:--:-- --:--:-- 206M root@perf-load-04:/home/admin# diff /tmp/trueobject.sample /tmp/get_true1object.sample root@perf-load-04:/home/admin# neofs-cli --rpc-endpoint 172.26.160.169:8080 -w configuration/wallets/wallet.json object get --cid 5fxwdo3qiMnwxBzcBmkLQpnDhBafPqaWkZLo447LKu7M --oid GC57hWdnYwYGdnz8o3wjrTRZgBBnpwdsUenME1RFMU7y --file /tmp/get_true1object.sample Enter password > 0 / ? [--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------=] 0.00% 2562047h47m16s rpc error: read object header: status: code = 2052 message = object already removed ``` #**Additional verification:** ``` neofs-cli --rpc-endpoint 172.26.160.169:8080 -w configuration/wallets/wallet.json netmap netinfo Enter password > Epoch: 23 Network magic: [net 0x3bf3415] 62862357 Time per block: 8s NeoFS network configuration (system) Audit fee: 0 Storage price: 0 Container fee: 0 EigenTrust alpha: 0.1 Number of EigenTrust iterations: 4 Epoch duration: 450 Inner Ring candidate fee: 0 Maximum object size: 13421728 Withdrawal fee: 0 NeoFS network configuration (other) root@perf-load-04:/home/admin# curl http://172.26.160.169/get_by_attribute/5fxwdo3qiMnwxBzcBmkLQpnDhBafPqaWkZLo447LKu7M/FileName/trueobject.sample -o /tmp/get_true1object.sample % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 129M 100 129M 0 0 216M 0 --:--:-- --:--:-- --:--:-- 216M root@perf-load-04:/home/admin# diff /tmp/trueobject.sample /tmp/get_true1object.sample root@perf-load-04:/home/admin# neofs-cli --rpc-endpoint 172.26.160.169:8080 -w configuration/wallets/wallet.json container list-objects --cid 5fxwdo3qiMnwxBzcBmkLQpnDhBafPqaWkZLo447LKu7M Enter password > root@perf-load-04:/home/admin# curl http://172.26.160.169/get_by_attribute/5fxwdo3qiMnwxBzcBmkLQpnDhBafPqaWkZLo447LKu7M/FileName/trueobject.sample -o /tmp/get_true1object.sample % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 129M 100 129M 0 0 234M 0 --:--:-- --:--:-- --:--:-- 234M root@perf-load-04:/home/admin# diff /tmp/trueobject.sample /tmp/get_true1object.sample ``` #I will assume that the epoch does not affect, after several changes of epochs the result will remain the same. #**After about 10 m the files are different but continues to be visible oid:** ``` curl http://172.26.160.169/get/5fxwdo3qiMnwxBzcBmkLQpnDhBafPqaWkZLo447LKu7M/GC57hWdnYwYGdnz8o3wjrTRZgBBnpwdsUenME1RFMU7y -o /tmp/get_true1object.sample % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 92 100 92 0 0 23000 0 --:--:-- --:--:-- --:--:-- 23000 root@perf-load-04:/home/admin# diff /tmp/trueobject.sample /tmp/get_true1object.sample Binary files /tmp/trueobject.sample и /tmp/get_true1object.sample differ ``` ## Your Environment NeoFS Storage node Version: v0.31.0 GoVersion: go1.18.4 NeoFS HTTP Gateway Version: v0.23.0-dirty GoVersion: go1.18.4
sami 2025-12-28 17:36:03 +00:00
  • closed this issue
  • added the
    bug
    U2
    labels
Author
Owner

@KirillovDenis commented on GitHub (Oct 6, 2022):

I couldn't reproduce this bug on local machine.

@acheyda Can you provide some additional info:

  • http-gw: config, logs
  • neofs-node: config, logs

Also it would be nice to check this on master http-gw and neofs-node

@KirillovDenis commented on GitHub (Oct 6, 2022): I couldn't reproduce this bug on local machine. @acheyda Can you provide some additional info: * http-gw: config, logs * neofs-node: config, logs Also it would be nice to check this on master `http-gw` and `neofs-node`
Author
Owner

@KirillovDenis commented on GitHub (Oct 6, 2022):

It seems that requests are made through nginx which caches responses.
@acheyda check this please

@KirillovDenis commented on GitHub (Oct 6, 2022): It seems that requests are made through nginx which caches responses. @acheyda check this please
Author
Owner

@acheyda commented on GitHub (Oct 6, 2022):

Without specifying a port, requests pass through nginx (port 80), which caches responses.
After a direct request to http-gw (port 8888), the behavior is expected - the object is not located.

@acheyda commented on GitHub (Oct 6, 2022): Without specifying a port, requests pass through nginx (port 80), which caches responses. After a direct request to http-gw (port 8888), the behavior is expected - the object is not located.
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-http-gw#81
No description provided.