Bug 2229554

Summary: blkid hangs and cannot be killed
Product: Red Hat Enterprise Linux 9 Reporter: Andrew Schorr <ajschorr>
Component: util-linuxAssignee: Karel Zak <kzak>
Status: NEW --- QA Contact: Radka Brychtova <rskvaril>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: CentOS StreamCC: bstinson, jwboyer
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: ---
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Andrew Schorr 2023-08-07 00:55:09 UTC
Description of problem:
After upgrading a system to CentOS Stream 9, I found that blkid hangs indefinitely and cannot be killed with kill -9.

Version-Release number of selected component (if applicable):
util-linux-core-2.37.4-11.el9.x86_64

How reproducible:
Always

Steps to Reproduce:
1. blkid
2.
3.

Actual results:
The command hangs and cannot be killed.

Expected results:
print results and exit.

Additional info:
When I run "strace blkid", it gets this far before hanging:

openat(AT_FDCWD, "/dev/block", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_DIRECTORY) = 6
newfstatat(6, "", {st_mode=S_IFDIR|0755, st_size=580, ...}, AT_EMPTY_PATH) = 0
getdents64(6, 0x5581f1f973f0 /* 29 entries */, 32768) = 792
newfstatat(6, "251:0", {st_mode=S_IFBLK|0660, st_rdev=makedev(0xfb, 0), ...}, 0) = 0
close(6)                                = 0
readlink("/dev", 0x7ffd64ed6bd0, 1023)  = -1 EINVAL (Invalid argument)
readlink("/dev/block", 0x7ffd64ed6bd0, 1023) = -1 EINVAL (Invalid argument)
readlink("/dev/block/251:0", "../pktcdvd/pktcdvd0", 1023) = 19
readlink("/dev/pktcdvd", 0x7ffd64ed6bd0, 1023) = -1 EINVAL (Invalid argument)
readlink("/dev/pktcdvd/pktcdvd0", 0x7ffd64ed6bd0, 1023) = -1 EINVAL (Invalid argument)
access("/dev/block/251:0", F_OK)        = 0
newfstatat(AT_FDCWD, "/dev/pktcdvd/pktcdvd0", {st_mode=S_IFBLK|0660, st_rdev=makedev(0xfb, 0), ...}, 0) = 0
openat(AT_FDCWD, "/sys/dev/block/251:0", O_RDONLY|O_CLOEXEC) = 6
openat(6, "dm/uuid", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
close(6)                                = 0
openat(AT_FDCWD, "/dev/pktcdvd/pktcdvd0", O_RDONLY|O_NONBLOCK|O_CLOEXEC

And ltrace shows this:
setlocale(LC_ALL, "")                            = "LC_CTYPE=en_US.UTF-8;LC_NUMERIC="...
bindtextdomain("util-linux", "/usr/share/locale") = "/usr/share/locale"
textdomain("util-linux")                         = "util-linux"
__cxa_atexit(0x55e5f93735b0, 0, 0x55e5f937a760, 0) = 0
getopt_long(1, 0x7ffd9b5c8458, "c:DdgH:hilL:n:ko:O:ps:S:t:u:U:w:"..., 0x55e5f937a780, nil) = -1
blkid_get_cache(0x7ffd9b5c7e30, 0, 0x7fcb7ba02300, 0) = 0
blkid_probe_all(0x55e5fb363520, 0x55e5fb363770, 0, 0x7fcb7b93e8bb

I note that this system has a USB cd/dvd drive attached:

[root@ti11 ~]# lsusb | grep -i dvd
Bus 001 Device 005: ID 093b:002c Plextor Corp. DVDR PX-880U USB Device

I'm observing the same problem on another system that also has an identical
USB dvd drive attached.