Hi.

It seems I catched some bug in kernel. I use some ugly program which
connects to COM-port and tries to do some activity.
You can see it's source here http://pastebin.com/kHLy26GD

I start it and try to kill it
# ./ct
writing bytes 36        [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 ff 0 0 0 ff 0 0 0 2 e0 41 df ]
read 0 bytes            [ 0 0 0 0 0 0 0 0 0 0 0 0 0 ]

writing bytes 13        [ 1 80 0 0 4 0 2 17 f0 0 0 0 0 ]
read 0 bytes            [ 0 0 0 0 0 0 0 0 0 0 0 0 0 ]

writing bytes 13        [ 1 80 0 0 4 0 2 17 f0 0 0 0 0 ]
read 0 bytes            [ 0 0 0 0 0 0 0 0 0 0 0 0 0 ]

writing bytes 13        [ 1 80 0 0 4 0 2 17 f0 0 0 0 0 ]
read 0 bytes            [ 0 0 0 0 0 0 0 0 0 0 0 0 0 ]

writing bytes 13        [ 1 80 0 0 4 0 2 17 f0 0 0 0 0 ]
^C
...and here I can't even kill -KILL it.

I drop into ddb and gather some information. Then I tried to do "boot
sync" and seen panic.
I'm a little confused about root of the bug - is it COM-port related
issue or "idle" related issue.


login: Stopped at      Debugger+0x4:   popl    %ebp
ddb> trace
Debugger(0,3f8,0,d073c119,b0) at Debugger+0x4
comintr(d155f000) at comintr+0x287
Xrecurse_legacy4() at Xrecurse_legacy4+0xb3
--- interrupt ---
apm_cpu_idle(d03d9015,d0a2ee34,d0ae9220,d989b000,d5d3b13c) at apm_cpu_idle+0x8a

cpu_idle_cycle(d0ae9220) at cpu_idle_cycle+0xc
Bad frame pointer: 0xd0ba0e48

ddb> ps
   PID   PPID   PGRP    UID  S       FLAGS  WAIT          COMMAND
 28942  12726  28942      0  3      0x6080  ttyout        ct
 12726   4622  12726      0  3      0x4080  pause         ksh
  7904      1   7904      0  3      0x4080  ttyin         getty
  9697      1   9697      0  3      0x4080  ttyin         getty
 11903      1  11903      0  3      0x4080  ttyin         getty
  7081      1   7081      0  3      0x4080  ttyin         getty
  2033      1   2033      0  3      0x4080  ttyin         getty
 24882      1  24882      0  3      0x4080  ttyin         getty
 11773      1  11773      0  3        0x80  select        cron
  4622   2038   4622      0  3      0x4080  select        sshd
 11364      1  11364     77  3       0x180  poll          dhclient
  7987      1   7987      0  3     0x40180  select        sendmail
 21377      1  10736      0  3        0x80  poll          dhclient
 12123  31014  10736      0  3        0x80  netio         tcpdump
 31014      1  10736     76  3      0x4180  bpf           tcpdump
 18935      1  18935      0  3       0x180  select        inetd
  2038      1   2038      0  3        0x80  select        sshd
  2509  12112  12112     74  3       0x180  bpf           pflogd
 12112      1  12112      0  3        0x80  netio         pflogd
 25827  10246  10246     73  3       0x180  poll          syslogd
 10246      1  10246      0  3        0x88  netio         syslogd
  9966      1   9966      0  3        0x80  mfsidl        mount_mfs
    14      0      0      0  3    0x100200  aiodoned      aiodoned
    13      0      0      0  3    0x100200  syncer        update
    12      0      0      0  3    0x100200  cleaner       cleaner
    11      0      0      0  3    0x100200  reaper        reaper
    10      0      0      0  3    0x100200  pgdaemon      pagedaemon
     9      0      0      0  3    0x100200  bored         crypto
     8      0      0      0  3    0x100200  pftm          pfpurge
     7      0      0      0  3    0x100200  usbtsk        usbtask
     6      0      0      0  3    0x100200  usbatsk       usbatsk
     5      0      0      0  3    0x100200  apmev         apm0
     4      0      0      0  3    0x100200  bored         syswq
*    3      0      0      0  7  0x40100200                idle0
     2      0      0      0  3    0x100200  kmalloc       kmthread
     1      0      1      0  3      0x4080  wait          init
     0     -1      0      0  3     0x80200  scheduler     swapper

ddb> show registers
ds                  0x10
es            0xd0200010        kernel_text+0x10
fs              0x120058
gs            0xd9890010        end+0x8da418c
edi           0xd1535a60        end+0xa49bdc
esi           0xd155f0ac        end+0xa73228
ebp           0xd989ce90        end+0x8db100c
ebx                 0xf9
edx                0x3f8
ecx           0xd155f000        end+0xa7317c
eax                  0x1
eip           0xd056bf44        Debugger+0x4
cs            0xd0200050        kernel_text+0x50
eflags             0x202
esp           0xd989ce90        end+0x8db100c
ss            0xd9890010        end+0x8da418c
Debugger+0x4:   popl    %ebp

ddb> show panic
the kernel did not panic

ddb> show extents
extent `swap0x0000' (0x0 - 0xff45), flags=0
     0x0 - 0x0
extent `swapmap' (0x1 - 0x7fffffff), flags=0
     0x1 - 0xff46
extent `pcimem' (0x0 - 0xffffffff), flags=0
     0x1000 - 0x1fffffff
     0xf8000000 - 0xfbffffff
     0xfebd9000 - 0xfebdafff
     0xfebdb400 - 0xfebdb4ff
     0xfebdb800 - 0xfebdb8ff
     0xfebdbc00 - 0xfebdbcff
     0xfebdc000 - 0xfebfffff
     0xff000000 - 0xffffffff
extent `pciio' (0x0 - 0xffffffff), flags=0
     0x5800 - 0x5817
     0xde00 - 0xdeff
     0xdf80 - 0xdfff
     0xef00 - 0xef0f
     0x10000 - 0xffffffff
extent `PCI I/O port space' (0x0 - 0xffff), flags=0
     0x5800 - 0x5817
     0xde00 - 0xdeff
     0xdf80 - 0xdfff
     0xef00 - 0xef0f
extent `PCI I/O memory space' (0x0 - 0xffffffff), flags=0
     0xf8000000 - 0xfbffffff
     0xfebd9000 - 0xfebdafff
     0xfebdb400 - 0xfebdb4ff
     0xfebdb800 - 0xfebdb8ff
     0xfebdbc00 - 0xfebdbcff
     0xfebdc000 - 0xfecfffff
     0xfee00000 - 0xfeefffff
     0xfffe0000 - 0xffffffff
extent `iomem' (0x0 - 0xffffffff), flags=3<NOCOALESCE,FIXED>
     0x400 - 0xfff
     0x2000 - 0x214b
     0x8000 - 0x9efff
     0xa0000 - 0xbffff
     0xc0000 - 0xc7fff
     0xe9400 - 0xe95ff
     0xf0000 - 0xfffff
     0x100000 - 0x1fffffff
     0xfebd9000 - 0xfebd9fff
     0xfebda000 - 0xfebdafff
     0xfebdb400 - 0xfebdb4ff
     0xfebdb800 - 0xfebdb8ff
     0xfebdbc00 - 0xfebdbcff
extent `ioport' (0x0 - 0xffff), flags=3<NOCOALESCE,FIXED>
     0x0 - 0xb
     0x40 - 0x43
     0x60 - 0x60
     0x61 - 0x61
     0x64 - 0x64
     0x80 - 0x8e
     0xc0 - 0xd7
     0x1f0 - 0x1f7
     0x3c0 - 0x3cf
     0x3d0 - 0x3df
     0x3e8 - 0x3ef
     0x3f6 - 0x3f6
     0x3f8 - 0x3ff
     0xef00 - 0xef0f

ddb> show malloc
           Type InUse  MemUse  HighUse   Limit  Requests Type Lim Kern Lim
         devbuf   581    399K     399K  39321K       920        0        0
            pcb    28      5K       5K  39321K        60        0        0
       routetbl    71      4K       4K  39321K       131        0        0
         ifaddr    40     11K      11K  39321K        41        0        0
         sysctl     2      0K       0K  39321K         2        0        0
       ioctlops     0      0K       4K  39321K      1449        0        0
          mount     9      4K       4K  39321K         9        0        0
         vnodes  1448     90K      90K  39321K      1452        0        0
      UFS quota     1     16K      16K  39321K         1        0        0
      UFS mount    17     33K      33K  39321K        17        0        0
            shm     2      0K       0K  39321K         2        0        0
         VM map     2      0K       0K  39321K         2        0        0
            sem     2      0K       0K  39321K         2        0        0
        dirhash    24      4K       4K  39321K        24        0        0
           proc     9      4K       4K  39321K         9        0        0
       MFS node     1      0K       0K  39321K         1        0        0
    NFS srvsock     1      0K       0K  39321K         1        0        0
     NFS daemon     1      0K       0K  39321K         1        0        0
       in_multi    24      0K       0K  39321K        25        0        0
    ether_multi     4      0K       0K  39321K         5        0        0
    ISOFS mount     1     16K      16K  39321K         1        0        0
  MSDOSFS mount     1      8K       8K  39321K         1        0        0
           ttys   420    308K     308K  39321K       420        0        0
           exec     0      0K       1K  39321K       166        0        0
     pfkey data     1      0K       0K  39321K         2        0        0
        pagedep     1      4K       4K  39321K         1        0        0
       inodedep     1     16K      16K  39321K         1        0        0
         newblk     1      0K       0K  39321K         1        0        0
        VM swap     7     22K      22K  39321K         7        0        0
       UVM amap   668     71K      71K  39321K      6269        0        0
       UVM aobj     2      1K       1K  39321K         2        0        0
            USB    61     13K      13K  39321K        61        0        0
     USB device    14      0K       0K  39321K        14        0        0
    crypto data     1      1K       1K  39321K         1        0        0
    packet tags     0      0K       0K  39321K         1        0        0
            NDP     6      0K       0K  39321K         7        0        0
           temp    42      5K      12K  39321K      1071        0        0
      NTFS hash     1     16K      16K  39321K         1        0        0

ddb> show buf
  vp 0x4489c0b7 lblkno 0x4c8910fbc1082444 blkno 0x66ffe80b4de80424 dev 0xc7cc24
04
  proc 0x53e58955 error -1947185919 flags 1711166203<AGE,NEEDCOMMIT,DELWRI,EINT
R,ERROR,INVAL,NOCACHE,PHYS,WRITEINPROG,XXX,DEFERRED,SCANNED>
  bufsize 0xd231f04d bcount 0x89f45d8b resid 0xc70c2454 sync 0x0
  data 0xb70fd08d saveaddr 0xd9ac0fc1 dep 0xb70fc800 iodone 0xfc0000f
  dirty {off 0x4c70424 end 0x8dc7f624} valid {off 0xb36e8d0 end 0xf66ffe8}

ddb> show proc
PROC (idle0) pid=3 stat=onproc flags=40100200<SYSTEM,NOZOMBIE,CPUPEG>
    pri=0, usrpri=86, nice=20
    forw=0xffffffff, list=0xd5d3b13c,0xd5d3b3bc
    process=0xd5d3a080 user=0xd989b000, vmspace=0xd0a2c8c0
    estcpu=36, cpticks=9381, pctcpu=0.36, swtime=141
    user=0, sys=0, intr=27

ddb> show uvmexp
Current UVM status:
  pagesize=4096 (0x1000), pagemask=0xfff, pageshift=12
  126390 VM pages: 2248 active, 1016 inactive, 0 wired, 117288 free
  min  10% (25) anon, 10% (25) vnode, 5% (12) vtext
  pages  0 anon, 0 vnode, 0 vtext
  freemin=4213, free-target=5617, inactive-target=0, wired-max=42130
  faults=23841, traps=25320, intrs=34260, ctxswitch=7918 fpuswitch=37
  softint=16982, syscalls=86837, swapins=0, swapouts=0, kmapent=15
  fault counts:
    noram=0, noanon=0, pgwait=0, pgrele=0
    ok relocks(total)=1948(1948), anget(retries)=13583(0), amapcopy=8121
    neighbor anon/obj pg=1207/13403, gets(lock/unlock)=6292/1948
    cases: anon=11116, anoncow=2467, obj=5792, prcopy=500, przero=3966
  daemon and swap counts:
    woke=0, revs=0, scans=0, obscans=0, anscans=0
    busy=0, freed=0, reactivate=0, deactivate=0
    pageouts=0, pending=0, nswget=0
    nswapdev=1, nanon=0, nanonneeded=0 nfreeanon=0
    swpages=65349, swpginuse=0, swpgonly=0 paging=0
  kernel pointers:
    objs(kern)=0xd0a0af00

ddb> show all callout
ticks now: 14179
    ticks  wheel       arg  func
        1  0/100         0  m_cltick
        2  0/101  d09e62a4  pffasttimo
        4  0/103  d1538000  vte_tick
       21  0/120  d09e634c  if_slowtimo
       21  0/120  d0a23160  pckbc_poll
       21  0/120         0  nd6_timer
       21  0/120  d09e7db0  rt_timer_timer
       21  0/120  d09e5ff0  schedcpu
       22  0/121  d09e628c  pfslowtimo
       29  0/128  d5b53008  endtsleep
       30  0/129  d5d319e4  endtsleep
       31  0/130  d5d319e4  realitexpire
       66  0/165  d5d3b8a4  endtsleep
      421  1/313  d5b534f8  endtsleep
      752  1/314  d5d313b8  realitexpire
     2764  1/322  d5b53770  endtsleep
    16604  1/376  d09e7dd8  arptimer
    45821  1/490         0  arc4_reinit
   172304  2/514  d5b534f8  realitexpire
   345821  2/517         0  nd6_slowtimo
   713864  2/523  d5b3d4cc  tcp_timer_keep
  8632426  2/643  d5d31c5c  endtsleep


and here is the panic

ddb> boot sync
syncing disks... splassert: assertwaitok: want -1 have 1
splassert: assertwaitok: want -1 have 1
panic: cpu_switch1 0xd5d3b278
Stopped at      Debugger+0x4:   popl    %ebp
RUN AT LEAST 'trace' AND 'ps' AND INCLUDE OUTPUT WHEN REPORTING THIS PANIC!
DO NOT EVEN BOTHER REPORTING THIS WITHOUT INCLUDING THAT INFORMATION!

ddb> trace
Debugger(d08dcd42,d98c8db0,d0200877,d98c8db0,7fffffff) at Debugger+0x4
panic(d0200877,d5d3b278,d5d22000,d5d313b8,7fffffff) at panic+0x5d
switch_error1(c0,d08b9e99,d5c447e8,d98c8e34,d98c8e34) at switch_error1+0xb
sleep_finish(d98c8e34,1,11,d08d20be,50) at sleep_finish+0x99
tsleep(d5c412fc,11,d08d20be,0,d5c42f0c) at tsleep+0x9d
vwaitforio(d5c41290,0,d08d20be,0,d5c41290) at vwaitforio+0x5a
ffs_fsync(d98c8ec8,20042,d5d313b8,0,0) at ffs_fsync+0x17f
VOP_FSYNC(d5c41290,d5d45000,1,d5d313b8,6) at VOP_FSYNC+0x30
sys_fsync(d5d313b8,d98c8f64,d98c8f84,d98c8fa8,d5d313b8) at sys_fsync+0x7a
syscall() at syscall+0x2f0
--- syscall (number 3) ---
0x2:

ddb> ps
   PID   PPID   PGRP    UID  S       FLAGS  WAIT          COMMAND
 28942  12726  28942      0  3      0x6080  ttyout        ct
 12726   4622  12726      0  3      0x4080  pause         ksh
  7904      1   7904      0  3      0x4080  ttyin         getty
  9697      1   9697      0  3      0x4080  ttyin         getty
 11903      1  11903      0  3      0x4080  ttyin         getty
  7081      1   7081      0  3      0x4080  ttyin         getty
  2033      1   2033      0  3      0x4080  ttyin         getty
 24882      1  24882      0  3      0x4080  ttyin         getty
 11773      1  11773      0  3        0x80  select        cron
  4622   2038   4622      0  3      0x4080  select        sshd
 11364      1  11364     77  3       0x180  poll          dhclient
  7987      1   7987      0  3     0x40180  select        sendmail
 21377      1  10736      0  3        0x80  poll          dhclient
 21377      1  10736      0  3        0x80  poll          dhclient
 31014      1  10736     76  3      0x4180  bpf           tcpdump
 18935      1  18935      0  3       0x180  select        inetd
  2038      1   2038      0  3        0x80  select        sshd
  2509  12112  12112     74  3       0x180  bpf           pflogd
 12112      1  12112      0  3        0x80  netio         pflogd
*25827  10246  10246     73  3       0x100  ffs_fsync     syslogd
 10246      1  10246      0  3        0x88  netio         syslogd
  9966      1   9966      0  3        0x80  mfsidl        mount_mfs
    14      0      0      0  3    0x100200  aiodoned      aiodoned
    13      0      0      0  3    0x100200  syncer        update
    12      0      0      0  3    0x100200  cleaner       cleaner
    11      0      0      0  3    0x100200  reaper        reaper
    10      0      0      0  3    0x100200  pgdaemon      pagedaemon
     9      0      0      0  3    0x100200  bored         crypto
     8      0      0      0  3    0x100200  pftm          pfpurge
     7      0      0      0  3    0x100200  usbtsk        usbtask
     6      0      0      0  3    0x100200  usbatsk       usbatsk
     5      0      0      0  3    0x100200  apmev         apm0
     4      0      0      0  3    0x100200  bored         syswq
     3      0      0      0  2  0x40100200  getblk        idle0
     2      0      0      0  3    0x100200  kmalloc       kmthread
     1      0      1      0  3      0x4080  wait          init
     0     -1      0      0  3     0x80200  scheduler     swapper

ddb> show registers
ds                  0x10
es            0xd0200010        kernel_text+0x10
fs            0xd98c0058        end+0x8dd41d4
gs            0xd98c0010        end+0x8dd418c
edi           0xd0200877        switch_error1+0xb
esi                0x100
ebp           0xd98c8d64        end+0x8ddcee0
ebx           0xd98c8db0        end+0x8ddcf2c
edx                  0x1
ecx           0xd09c0480        kprintf_mutex
eax                  0x1
eip           0xd056bf44        Debugger+0x4
cs            0xd98c0008        end+0x8dd4184
eflags             0x212
esp           0xd98c8d64        end+0x8ddcee0
ss            0xd98c0010        end+0x8dd418c
Debugger+0x4:   popl    %ebp

ddb> show uvmexp
Current UVM status:
  pagesize=4096 (0x1000), pagemask=0xfff, pageshift=12
  126390 VM pages: 2250 active, 1016 inactive, 0 wired, 117221 free
  min  10% (25) anon, 10% (25) vnode, 5% (12) vtext
  pages  0 anon, 0 vnode, 0 vtext
  freemin=4213, free-target=5617, inactive-target=0, wired-max=42130
  faults=23843, traps=25323, intrs=34272, ctxswitch=7920 fpuswitch=38
  softint=16987, syscalls=86842, swapins=0, swapouts=0, kmapent=15
  fault counts:
    noram=0, noanon=0, pgwait=0, pgrele=0
    ok relocks(total)=1948(1948), anget(retries)=13583(0), amapcopy=8121
    neighbor anon/obj pg=1207/13403, gets(lock/unlock)=6292/1948
    cases: anon=11116, anoncow=2467, obj=5792, prcopy=500, przero=3968
  daemon and swap counts:
    woke=0, revs=0, scans=0, obscans=0, anscans=0
    busy=0, freed=0, reactivate=0, deactivate=0
    pageouts=0, pending=0, nswget=0
    nswapdev=1, nanon=0, nanonneeded=0 nfreeanon=0
    swpages=65349, swpginuse=0, swpgonly=0 paging=0
  kernel pointers:
    objs(kern)=0xd0a0af00

ddb> show all callout
ticks now: 14185
    ticks  wheel       arg  func
        1  0/106         0  m_cltick
       15  0/120  d09e634c  if_slowtimo
       15  0/120  d0a23160  pckbc_poll
       15  0/120         0  nd6_timer
       15  0/120  d09e7db0  rt_timer_timer
       15  0/120  d09e5ff0  schedcpu
       16  0/121  d09e628c  pfslowtimo
       16  0/121  d09e62a4  pffasttimo
       23  0/128  d5b53008  endtsleep
       24  0/129  d5d319e4  endtsleep
       25  0/130  d5d319e4  realitexpire
       60  0/165  d5d3b8a4  endtsleep
       98  0/203  d1538000  vte_tick
      415  1/313  d5b534f8  endtsleep
      746  1/314  d5d313b8  realitexpire
      998  1/315  d15420e4  wdctimeout
     2758  1/322  d5b53770  endtsleep
    16598  1/376  d09e7dd8  arptimer
    45815  1/490         0  arc4_reinit
   172298  2/514  d5b534f8  realitexpire
   345815  2/517         0  nd6_slowtimo
   713858  2/523  d5b3d4cc  tcp_timer_keep
  8632420  2/643  d5d31c5c  endtsleep

ddb> show proc
PROC (syslogd) pid=25827 stat=sleep flags=100<SUGID>
    pri=17, usrpri=50, nice=20
    forw=0x0, list=0xd5d314f4,0xd5d318b0
    process=0xd5d3a3c0 user=0xd98c7000, vmspace=0xd5d37168
    estcpu=0, cpticks=1, pctcpu=0.0, swtime=127
    user=2, sys=1, intr=0

-- 
antonvm

Reply via email to