Possible collision on FQDN of bucket #122
Labels
No labels
P0
P1
P2
P3
good first issue
Infrastructure
blocked
bug
config
discussion
documentation
duplicate
enhancement
go
help wanted
internal
invalid
kludge
observability
perfomance
question
refactoring
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: TrueCloudLab/frostfs-contract#122
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
With the implementation of GUBN and VHS and the ability to specify names with dots there is a possibility for collision of full domain names of buckets, if we manipulate names so in one case part of the domain name goes into bucket name and in other - to the protocol domain name. See the
Steps to Reproduce (example)
section for an exact example what is anticipated.Expected Behavior
On container creation if FQDN already present for any other container - return error.
Current Behavior
Probably will create a container and a collision for it's name, probable shadowing.
Possible Solution
Probably store the FQDN (Fully Qualified Domain Name) for the containers under GUBN (?) to perform quick check for collisions.
Steps to Reproduce (example)
Let's assume we have GUBN with
GlobalCNAMEZone = "bobr"
and creating new namespaces with vhs, let the domain be -domain.tld
.let's create it as is, so we have next protocol domains:
*.web.s3.kapusta.domain.tld;
*.s3.kapusta.domain.tld;
iam.kapusta.domain.tld;
Next step - we creating bucket with name
cats
, socats
is addressed by:cats.web.s3.kapusta.domain.tld;
cats.s3.kapusta.domain.tld;
cats.bobr
web.s3.yabloko.domain.tld -> s3.kapusta.domain.tld
s3.yabloko.domain.tld -> s3-kapusta.domain.tld
iam.yabloko.domain.tld -> iam-kapusta.domain.tld
so we have now following ones:
*.s3.kapusta.domain.tld;
*.s3-kapusta.domain.tld;
iam-kapusta.domain.tld;
and a buckut named
cats.web
:cats.web.s3.kapusta.domain.tld;
cats.web.s3-kapusta.domain.tld;
cats.web.bobr
As a result
cats.web.s3.kapusta.domain.tld;
is bothcats.web
in yabloko namespace, andcats
in namespacekapusta
.Context
Regression
Your Environment
uname -a
):@realloc validate, please