Skip to content

Conversation

@MageekChiu
Copy link
Contributor

@MageekChiu MageekChiu commented Jan 17, 2025

The old syntax is almost deprecated, and there are reasons to upgrade it to the new one

  • old syntax is lack of fsid param, which is critical for debugging and observability
  • mds_namespace is deprecated, so it might be inappropriate to continue using it
  • kernel will try new syntax first and then the old one(check with mount -v), it is a waste to use the old one

From the ubuntu manpage,20.04 LTS supports the old syntax while 22.04 LTS supports the new one.

@mergify mergify bot added the component/cephfs Issues related to CephFS label Jan 17, 2025
@nixpanic
Copy link
Member

Many thanks @MageekChiu!

Could you update the PR description with a reference that explains the changes? It would be useful to know how recent these changes are, and if there could be a problem when users have an older version deployed.

It seems the commit message contains a few long lines. Please edit it and keep them under 80 characters.

@kotreshhr, maybe you have a reference to the new/changed mount options handy?

@MageekChiu MageekChiu force-pushed the devel branch 3 times, most recently from 19eeb9a to 21d1d64 Compare January 21, 2025 10:46
@MageekChiu
Copy link
Contributor Author

@nixpanic Greate advices, thank you.
I‘ve edited the PR description and the commit message.

Cool homepage by the way, need to add one myself 😄.

nixpanic
nixpanic previously approved these changes Jan 21, 2025
Copy link
Member

@nixpanic nixpanic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me, thanks!

@nixpanic nixpanic requested a review from a team January 21, 2025 12:35
@mergify mergify bot dismissed nixpanic’s stale review January 25, 2025 15:51

Pull request has been modified.

@MageekChiu MageekChiu force-pushed the devel branch 2 times, most recently from 63c4692 to 42b818b Compare January 25, 2025 15:52
@kotreshhr
Copy link

Many thanks @MageekChiu!

Could you update the PR description with a reference that explains the changes? It would be useful to know how recent these changes are, and if there could be a problem when users have an older version deployed.

It seems the commit message contains a few long lines. Please edit it and keep them under 80 characters.

@kotreshhr, maybe you have a reference to the new/changed mount options handy?

I see the old and new mount options are already linked in the PR. Yes, the kernel tries the new syntax first and falls back to old if not available. I think this should be fine but tagging the kernel developer @Markuze @vshankar to confirm if this breaks anything based on the version it got introduced.

RequestName string
NamePrefix string
ClusterID string
FsID string
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Instead of always fetching the FsID, can you add a func (vo *VolumeOptions) GetFSID() (string, error) function?

This can then be used where needed, currently only in NewKernelMounter().

By extending the NewVolumeOptions() function, it grows (too) large, and the golang-ci linter fails due to that.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@nixpanic,I believe you may have missed this—we already have GetFSID() defined in the ClusterConnection struct. Since ClusterConnection is a member of the VolumeOptions struct, it can be accessed via vo.conn.GetFSID().

@MageekChiu MageekChiu requested a review from nixpanic February 2, 2025 11:42
@nixpanic
Copy link
Member

nixpanic commented Feb 5, 2025

Hi @MageekChiu, the PR looks good to me. Can you squash all commits into a single one and force-push your branch? That makes it possible for the @mergify bot can do it's work and get this in soon.

Thanks!

m.needsModprobe = false
}

fsID, err := volOptions.GetFSID()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why can't we use existing GetFSID() instead?

Suggested change
fsID, err := volOptions.GetFSID()
fsID, err := volOptions.GetConnection().GetFSID()

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

volOptions.GetConnection() can return nil, so it is not really safe. A new GetFSID() would prevent any incorrect usage, now, and possibly in the future.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I think the checking is needed, Connect and Destroy do the checking too.
And I've squashed the commits.

Copy link
Contributor

@iPraveenParihar iPraveenParihar Feb 7, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

volOptions.GetConnection() can return nil, so it is not really safe. A new GetFSID() would prevent any incorrect usage, now, and possibly in the future.

when volOptions struct is created, we make sure we have the connection set. There is no way GetConnection() could return nil.

IMO, GetConnection() should be handling the nil check, or the GetConnection() caller should check for nil and proceed.

as we have similar usage at some places. for example -

ioctx, err := volOptions.GetConnection().GetIoctx(volOptions.MetadataPool)
if err != nil {
log.ErrorLog(ctx, "Failed to create ioctx: %s", err)
return err
}
defer ioctx.Destroy()

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, improving GetConnection() would be nice too. I don't think that needs to be done in this PR though.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, improving GetConnection() would be nice too. I don't think that needs to be done in this PR though.

That can be done through issue #5129.

nixpanic
nixpanic previously approved these changes Feb 6, 2025
@iPraveenParihar
Copy link
Contributor

/test ci/centos/mini-e2e/k8s-1.32

@nixpanic
Copy link
Member

nixpanic commented Feb 7, 2025

/test ci/centos/mini-e2e/k8s-1.32

There has been a new Ceph release yesterday, building Ceph-CSI fails until the new container-image can install required RPMs (librados-devel etc...). 😢

@nixpanic
Copy link
Member

@Mergifyio rebase

@iPraveenParihar , is there anything blocking this PR from your point of view?

@mergify
Copy link
Contributor

mergify bot commented Feb 13, 2025

rebase

✅ Branch has been successfully rebased

@nixpanic
Copy link
Member

@Mergifyio queue

@iPraveenParihar iPraveenParihar added the ok-to-test Label to trigger E2E tests label Mar 24, 2025
@iPraveenParihar
Copy link
Contributor

iPraveenParihar commented Mar 24, 2025

seems like the ok-to-test label is not working here? trying to remove and add manually, if that works.

Add Comment action fails

peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 is not allowed to be used in ceph/ceph-csi. Actions in this workflow must be: within a repository owned by ceph, created by GitHub, or matching the following: ....

adding comments manually for now.

@iPraveenParihar
Copy link
Contributor

/test ci/centos/k8s-e2e-external-storage/1.29

@iPraveenParihar
Copy link
Contributor

/test ci/centos/k8s-e2e-external-storage/1.30

@iPraveenParihar
Copy link
Contributor

/test ci/centos/k8s-e2e-external-storage/1.31

@iPraveenParihar
Copy link
Contributor

/test ci/centos/mini-e2e-helm/k8s-1.30

@iPraveenParihar
Copy link
Contributor

ci/centos/mini-e2e-helm/k8s-1.31

@iPraveenParihar
Copy link
Contributor

/test ci/centos/mini-e2e/k8s-1.29

@iPraveenParihar
Copy link
Contributor

/test ci/centos/mini-e2e/k8s-1.30

@iPraveenParihar
Copy link
Contributor

/test ci/centos/mini-e2e/k8s-1.31

@iPraveenParihar
Copy link
Contributor

/test ci/centos/upgrade-tests-cephfs

@iPraveenParihar
Copy link
Contributor

/test ci/centos/upgrade-tests-rbd

@mergify
Copy link
Contributor

mergify bot commented Mar 24, 2025

This pull request has been removed from the queue for the following reason: checks failed.

The merge conditions cannot be satisfied due to failing checks:

You may have to fix your CI before adding the pull request to the queue again.

If you want to requeue this pull request, you can post a @mergifyio requeue comment.

@iPraveenParihar
Copy link
Contributor

/retest ci/centos/upgrade-tests-cephfs

@iPraveenParihar
Copy link
Contributor

/retest ci/centos/upgrade-tests-rbd

1 similar comment
@iPraveenParihar
Copy link
Contributor

/retest ci/centos/upgrade-tests-rbd

@iPraveenParihar
Copy link
Contributor

/retest ci/centos/upgrade-tests-cephfs

@iPraveenParihar
Copy link
Contributor

@Mergifyio requeue

@mergify
Copy link
Contributor

mergify bot commented Mar 25, 2025

requeue

✅ The queue state of this pull request has been cleaned. It can be re-embarked automatically

@iPraveenParihar
Copy link
Contributor

@Mergifyio requeue

@mergify
Copy link
Contributor

mergify bot commented Mar 25, 2025

requeue

☑️ This pull request is already queued

@nixpanic
Copy link
Member

/test ci/centos/mini-e2e-helm/k8s-1.29

@nixpanic
Copy link
Member

/test ci/centos/mini-e2e-helm/k8s-1.31

@nixpanic
Copy link
Member

/test ci/centos/mini-e2e-helm/k8s-1.32

@nixpanic
Copy link
Member

/test ci/centos/mini-e2e/k8s-1.32

@nixpanic
Copy link
Member

/test ci/centos/k8s-e2e-external-storage/1.32

@nixpanic nixpanic removed the ok-to-test Label to trigger E2E tests label Mar 25, 2025
@mergify mergify bot merged commit 0c60fd2 into ceph:devel Mar 25, 2025
29 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

component/cephfs Issues related to CephFS

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants