After deleting an object, it is available #544

Closed
opened 2023-07-27 09:12:46 +00:00 by d.zayakin · 6 comments

Expected Behavior

After we have created a container, loaded an object into it and deleted the object, we expect that we will not be able to get the object.

Current Behavior

With varying frequency, we can get the object after it has been deleted.

Steps to Reproduce (for bugs)

  1. Create a container with any policy.
    frostfs-cli --rpc-endpoint 127.0.10.1:8080 --wallet /path/to/wallet container create --policy 'REP 2 CBF 2 SELECT 2 FROM *'
    OUT:
    container ID: <CID>
  2. Load an object of any size into the container
    frostfs-cli --rpc-endpoint 127.0.0.1:8080 --wallet /path/to/wallet object put --cid <CID> --file /path/to/file
    OUT:
    [/path/to/file] Object successfully stored OID: <OID> CID: <CID>
  3. Send a command to delete an object.
    frostfs-cli --rpc-endpoint 127.0.0.1:8080 --wallet /path/to/wallet object delete --oid <OID> --cid <CID>
    OUT:
    Object removed successfully. ID: <OID> CID: <CID>
  4. Send a command to receive the object.
    frostfs-cli --rpc-endpoint 127.0.0.1:8080 --wallet /path/to/wallet object get --oid <OID> --cid <CID> --file /tmp/file
    OUT:
    [/out/path/file] Object successfully saved ID: <OID> CID: <CID> Owner: <OwnerID> CreatedAt: 10 Size: 134217728 HomoHash: <empty> Checksum: <SUM> Type: REGULAR Attributes: FileName=NameFile Timestamp=<TIMESTAMP> ID signature: public key: <publicKey> signature: <SIGNATURE>
  5. If you didn't get the object the first time, repeat steps 1 to 4 until you get the object

Your Environment

VM 8 nodes
Debian

<!-- Provide a general summary of the issue in the Title above --> ## Expected Behavior After we have created a container, loaded an object into it and deleted the object, we expect that we will not be able to get the object. ## Current Behavior With varying frequency, we can get the object after it has been deleted. ## Steps to Reproduce (for bugs) 1. Create a container with any policy. `frostfs-cli --rpc-endpoint 127.0.10.1:8080 --wallet /path/to/wallet container create --policy 'REP 2 CBF 2 SELECT 2 FROM *'` OUT: `container ID: <CID>` 2. Load an object of any size into the container `frostfs-cli --rpc-endpoint 127.0.0.1:8080 --wallet /path/to/wallet object put --cid <CID> --file /path/to/file` OUT: `[/path/to/file] Object successfully stored OID: <OID> CID: <CID> ` 3. Send a command to delete an object. `frostfs-cli --rpc-endpoint 127.0.0.1:8080 --wallet /path/to/wallet object delete --oid <OID> --cid <CID>` OUT: `Object removed successfully. ID: <OID> CID: <CID>` 4. Send a command to receive the object. `frostfs-cli --rpc-endpoint 127.0.0.1:8080 --wallet /path/to/wallet object get --oid <OID> --cid <CID> --file /tmp/file` OUT: `[/out/path/file] Object successfully saved ID: <OID> CID: <CID> Owner: <OwnerID> CreatedAt: 10 Size: 134217728 HomoHash: <empty> Checksum: <SUM> Type: REGULAR Attributes: FileName=NameFile Timestamp=<TIMESTAMP> ID signature: public key: <publicKey> signature: <SIGNATURE>` 5. If you didn't get the object the first time, repeat steps 1 to 4 until you get the object ## Your Environment VM 8 nodes Debian
d.zayakin added the
bug
triage
labels 2023-07-27 09:12:46 +00:00
fyrchik added
frostfs-node
and removed
triage
labels 2023-07-27 17:02:38 +00:00
fyrchik added this to the v0.37.0 milestone 2023-07-27 17:04:36 +00:00
acid-ant was assigned by fyrchik 2023-07-31 12:47:34 +00:00
Collaborator

Unable to reproduce in dev-env, @d.zayakin please provide storage logs once you face this issue again.

Unable to reproduce in dev-env, @d.zayakin please provide storage logs once you face this issue again.
acid-ant removed their assignment 2023-08-01 13:54:13 +00:00

Have you tried both big and small objects?

Have you tried both big and small objects?

Have you tried both big and small objects?

Yes, I did with objects of both sizes

> Have you tried both big and small objects? Yes, I did with objects of both sizes
Collaborator

Have you tried both big and small objects?

The same, tried to reproduce with complex object too.

> Have you tried both big and small objects? The same, tried to reproduce with complex object too.
acid-ant was assigned by fyrchik 2023-08-03 07:40:02 +00:00
Collaborator

Tried with three containers with following policies:

	var cids []cid.ID
	cids = append(cids, createCnt(t, ctx, owner, "REP 2 CBF 1 SELECT 2 FROM *", clientPool))
	cids = append(cids, createCnt(t, ctx, owner, "REP 1 CBF 1 SELECT 2 FROM *", clientPool))
	cids = append(cids, createCnt(t, ctx, owner, "REP 4 CBF 2 SELECT 2 FROM *", clientPool))

Randomly choose cids and following predefined payloads:

	payloads = append(payloads, createPayload(128))
	payloads = append(payloads, createPayload(512))
	payloads = append(payloads, createPayload(1024))
	payloads = append(payloads, createPayload(4098))
	payloads = append(payloads, createPayload(4098*2))
	payloads = append(payloads, createPayload(4098*3))
	payloads = append(payloads, createPayload(4098*4))

No luck, unfortunately, still unable to reproduce in dev-env.
MaxObjectSize: 4096

Tried with three containers with following policies: ``` var cids []cid.ID cids = append(cids, createCnt(t, ctx, owner, "REP 2 CBF 1 SELECT 2 FROM *", clientPool)) cids = append(cids, createCnt(t, ctx, owner, "REP 1 CBF 1 SELECT 2 FROM *", clientPool)) cids = append(cids, createCnt(t, ctx, owner, "REP 4 CBF 2 SELECT 2 FROM *", clientPool)) ``` Randomly choose `cids` and following predefined payloads: ``` payloads = append(payloads, createPayload(128)) payloads = append(payloads, createPayload(512)) payloads = append(payloads, createPayload(1024)) payloads = append(payloads, createPayload(4098)) payloads = append(payloads, createPayload(4098*2)) payloads = append(payloads, createPayload(4098*3)) payloads = append(payloads, createPayload(4098*4)) ``` No luck, unfortunately, still unable to reproduce in dev-env. MaxObjectSize: 4096
Collaborator

@d.zayakin unable to reproduce it too, let's close.

@d.zayakin unable to reproduce it too, let's close.
Sign in to join this conversation.
No Milestone
No project
No Assignees
3 Participants
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: TrueCloudLab/frostfs-node#544
There is no content yet.