[pkg-cryptsetup-devel] Bug#875642: /sbin/cryptsetup: blocked in semop on shutdown waiting for already terminated systemd-udevd

Ivan Krylov krylov.r00t at gmail.com
Tue Sep 12 21:28:44 UTC 2017


Package: cryptsetup-bin
Version: 2:1.7.3-4
Severity: normal
File: /sbin/cryptsetup

Dear Maintainer,

Since my setup is going to need keyscripts, I have installed sysvinit-core
shotrly after upgrading to Stretch.

Since then, "Stopping crypto disks..." hangs indefinitely on shutdown while cryptsetup
is blocked in semop() syscall. Once I managed to call shutdown from single-user mode
and pressed Alt-SysRq-E once it hung, which caused recovery shell prompt to appear;
thus I got the attached backtrace.

My other Stretch computer also has sysvinit-core and cryptsetup with keyscripts
but doesn't have this problem despite having encrypted root.

How do I debug this problem?

-- System Information:
Debian Release: 9.1
  APT prefers stable-debug
  APT policy: (500, 'stable-debug'), (500, 'stable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386, armhf

Kernel: Linux 4.9.0-3-amd64 (SMP w/6 CPU cores)
Locale: LANG=ru_RU.utf8, LC_CTYPE=ru_RU.utf8 (charmap=UTF-8), LANGUAGE=ru_RU.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: sysvinit (via /sbin/init)

Versions of packages cryptsetup-bin depends on:
ii  libc6           2.24-11+deb9u1
ii  libcryptsetup4  2:1.7.3-4
ii  libpopt0        1.16-10+b2
ii  libuuid1        2.29.2-1

cryptsetup-bin recommends no packages.

cryptsetup-bin suggests no packages.

-- no debconf information
-------------- next part --------------
#0  0xb777acf9 in __kernel_vsyscall ()
No symbol table info available.
#1  0xb76487a2 in semop (semid=196610, sops=0xbfcc2a06, nsops=1) at ../sysdeps/unix/sysv/linux/semop.c:31
        resultvar = <optimized out>
        resultvar = <optimized out>
#2  0xb75051d7 in _udev_wait (cookie=cookie at entry=223173280, nowait=nowait at entry=0xbfcc2a38) at libdm-common.c:2607
        semid = 196610
        sb = {sem_num = 0, sem_op = 0, sem_flg = 0}
        val = <optimized out>
#3  0xb7506811 in dm_udev_wait (cookie=223173280) at libdm-common.c:2626
        nowait = 0
        r = <optimized out>
#4  0xb7733320 in _dm_simple (task=task at entry=2, name=name at entry=0x807f8280 "sda5_crypt", udev_wait=<optimized out>, udev_wait at entry=1) at libdevmapper.c:465
        r = 1
        dmt = 0x807f8990
        cookie = 223173280
#5  0xb77346f1 in dm_remove_device (cd=0x807f8290, name=0x807f8280 "sda5_crypt", force=0, size=0) at libdevmapper.c:521
        retries = 1
        error_target = <optimized out>
#6  0xb772c0a0 in crypt_deactivate (cd=0x807f8290, name=0x807f8280 "sda5_crypt") at setup.c:2266
        fake_cd = 0x0
        r = <optimized out>
#7  0x800f97f3 in action_close () at cryptsetup.c:395
        cd = 0x807f8290
        r = 0
#8  0x800f5bc9 in run_action (action=<optimized out>) at cryptsetup.c:1471
        r = 0
#9  main (argc=<optimized out>, argv=<optimized out>) at cryptsetup.c:1769
        popt_tmp = 0x0
        popt_help_options = {{longName = 0x0, shortName = 0 '\000', argInfo = 5, arg = 0x800f9830 <help>, val = 0, descrip = 0x0, argDescrip = 0x0}, {
            longName = 0x800fd27a "help", shortName = 63 '?', argInfo = 0, arg = 0x0, val = 0, descrip = 0x800fd27f "Show this help message", argDescrip = 0x0}, {
            longName = 0x800fd2a4 "usage", shortName = 0 '\000', argInfo = 0, arg = 0x0, val = 0, descrip = 0x800fd296 "Display brief usage", argDescrip = 0x0}, {longName = 0x0, 
            shortName = 0 '\000', argInfo = 0, arg = 0x0, val = 0, descrip = 0x0, argDescrip = 0x0}}
        popt_options = {{longName = 0x0, shortName = 0 '\000', argInfo = 4, arg = 0x80104020 <popt_help_options>, val = 0, descrip = 0x800fd2aa "Help options:", 
            argDescrip = 0x0}, {longName = 0x800fd2c6 "version", shortName = 0 '\000', argInfo = 0, arg = 0x801057ec <opt_version_mode>, val = 0, 
            descrip = 0x800fd2b8 "Print package version", argDescrip = 0x0}, {longName = 0x800fd2ce "verbose", shortName = 118 'v', argInfo = 0, arg = 0x8010476c <opt_verbose>, 
            val = 0, descrip = 0x800fe620 "Shows more detailed error messages", argDescrip = 0x0}, {longName = 0x800fd2d6 "debug", shortName = 0 '\000', argInfo = 0, 
            arg = 0x80104768 <opt_debug>, val = 0, descrip = 0x800fd2dc "Show debug messages", argDescrip = 0x0}, {longName = 0x800fd5a5 "cipher", shortName = 99 'c', 
            argInfo = 1, arg = 0x801058d4 <opt_cipher>, val = 0, descrip = 0x800fe644 "The cipher used to encrypt the disk (see /proc/crypto)", argDescrip = 0x0}, {
            longName = 0x800fd2f0 "hash", shortName = 104 'h', argInfo = 1, arg = 0x801058d0 <opt_hash>, val = 0, 
            descrip = 0x800fe67c "The hash used to create the encryption key from the passphrase", argDescrip = 0x0}, {longName = 0x800fd2f5 "verify-passphrase", 
            shortName = 121 'y', argInfo = 0, arg = 0x801058cc <opt_verify_passphrase>, val = 0, descrip = 0x800fe6bc "Verifies the passphrase by asking for it twice", 
            argDescrip = 0x0}, {longName = 0x800fd328 "key-file", shortName = 100 'd', argInfo = 1, arg = 0x801058c8 <opt_key_file>, val = 5, 
            descrip = 0x800fd307 "Read the key from a file.", argDescrip = 0x0}, {longName = 0x800fd321 "master-key-file", shortName = 0 '\000', argInfo = 1, 
            arg = 0x80105830 <opt_master_key_file>, val = 0, descrip = 0x800fe6ec "Read the volume (master) key from file.", argDescrip = 0x0}, {
            longName = 0x800fd331 "dump-master-key", shortName = 0 '\000', argInfo = 0, arg = 0x801057d8 <opt_dump_master_key>, val = 0, 
            descrip = 0x800fe714 "Dump volume (master) key instead of keyslots info.", argDescrip = 0x0}, {longName = 0x800fd341 "key-size", shortName = 115 's', argInfo = 2, 
            arg = 0x80105820 <opt_key_size>, val = 0, descrip = 0x800fe748 "The size of the encryption key", argDescrip = 0x800fd34a "BITS"}, {
            longName = 0x800fd376 "keyfile-size", shortName = 108 'l', argInfo = 3, arg = 0x8010581c <opt_keyfile_size>, val = 0, 
            descrip = 0x800fd34f "Limits the read from keyfile", argDescrip = 0x800fd36c "bytes"}, {longName = 0x800fd387 "keyfile-offset", shortName = 0 '\000', argInfo = 3, 
            arg = 0x80105814 <opt_keyfile_offset>, val = 0, descrip = 0x800fe768 "Number of bytes to skip in keyfile", argDescrip = 0x800fd36c "bytes"}, {
            longName = 0x800fd372 "new-keyfile-size", shortName = 0 '\000', argInfo = 3, arg = 0x80105818 <opt_new_keyfile_size>, val = 0, 
            descrip = 0x800fe78c "Limits the read from newly added keyfile", argDescrip = 0x800fd36c "bytes"}, {longName = 0x800fd383 "new-keyfile-offset", shortName = 0 '\000', 
            argInfo = 3, arg = 0x80105810 <opt_new_keyfile_offset>, val = 0, descrip = 0x800fe7b8 "Number of bytes to skip in newly added keyfile", 
            argDescrip = 0x800fd36c "bytes"}, {longName = 0x800fd396 "key-slot", shortName = 83 'S', argInfo = 2, arg = 0x80104010 <opt_key_slot>, val = 0, 
            descrip = 0x800fe7e8 "Slot number for new key (default is first free)", argDescrip = 0x0}, {longName = 0x800fd37e "size", shortName = 98 'b', argInfo = 1, 
            arg = 0x801057a0 <popt_tmp>, val = 1, descrip = 0x800fd39f "The size of the device", argDescrip = 0x800fd3b6 "SECTORS"}, {longName = 0x800fd38f "offset", 
            shortName = 111 'o', argInfo = 1, arg = 0x801057a0 <popt_tmp>, val = 2, descrip = 0x800fe818 "The start offset in the backend device", 
            argDescrip = 0x800fd3b6 "SECTORS"}, {longName = 0x800fd3be "skip", shortName = 112 'p', argInfo = 1, arg = 0x801057a0 <popt_tmp>, val = 3, 
            descrip = 0x800fe840 "How many sectors of the encrypted data to skip at the beginning", argDescrip = 0x800fd3b6 "SECTORS"}, {longName = 0x800fcea8 "readonly", 
            shortName = 114 'r', argInfo = 0, arg = 0x801057f0 <opt_readonly>, val = 0, descrip = 0x800fd3c3 "Create a readonly mapping", argDescrip = 0x0}, {
            longName = 0x800fd3dd "iter-time", shortName = 105 'i', argInfo = 2, arg = 0x8010400c <opt_iteration_time>, val = 0, 
            descrip = 0x800fe880 "PBKDF2 iteration time for LUKS (in ms)", argDescrip = 0x800fd3e7 "msecs"}, {longName = 0x800fd3ed "batch-mode", shortName = 113 'q', 
            argInfo = 0, arg = 0x80104764 <opt_batch_mode>, val = 0, descrip = 0x800fd3f8 "Do not ask for confirmation", argDescrip = 0x0}, {longName = 0x800fd414 "timeout", 
            shortName = 116 't', argInfo = 2, arg = 0x801057e8 <opt_timeout>, val = 0, descrip = 0x800fe8a8 "Timeout for interactive passphrase prompt (in seconds)", 
            argDescrip = 0x800fd3e8 "secs"}, {longName = 0x800fd41c "tries", shortName = 84 'T', argInfo = 2, arg = 0x80104008 <opt_tries>, val = 0, 
            descrip = 0x800fe8e0 "How often the input of the passphrase can be retried", argDescrip = 0x0}, {longName = 0x800fd422 "align-payload", shortName = 0 '\000', 
            argInfo = 2, arg = 0x801057e4 <opt_align_payload>, val = 0, descrip = 0x800fe918 "Align payload at <n> sector boundaries - for luksFormat", 
            argDescrip = 0x800fd3b6 "SECTORS"}, {longName = 0x800fd430 "header-backup-file", shortName = 0 '\000', argInfo = 1, arg = 0x8010582c <opt_header_backup_file>, 
            val = 0, descrip = 0x800fe950 "File with LUKS header and keyslots backup.", argDescrip = 0x0}, {longName = 0x800fd443 "use-random", shortName = 0 '\000', argInfo = 0, 
            arg = 0x801057e0 <opt_random>, val = 0, descrip = 0x800fe97c "Use /dev/random for generating volume key.", argDescrip = 0x0}, {longName = 0x800fd44e "use-urandom", 
            shortName = 0 '\000', argInfo = 0, arg = 0x801057dc <opt_urandom>, val = 0, descrip = 0x800fe9a8 "Use /dev/urandom for generating volume key.", argDescrip = 0x0}, {
            longName = 0x800fd45a "shared", shortName = 0 '\000', argInfo = 0, arg = 0x801057d4 <opt_shared>, val = 0, 
            descrip = 0x800fe9d4 "Share device with another non-overlapping crypt segment.", argDescrip = 0x0}, {longName = 0x800fd461 "uuid", shortName = 0 '\000', argInfo = 1, 
            arg = 0x80105828 <opt_uuid>, val = 0, descrip = 0x800fd466 "UUID for device to use.", argDescrip = 0x0}, {longName = 0x800fd47e "allow-discards", 
            shortName = 0 '\000', argInfo = 0, arg = 0x801057d0 <opt_allow_discards>, val = 0, descrip = 0x800fea10 "Allow discards (aka TRIM) requests for device.", 
            argDescrip = 0x0}, {longName = 0x800fd48d "header", shortName = 0 '\000', argInfo = 1, arg = 0x80105824 <opt_header_device>, val = 0, 
            descrip = 0x800fea40 "Device or file with separated LUKS header.", argDescrip = 0x0}, {longName = 0x800fd494 "test-passphrase", shortName = 0 '\000', argInfo = 0, 
            arg = 0x801057c4 <opt_test_passphrase>, val = 0, descrip = 0x800fea6c "Do not activate device, just check passphrase.", argDescrip = 0x0}, {
            longName = 0x800fd4a4 "tcrypt-hidden", shortName = 0 '\000', argInfo = 0, arg = 0x801057c0 <opt_tcrypt_hidden>, val = 0, 
            descrip = 0x800fea9c "Use hidden header (hidden TCRYPT device).", argDescrip = 0x0}, {longName = 0x800fd4b2 "tcrypt-system", shortName = 0 '\000', argInfo = 0, 
            arg = 0x801057bc <opt_tcrypt_system>, val = 0, descrip = 0x800feac8 "Device is system TCRYPT drive (with bootloader).", argDescrip = 0x0}, {
            longName = 0x800fd4c0 "tcrypt-backup", shortName = 0 '\000', argInfo = 0, arg = 0x801057b8 <opt_tcrypt_backup>, val = 0, 
            descrip = 0x800feafc "Use backup (secondary) TCRYPT header.", argDescrip = 0x0}, {longName = 0x800fd4ce "veracrypt", shortName = 0 '\000', argInfo = 0, 
            arg = 0x801057b4 <opt_veracrypt>, val = 0, descrip = 0x800feb24 "Scan also for VeraCrypt compatible device.", argDescrip = 0x0}, {longName = 0x800fd4d8 "type", 
            shortName = 77 'M', argInfo = 1, arg = 0x80104298 <opt_type>, val = 0, descrip = 0x800feb50 "Type of device metadata: luks, plain, loopaes, tcrypt.", 
            argDescrip = 0x0}, {longName = 0x800fd4dd "force-password", shortName = 0 '\000', argInfo = 0, arg = 0x80105784 <opt_force_password>, val = 0, 
            descrip = 0x800feb88 "Disable password quality check (if enabled).", argDescrip = 0x0}, {longName = 0x800fd4ec "perf-same_cpu_crypt", shortName = 0 '\000', 
            argInfo = 0, arg = 0x801057cc <opt_perf_same_cpu_crypt>, val = 0, descrip = 0x800febb8 "Use dm-crypt same_cpu_crypt performance compatibility option.", 
            argDescrip = 0x0}, {longName = 0x800fd500 "perf-submit_from_crypt_cpus", shortName = 0 '\000', argInfo = 0, arg = 0x801057c8 <opt_perf_submit_from_crypt_cpus>, 
            val = 0, descrip = 0x800febf8 "Use dm-crypt submit_from_crypt_cpus performance compatibility option.", argDescrip = 0x0}, {longName = 0x0, shortName = 0 '\000', 
            argInfo = 0, arg = 0x0, val = 0, descrip = 0x0, argDescrip = 0x0}}
        popt_context = <optimized out>
        action = <optimized out>
        aname = <optimized out>
        r = <optimized out>
        total_keyfiles = <optimized out>


More information about the pkg-cryptsetup-devel mailing list