On Wed, Mar 24, 2021 at 12:37:03PM +0000, Gulam Mohamed wrote:
> Hi All,
> 
> We are facing a stale link (of the device) issue during the iscsi-logout 
> process if we use parted command just before the iscsi logout. Here are the 
> details:
>                
> As part of iscsi logout, the partitions and the disk will be removed. The 
> parted command, used to list the partitions, will open the disk in RW mode 
> which results in systemd-udevd re-reading the partitions. This will trigger 
> the rescan partitions which will also delete and re-add the partitions. So, 
> both iscsi logout processing and the parted (through systemd-udevd) will be 
> involved in add/delete of partitions. In our case, the following sequence of 
> operations happened (the iscsi device is /dev/sdb with partition sdb1):
>       
>       1. sdb1 was removed by PARTED
>       2. kworker, as part of iscsi logout, couldn't remove sdb1 as it was 
> already removed by PARTED
>       3. sdb1 was added by parted
>       4. sdb was NOW removed as part of iscsi logout (the last part of the 
> device removal after remoing the partitions)
> 
> Since the symlink /sys/class/block/sdb1 points to 
> /sys/class/devices/platform/hostx/sessionx/targetx:x:x:x/x:x:x:x/block/sdb/sdb1
>  and since sdb is already removed, the symlink /sys/class/block/sdb1 will be 
> orphan and stale. So, this stale link is a result of the race condition in 
> kernel between the systemd-udevd and iscsi-logout processing as described 
> above. We are able to reproduce this even with latest upstream kernel.
>       
> We have come across a patch from Ming Lei which was created for "avoid to 
> drop & re-add partitions if partitions aren't changed":
> https://lore.kernel.org/linux-block/20210216084430.ga23...@lst.de/T/

BTW,  there is a newer version of this patchset:

https://lore.kernel.org/linux-block/20210224081825.ga1...@lst.de/#r

>       
> This patch could resolve our problem of stale link but it just seems to be a 
> work-around and not the actual fix for the race. We were looking for help to 
> fix this race in kernel. Do you have any idea how to fix this race condition?
>

IMO, that isn't a work-around, kernel shouldn't drop partitions if
partition table isn't changed. But Christoph thought the current approach
is taken since beginning of kernel, and he suggested to fix systemd-udev.



Thanks, 
Ming

Reply via email to