Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 13 Aug 2019 21:12:46 +0000
From:      bugzilla-noreply@freebsd.org
To:        ports-bugs@FreeBSD.org
Subject:   [Bug 239831] sysutils/fusefs-lkl: lklfuse hangs on SIGINT on CURRENT
Message-ID:  <bug-239831-7788@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D239831

            Bug ID: 239831
           Summary: sysutils/fusefs-lkl: lklfuse hangs on SIGINT on
                    CURRENT
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Many People
          Priority: ---
         Component: Individual Port(s)
          Assignee: cem@freebsd.org
          Reporter: asomers@FreeBSD.org
             Flags: maintainer-feedback?(cem@freebsd.org)
          Assignee: cem@freebsd.org

On a recent head, lklfuse hangs on SIGINT (but not on normal unmount).  The
problem can be easily reproduced by running lklfuse in debug mode, then
issueing CTRL-C.

> uname -a
FreeBSD arginine-fbsd-head 13.0-CURRENT FreeBSD 13.0-CURRENT #7 r350943M: M=
on
Aug 12 22:46:56 UTC 2019=20=20=20=20
somers@arginine-fbsd-head:/usr/obj/usr/home/somers/freebsd/base/head/amd64.=
amd64/sys/GENERIC
 amd64
>=20
lklfuse -o type=3Dext2,debug /tmp/ext2.img /tmp/mnt
FUSE library version: 2.9.9
nullpath_ok: 1
nopath: 1
utime_omit_ok: 1
[    0.000000] Linux version 4.16.0 (root@head-amd64-default-job-13) (gcc
version 9.1.0 (FreeBSD Ports Collection)) #1 Sat Aug 3 20:01:57 UTC 2019
[    0.000000] bootmem address range: 0x802601000 - 0x806600000
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 16159
[    0.000000] Kernel command line: mem=3D64M virtio_mmio.device=3D292@0x10=
00000:1
[    0.000000] Dentry cache hash table entries: 8192 (order: 4, 65536 bytes)
[    0.000000] Inode-cache hash table entries: 4096 (order: 3, 32768 bytes)
[    0.000000] Memory available: 64440k/65532k RAM
[    0.000000] SLUB: HWalign=3D32, Order=3D0-3, MinObjects=3D0, CPUs=3D1, N=
odes=3D1
[    0.000000] NR_IRQS: 4096
[    0.000000] lkl: irqs initialized
[    0.000000] clocksource: lkl: mask: 0xffffffffffffffff max_cycles:
0x1cd42e4dffb, max_idle_ns: 881590591483 ns
[    0.000007] lkl: time and timers initialized (irq2)
[    0.000033] pid_max: default: 4096 minimum: 301
[    0.000059] Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
[    0.000068] Mountpoint-cache hash table entries: 512 (order: 0, 4096 byt=
es)
[    0.006301] console [lkl_console0] enabled
[    0.006324] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xfffffff=
f,
max_idle_ns: 19112604462750000 ns
[    0.006336] xor: automatically using best checksumming function   8regs=
=20=20=20=20=20
[    0.006393] random: get_random_u32 called from bucket_table_alloc+0x8b/0=
x240
with crng_init=3D0
[    0.006424] NET: Registered protocol family 16
[    0.334184] raid6: int64x1  gen()  9489 MB/s
[    0.674170] raid6: int64x1  xor()  5417 MB/s
[    1.014266] raid6: int64x2  gen() 11916 MB/s
[    1.354327] raid6: int64x2  xor()  6942 MB/s
[    1.694230] raid6: int64x4  gen()  8790 MB/s
[    2.034345] raid6: int64x4  xor()  6150 MB/s
[    2.374362] raid6: int64x8  gen()  8616 MB/s
[    2.554210] random: fast init done
[    2.714301] raid6: int64x8  xor()  6065 MB/s
[    2.714324] raid6: using algorithm int64x2 gen() 11916 MB/s
[    2.714334] raid6: .... xor() 6942 MB/s, rmw enabled
[    2.714343] raid6: using intx1 recovery algorithm
[    2.714526] clocksource: Switched to clocksource lkl
[    2.714702] NET: Registered protocol family 2
[    2.714934] tcp_listen_portaddr_hash hash table entries: 256 (order: 0, =
4096
bytes)
[    2.714966] TCP established hash table entries: 512 (order: 0, 4096 byte=
s)
[    2.714994] TCP bind hash table entries: 512 (order: 0, 4096 bytes)
[    2.715023] TCP: Hash tables configured (established 512 bind 512)
[    2.715081] UDP hash table entries: 128 (order: 0, 4096 bytes)
[    2.715091] UDP-Lite hash table entries: 128 (order: 0, 4096 bytes)
[    2.715198] virtio-mmio: Registering device virtio-mmio.0 at
0x1000000-0x1000123, IRQ 1.
[    2.716274] workingset: timestamp_bits=3D62 max_order=3D14 bucket_order=
=3D0
[    2.717085] SGI XFS with ACLs, security attributes, no debug enabled
[    2.738308] io scheduler noop registered
[    2.738370] io scheduler deadline registered
[    2.738417] io scheduler cfq registered (default)
[    2.738430] io scheduler mq-deadline registered
[    2.738439] io scheduler kyber registered
[    2.738459] virtio-mmio virtio-mmio.0: Failed to enable 64-bit or 32-bit
DMA.  Trying to continue, but this might not work.
[    2.741372] virtio_blk virtio0: [vda] 2097152 512-byte logical blocks (1=
.07
GB/1.00 GiB)
[    2.742789] NET: Registered protocol family 10
[    2.743873] Segment Routing with IPv6
[    2.743909] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    2.744330] Btrfs loaded, crc32c=3Dcrc32c-generic
[    2.744548] Warning: unable to open an initial console.
[    2.744604] This architecture does not have kernel memory protection.
[    2.746119] EXT4-fs (vda): mounting ext2 file system using the ext4
subsystem
[    2.747607] EXT4-fs (vda): mounted filesystem without journal. Opts:=20
warning: multithreaded mode not supported
unique: 1, opcode: INIT (26), nodeid: 0, insize: 56, pid: 1862
INIT: 7.23
flags=3D0x00010033
max_readahead=3D0x00010000
   INIT: 7.19
   flags=3D0x00000011
   max_readahead=3D0x00010000
   max_write=3D0x00020000
   max_background=3D0
   congestion_threshold=3D0
   unique: 1, success, outsize: 40
^C[   10.800564] EXT4-fs (vda): re-mounted. Opts: (null)
[   10.800951] reboot: Restarting system
> procstat -kk 1860
  PID    TID COMM                TDNAME              KSTACK=20=20=20=20=20=
=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20
 1860 100119 lklfuse             -                   mi_switch+0x494
sleepq_switch+0x348 sleepq_catch_signals+0x6e2 sleepq_timedwait_sig+0x1b
_sleep+0x6e4 fdisp_wait_answ+0x164 fuse_vfsop_unmount+0x103 dounmount+0x675
sys_unmount+0x4bc syscallenter+0x4e1 amd64_syscall+0x1b
fast_syscall_common+0x101=20
 1860 100768 lklfuse             -                   mi_switch+0x494
sleepq_switch+0x348 sleepq_catch_signals+0x6e2 sleepq_wait_sig+0x1b
_sleep+0x721 kern_sigtimedwait+0x521 sys_sigwaitinfo+0x8e syscallenter+0x4e1
amd64_syscall+0x1b fast_syscall_common+0x101

The procstat output shows that lklfuse is stuck in unmount while waiting fo=
r a
reponse from the server (i.e. itself).  That suggests that there's an order=
ing
bug in the shutdown procedure.  It's as if the FUSE thread shuts down before
the unmount is complete.

This bug is also reproducible on 11.3-RELEASE-p1, so the bug lies in lklfus=
e,
and not the new fusefs(5) driver.

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-239831-7788>