Commit 812ff6a
committed
fix(install): set DM_DISABLE_UDEV=1 to prevent dm semaphore deadlock
`bootc install to-disk --block-setup tpm2-luks` hangs at
`cryptsetup luksOpen` due to a libdevmapper udev cookie semaphore
deadlock. libdevmapper creates SysV semaphores to synchronize with
udevd, but the container's isolated IPC namespace prevents udevd
(on the host) from seeing the semaphore. luksOpen blocks forever
on semop().
Set DM_DISABLE_UDEV=1 before LUKS operations to skip udev
synchronization for device-mapper. This is safe during installation
-- there are no concurrent dm operations, and the kernel still
creates device nodes without udev involvement. Partition device
nodes and udev_settle() are unaffected.
Confirmed with three independent tests:
- Stock bootc, default podman: HANG
- Stock bootc + DM_DISABLE_UDEV=1: PASS
- Stock bootc + --ipc=host: PASS
Fixes: #2089
Related: #421, #477
Signed-off-by: Andrew Dunn <andrew@dunn.dev>1 parent adab93e commit 812ff6a
1 file changed
Lines changed: 32 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
149 | 149 | | |
150 | 150 | | |
151 | 151 | | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
152 | 175 | | |
153 | 176 | | |
154 | 177 | | |
| |||
350 | 373 | | |
351 | 374 | | |
352 | 375 | | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
353 | 385 | | |
354 | 386 | | |
355 | 387 | | |
| |||
0 commit comments