From 2dd9783d8c36da8e8dbd8f8922ced41d2e6b5529 Mon Sep 17 00:00:00 2001 From: Yury Luneff Date: Thu, 22 Oct 2026 14:07:53 +0300 Subject: [PATCH] Set ownership of OSD partitions in a udev rule of its own udev skips every key of a rule whose IMPORT{program} fails, OWNER and GROUP included, and vitastor-disk udev exits 1 when it rejects the superblock. A freshly added partition whose check failed stayed root:disk, and an OSD opening it as user vitastor got EACCES. This happens with dm-multipath: the dm partition's ready event is checked while by-partuuid still points at the path partition. Assign ownership by partition type alone; the alias symlink still needs a valid superblock. --- docker/etc/udev/rules.d/90-vitastor.rules | 4 +++- mon/scripts/90-vitastor.rules | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/docker/etc/udev/rules.d/90-vitastor.rules b/docker/etc/udev/rules.d/90-vitastor.rules index aba25da4..36b875b2 100644 --- a/docker/etc/udev/rules.d/90-vitastor.rules +++ b/docker/etc/udev/rules.d/90-vitastor.rules @@ -1,5 +1,7 @@ +# A separate rule: when IMPORT fails, udev drops every other key of its rule, OWNER included +SUBSYSTEM=="block", ENV{ID_PART_ENTRY_TYPE}=="e7009fac-a5a1-4d72-af72-53de13059903", \ + OWNER="vitastor", GROUP="vitastor" SUBSYSTEM=="block", ENV{ID_PART_ENTRY_TYPE}=="e7009fac-a5a1-4d72-af72-53de13059903", \ - OWNER="vitastor", GROUP="vitastor", \ IMPORT{program}="/usr/bin/docker exec vitastor vitastor-disk udev $devnode", \ SYMLINK+="vitastor/$env{VITASTOR_ALIAS}" diff --git a/mon/scripts/90-vitastor.rules b/mon/scripts/90-vitastor.rules index f2bf82f2..144547d4 100644 --- a/mon/scripts/90-vitastor.rules +++ b/mon/scripts/90-vitastor.rules @@ -1,5 +1,7 @@ +# A separate rule: when IMPORT fails, udev drops every other key of its rule, OWNER included +SUBSYSTEM=="block", ENV{ID_PART_ENTRY_TYPE}=="e7009fac-a5a1-4d72-af72-53de13059903", \ + OWNER="vitastor", GROUP="vitastor" SUBSYSTEM=="block", ENV{ID_PART_ENTRY_TYPE}=="e7009fac-a5a1-4d72-af72-53de13059903", \ - OWNER="vitastor", GROUP="vitastor", \ IMPORT{program}="/usr/bin/vitastor-disk udev $devnode", \ SYMLINK+="vitastor/$env{VITASTOR_ALIAS}" -- 2.47.3