[Bug 214923] kqueue hangs with busy loop

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Tue Nov 29 08:17:19 UTC 2016


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=214923

            Bug ID: 214923
           Summary: kqueue hangs with busy loop
           Product: Base System
           Version: 11.0-RELEASE
          Hardware: amd64
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: kern
          Assignee: freebsd-bugs at FreeBSD.org
          Reporter: yjh0502 at gmail.com
                CC: freebsd-amd64 at FreeBSD.org
                CC: freebsd-amd64 at FreeBSD.org

I used watchman[1] for monitoring file changes, and watchman process hangs on
infinite loop occasionally. Here's dtrace trace for hanging process.

---
root at hostname:~ # dtrace -n 'profile-997 /pid == 85473/ { @[stack()] = count()
}'
dtrace: description 'profile-997 ' matched 1 probe
^C


              kernel`kqueue_kevent+0x369
              kernel`0xffffffff80f8442b
                4

              kernel`kqueue_kevent+0x37b
              kernel`0xffffffff80f8442b
                8

              kernel`kqueue_kevent+0x3b5
              kernel`0xffffffff80f8442b
               14

              kernel`kqueue_kevent+0xda1
              kernel`0xffffffff80f8442b
               25

              kernel`kqueue_kevent+0xdc9
              kernel`0xffffffff80f8442b
               29

              kernel`kqueue_kevent+0x44b
              kernel`0xffffffff80f8442b
               31

              kernel`kqueue_kevent+0x3c7
              kernel`0xffffffff80f8442b
               45

              kernel`kqueue_kevent+0x43c
              kernel`0xffffffff80f8442b
               49

              kernel`kqueue_kevent+0x38c
              kernel`0xffffffff80f8442b
               52

              kernel`kqueue_kevent+0x453
              kernel`0xffffffff80f8442b
               54

              kernel`kqueue_kevent+0x2f0
              kernel`0xffffffff80f8442b
               57
              kernel`kqueue_kevent+0xda3
              kernel`0xffffffff80f8442b
               58

              kernel`kqueue_kevent+0xdaa
              kernel`0xffffffff80f8442b
               58

              kernel`kqueue_kevent+0x3b8
              kernel`0xffffffff80f8442b
               58

              kernel`kqueue_kevent+0x3bd
              kernel`0xffffffff80f8442b
               59

              kernel`kqueue_kevent+0x444
              kernel`0xffffffff80f8442b
               65

              kernel`kqueue_kevent+0xdd7
              kernel`0xffffffff80f8442b
               67

              kernel`kqueue_kevent+0x3cb
              kernel`0xffffffff80f8442b
               83

              kernel`kqueue_kevent+0x34f
              kernel`0xffffffff80f8442b
               91

              kernel`kqueue_kevent+0x440
              kernel`0xffffffff80f8442b
               94

              kernel`kqueue_kevent+0x348
              kernel`0xffffffff80f8442b
               97

              kernel`kqueue_kevent+0xd93
              kernel`0xffffffff80f8442b
              109

              kernel`kqueue_kevent+0x2f5
              kernel`0xffffffff80f8442b
              113

              kernel`kqueue_kevent+0x393
              kernel`0xffffffff80f8442b
              122

              kernel`kqueue_kevent+0x37f
              kernel`0xffffffff80f8442b
              126

              kernel`kqueue_kevent+0x3cf
              kernel`0xffffffff80f8442b
              126

              kernel`kqueue_kevent+0x356
              kernel`0xffffffff80f8442b
              168

              kernel`kqueue_kevent+0xdd0
              kernel`0xffffffff80f8442b
              266

              kernel`kqueue_kevent+0x382
              kernel`0xffffffff80f8442b
              399

              kernel`kqueue_kevent+0x36d
              kernel`0xffffffff80f8442b
              437

              kernel`kqueue_kevent+0x39a
              kernel`0xffffffff80f8442b
              465

              kernel`kqueue_kevent+0x365
              kernel`0xffffffff80f8442b
              969

              kernel`kqueue_kevent+0x3a4
              kernel`0xffffffff80f8442b
             1243

              kernel`kqueue_kevent+0x3a0
              kernel`0xffffffff80f8442b
             3513

              kernel`kqueue_kevent+0x385
              kernel`0xffffffff80f8442b
             3713

              kernel`kqueue_kevent+0xdde
              kernel`0xffffffff80f8442b
             3751

              kernel`kqueue_kevent+0x371
              kernel`0xffffffff80f8442b
             3752

              kernel`kqueue_kevent+0x3c2
              kernel`0xffffffff80f8442b
             3866

              kernel`kqueue_kevent+0x438
              kernel`0xffffffff80f8442b
             3890

              kernel`kqueue_kevent+0x35d
              kernel`0xffffffff80f8442b
             3891

              kernel`kqueue_kevent+0x3ab
              kernel`0xffffffff80f8442b
             3934

              kernel`kqueue_kevent+0xd9a
              kernel`0xffffffff80f8442b
             4046

              kernel`kqueue_kevent+0x3ba
              kernel`0xffffffff80f8442b
             4067

              kernel`kqueue_kevent+0x3ae
              kernel`0xffffffff80f8442b
             4109

              kernel`kqueue_kevent+0xdc2
              kernel`0xffffffff80f8442b
             4115

              kernel`kqueue_kevent+0x341
              kernel`0xffffffff80f8442b
             4125

              kernel`kqueue_kevent+0x447
              kernel`0xffffffff80f8442b
             9275

              kernel`kqueue_kevent+0x374
              kernel`0xffffffff80f8442b
            11043

              kernel`kqueue_kevent+0x3a8
              kernel`0xffffffff80f8442b
            17816
---

Here's ps output
---
root      85473 100.0  0.2   47424   3760  -  L    19Oct16     13:10.30
/usr/local/bin/watchman -p -j --server-encoding=json --output-encoding=bser
---

`top` shows that watchman process spins on kqueue call
---
  PID USERNAME     THR PRI NICE   SIZE    RES STATE   C   TIME    WCPU COMMAND
85473 root           4  20    0 47424K  3760K *kqueu  2  13:32  97.82% watchman
---

The host uses zfs filesystem on root. In this case problem arises on
11.0-RELEASE-p3, but I faced the problem from 10.3 releases. The host runs on
top of KVM hypervisor. `dmesg` does not show any logs from kernel. Please let
me know if I'm missing some information.



[1] https://facebook.github.io/watchman/

-- 
You are receiving this mail because:
You are on the CC list for the bug.


More information about the freebsd-amd64 mailing list