Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 9 May 1996 03:12:49 +0300 (EET DST)
From:      Heikki Suonsivu <hsu@clinet.fi>
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   kern/1180: freeing held page, count=%d
Message-ID:  <199605090012.DAA14899@katiska.clinet.fi>
Resent-Message-ID: <199605090020.RAA12695@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         1180
>Category:       kern
>Synopsis:       freeing held page, count=%d
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    freebsd-bugs
>State:          open
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed May  8 17:20:01 PDT 1996
>Last-Modified:
>Originator:     Heikki Suonsivu
>Organization:
Clinet, Espoo, Finland
>Release:        FreeBSD 2.2-CURRENT i386
>Environment:

news server, P90, ASUS, Adaptek 2940, 64M.

sup May 5 11:21 GMT

>Description:

Panic "freeing held page".  Kernel and dump is

ftp://ftp.clinet.fi/pub/FreeBSD/crashdumps/*.68.gz

As a sidenote: two of our servers which mount disks from this machine hung
shortly after this machine had crashed, the other did not respond to ping,
the other responded but all services were hung (fork deadlock, maybe, those
machines still have the kernel before the fork patch).

GDB is free software and you are welcome to distribute copies of it
 under certain conditions; type "show copying" to see the conditions.
There is absolutely no warranty for GDB; type "show warranty" for details.
GDB 4.13 (i386-unknown-freebsd), 
Copyright 1994 Free Software Foundation, Inc...
IdlePTD 263000
current pcb at 21a5c8
panic: freeing held page, count=%d
#0  boot (howto=256) at ../../i386/i386/machdep.c:931
931                                     dumppcb.pcb_ptd = rcr3();
(kgdb) bt
#0  boot (howto=256) at ../../i386/i386/machdep.c:931
#1  0xf01171e6 in panic (fmt=0xf01b9d32 "freeing held page, count=%d")
    at ../../kern/subr_prf.c:127
#2  0xf01b9e22 in vm_page_free (m=0xf0306da0) at ../../vm/vm_page.c:827
#3  0xf01b7cd1 in vm_object_terminate (object=0xf2979680)
    at ../../vm/vm_object.c:409
#4  0xf01b7b3b in vm_object_deallocate (object=0xf2979680)
    at ../../vm/vm_object.c:356
#5  0xf01b5f14 in vm_map_entry_delete (map=0xf2823f00, entry=0xf2aec280)
    at ../../vm/vm_map.c:1616
#6  0xf01b6066 in vm_map_delete (map=0xf2823f00, start=0, end=4026265600)
    at ../../vm/vm_map.c:1711
#7  0xf01b4a69 in vmspace_free (vm=0xf2823f00) at ../../vm/vm_map.c:252
#8  0xf01c992a in cpu_wait (p=0xf26ab000) at ../../i386/i386/vm_machdep.c:628
#9  0xf010c355 in wait1 (q=0xf2853a00, uap=0xefbfff94, retval=0xefbfff84, 
    compat=0) at ../../kern/kern_exit.c:426
#10 0xf010c183 in wait4 (p=0xf2853a00, uap=0xefbfff94, retval=0xefbfff84)
    at ../../kern/kern_exit.c:323
#11 0xf01c6171 in syscall (frame={tf_es = 39, tf_ds = 39, tf_edi = 372736, 
      tf_esi = 1, tf_ebp = -272639136, tf_isp = -272629788, 
      tf_ebx = -272639076, tf_edx = 2, tf_ecx = -272639076, tf_eax = 7, 
      tf_trapno = 12, tf_err = 7, tf_eip = 178277, tf_cs = 31, 
      tf_eflags = 514, tf_esp = -272639156, tf_ss = 39})
---Type <return> to continue, or q <return> to quit---
    at ../../i386/i386/trap.c:904
#12 0xf01be375 in Xsyscall ()
#13 0xb63f in ?? ()
#14 0xb347 in ?? ()
#15 0xb1f8 in ?? ()
#16 0x620a in ?? ()
#17 0x52a9 in ?? ()
#18 0x51bd in ?? ()
#19 0x50eb in ?? ()
#20 0x5eab in ?? ()
#21 0x52a9 in ?? ()
#22 0xc08b in ?? ()
#23 0xbf86 in ?? ()
#24 0x107f in ?? ()
(kgdb) up
#1  0xf01171e6 in panic (fmt=0xf01b9d32 "freeing held page, count=%d")
    at ../../kern/subr_prf.c:127
127             boot(bootopt);
(kgdb) list
122
123     #if defined(DDB)
124             if (debugger_on_panic)
125                     Debugger ("panic");
126     #endif
127             boot(bootopt);
128     }
129
130     /*
131      * Warn that a system table is full.
(kgdb) up
#2  0xf01b9e22 in vm_page_free (m=0xf0306da0) at ../../vm/vm_page.c:827
827                     panic("freeing held page, count=%d", m->hold_count);
(kgdb) list
822                     else
823                             panic("vm_page_free: freeing busy page");
824             }
825
826             if (m->hold_count) {
827                     panic("freeing held page, count=%d", m->hold_count);
828             }
829       
830             vm_page_remove(m);
831             vm_page_unqueue(m);
(kgdb) up
#3  0xf01b7cd1 in vm_object_terminate (object=0xf2979680)
    at ../../vm/vm_object.c:409
409                     vm_page_free(p);
(kgdb) list
404              */
405             while ((p = object->memq.tqh_first) != NULL) {
406                     if (p->flags & PG_BUSY)
407                             printf("vm_object_terminate: freeing busy page\n");
408                     PAGE_WAKEUP(p);
409                     vm_page_free(p);
410                     cnt.v_pfree++;
411             }
412
413             /*
(kgdb) print p
$1 = (struct vm_page *) 0xf0306da0
(kgdb) print *p
$2 = {pageq = {tqe_next = 0xf02a2ff0, tqe_prev = 0xf031e0e0}, hashq = {
    tqe_next = 0x0, tqe_prev = 0xf0278200}, listq = {tqe_next = 0xf0312d40, 
    tqe_prev = 0xf29796a0}, object = 0xf2979680, pindex = 960, 
  phys_addr = 42594304, queue = 4, flags = 180, wire_count = 0, 
  hold_count = 1, act_count = 5 '\005', busy = 0 '\000', valid = 255 'ÿ', 
  dirty = 255 'ÿ'}
(kgdb) set radix 16
Input and output radices now set to decimal 16, hex 10, octal 20.
(kgdb) print *p
$3 = {pageq = {tqe_next = 0xf02a2ff0, tqe_prev = 0xf031e0e0}, hashq = {
    tqe_next = 0x0, tqe_prev = 0xf0278200}, listq = {tqe_next = 0xf0312d40, 
    tqe_prev = 0xf29796a0}, object = 0xf2979680, pindex = 0x3c0, 
  phys_addr = 0x289f000, queue = 0x4, flags = 0xb4, wire_count = 0x0, 
  hold_count = 0x1, act_count = 0x5, busy = 0x0, valid = 0xff, dirty = 0xff}
(kgdb) down
#2  0xf01b9e22 in vm_page_free (m=0xf0306da0) at ../../vm/vm_page.c:827
827                     panic("freeing held page, count=%d", m->hold_count);
(kgdb) list
822                     else
823                             panic("vm_page_free: freeing busy page");
824             }
825
826             if (m->hold_count) {
827                     panic("freeing held page, count=%d", m->hold_count);
828             }
829       
830             vm_page_remove(m);
831             vm_page_unqueue(m);
(kgdb) print m
$4 = (struct vm_page *) 0xf0306da0
(kgdb) print *m
$5 = {pageq = {tqe_next = 0xf02a2ff0, tqe_prev = 0xf031e0e0}, hashq = {
    tqe_next = 0x0, tqe_prev = 0xf0278200}, listq = {tqe_next = 0xf0312d40, 
    tqe_prev = 0xf29796a0}, object = 0xf2979680, pindex = 0x3c0, 
  phys_addr = 0x289f000, queue = 0x4, flags = 0xb4, wire_count = 0x0, 
  hold_count = 0x1, act_count = 0x5, busy = 0x0, valid = 0xff, dirty = 0xff}
(kgdb) up
#3  0xf01b7cd1 in vm_object_terminate (object=0xf2979680)
    at ../../vm/vm_object.c:409
409                     vm_page_free(p);
(kgdb) list
404              */
405             while ((p = object->memq.tqh_first) != NULL) {
406                     if (p->flags & PG_BUSY)
407                             printf("vm_object_terminate: freeing busy page\n");
408                     PAGE_WAKEUP(p);
409                     vm_page_free(p);
410                     cnt.v_pfree++;
411             }
412
413             /*
(kgdb) print object
$6 = (struct vm_object *) 0xf2979680
(kgdb) print *object
$7 = {object_list = {tqe_next = 0xf2892600, tqe_prev = 0xf2724600}, 
  cached_list = {tqe_next = 0xf2979694, tqe_prev = 0x10}, shadow_head = {
    tqh_first = 0x0, tqh_last = 0xf2979690}, shadow_list = {
    tqe_next = 0xf0064c2, tqe_prev = 0x0}, memq = {tqh_first = 0xf0306da0, 
    tqh_last = 0xf02ddcb0}, type = OBJT_DEFAULT, size = 0x3c1, 
  ref_count = 0x0, shadow_count = 0x0, flags = 0x188, 
  paging_in_progress = 0x0, resident_page_count = 0x4, 
  paging_offset = 0x0000000000000000, backing_object = 0x0, 
  backing_object_offset = 0x0000000000000000, last_read = 0x0, 
  pager_object_list = {tqe_next = 0xf28b4880, tqe_prev = 0xf27e1358}, 
  handle = 0x0, un_pager = {vnp = {vnp_size = 0x0000000000001000}, devp = {
      devp_pglist = {tqh_first = 0x1000, tqh_last = 0x0}}, swp = {
      swp_nblocks = 0x1000, swp_allocsize = 0x0, swp_blocks = 0xf25a5d00, 
      swp_poip = 0x0}}}
(kgdb) print cnt
$8 = {v_swtch = 0x155195b, v_trap = 0xb03838, v_syscall = 0x22c3467, 
  v_intr = 0x475637b, v_soft = 0x95877f, v_vm_faults = 0xa6ff26, 
  v_cow_faults = 0x11fdeb, v_zfod = 0x4126db, v_swapin = 0x222a0, 
  v_swapout = 0x23e65, v_swappgsin = 0x48ec7, v_swappgsout = 0x6a194, 
  v_vnodein = 0xdf5b, v_vnodeout = 0x204ec, v_vnodepgsin = 0x2f637, 
  v_vnodepgsout = 0x36cb6, v_intrans = 0x26a, v_reactivated = 0x6bb03, 
  v_pdwakeups = 0x4726, v_pdpages = 0x49c1197, v_dfree = 0x2b5f, 
  v_pfree = 0x4ca32b, v_tfree = 0xb96306, v_page_size = 0x1000, 
  v_page_count = 0x3d55, v_free_reserved = 0x1d, v_free_target = 0x104, 
  v_free_min = 0x6a, v_free_count = 0x6b, v_wire_count = 0x1079, 
  v_active_count = 0x1f87, v_inactive_target = 0xebe, 
  v_inactive_count = 0x5c4, v_cache_count = 0x725, v_cache_min = 0x6ff, 
  v_cache_max = 0x1bfe, v_pageout_free_min = 0x17, v_interrupt_free_min = 0x2}
(kgdb) up
#4  0xf01b7b3b in vm_object_deallocate (object=0xf2979680)
    at ../../vm/vm_object.c:356
356                     vm_object_terminate(object);
(kgdb) print object
$9 = (struct vm_object *) 0xf2979680
(kgdb) print *object
$10 = {object_list = {tqe_next = 0xf2892600, tqe_prev = 0xf2724600}, 
  cached_list = {tqe_next = 0xf2979694, tqe_prev = 0x10}, shadow_head = {
    tqh_first = 0x0, tqh_last = 0xf2979690}, shadow_list = {
    tqe_next = 0xf0064c2, tqe_prev = 0x0}, memq = {tqh_first = 0xf0306da0, 
    tqh_last = 0xf02ddcb0}, type = OBJT_DEFAULT, size = 0x3c1, 
  ref_count = 0x0, shadow_count = 0x0, flags = 0x188, 
  paging_in_progress = 0x0, resident_page_count = 0x4, 
  paging_offset = 0x0000000000000000, backing_object = 0x0, 
  backing_object_offset = 0x0000000000000000, last_read = 0x0, 
  pager_object_list = {tqe_next = 0xf28b4880, tqe_prev = 0xf27e1358}, 
  handle = 0x0, un_pager = {vnp = {vnp_size = 0x0000000000001000}, devp = {
      devp_pglist = {tqh_first = 0x1000, tqh_last = 0x0}}, swp = {
      swp_nblocks = 0x1000, swp_allocsize = 0x0, swp_blocks = 0xf25a5d00, 
      swp_poip = 0x0}}}
(kgdb) list
351                     temp = object->backing_object;
352                     if (temp) {
353                             TAILQ_REMOVE(&temp->shadow_head, object, shadow_list);
354                             --temp->shadow_count;
355                     }
356                     vm_object_terminate(object);
357                     /* unlocks and deallocates object */
358                     object = temp;
359             }
360     }
(kgdb) print temp
$11 = (struct vm_object *) 0x0
(kgdb) print object->backing_object
$12 = (struct vm_object *) 0x0
(kgdb) print object
$13 = (struct vm_object *) 0xf2979680
(kgdb) print temp->shadow_head
$14 = {tqh_first = 0x8ee08ed8, tqh_last = 0xc2e8e8}
(kgdb) print temp
$15 = (struct vm_object *) 0x0
(kgdb) up
#5  0xf01b5f14 in vm_map_entry_delete (map=0xf2823f00, entry=0xf2aec280)
    at ../../vm/vm_map.c:1616
1616                    vm_object_deallocate(entry->object.vm_object);
(kgdb) list
1611            map->size -= entry->end - entry->start;
1612
1613            if (entry->is_a_map || entry->is_sub_map)
1614                    vm_map_deallocate(entry->object.share_map);
1615            else
1616                    vm_object_deallocate(entry->object.vm_object);
1617
1618            vm_map_entry_dispose(map, entry);
1619    }
1620
(kgdb) print entry
$16 = (struct vm_map_entry *) 0xf2aec280
(kgdb) print *entry
$17 = {prev = 0xf2823f20, next = 0xf2823f20, start = 0xefbfe000, 
  end = 0xeffbf000, object = {vm_object = 0xf2979680, share_map = 0xf2979680, 
    sub_map = 0xf2979680}, offset = 0x0000000000000000, is_a_map = 0x0, 
  is_sub_map = 0x0, copy_on_write = 0x0, needs_copy = 0x0, protection = 0x7, 
  max_protection = 0x7, inheritance = 0x1, wired_count = 0x0}
(kgdb) print map
$18 = (struct vm_map *) 0xf2823f00
(kgdb) print *map
$19 = {pmap = 0xf2823f64, lock = {want_write = 0x1, want_upgrade = 0x0, 
    waiting = 0x0, can_sleep = 0x1, read_count = 0x0, proc = 0x0, 
    recursion_depth = 0x0}, header = {prev = 0xf2823f20, next = 0xf2823f20, 
    start = 0x0, end = 0xeffbf000, object = {vm_object = 0x0, share_map = 0x0, 
      sub_map = 0x0}, offset = 0x0000000000000000, is_a_map = 0x0, 
    is_sub_map = 0x0, copy_on_write = 0x0, needs_copy = 0x0, protection = 0x0, 
    max_protection = 0x0, inheritance = 0x0, wired_count = 0x0}, 
  nentries = 0x0, size = 0x1a47000, is_main_map = 0x1, ref_count = 0x1, 
  hint = 0xf2823f20, first_free = 0xf2823f20, entries_pageable = 0x1, 
  timestamp = 0x9}
(kgdb) up
#6  0xf01b6066 in vm_map_delete (map=0xf2823f00, start=0x0, end=0xeffbf000)
    at ../../vm/vm_map.c:1711
1711                    vm_map_entry_delete(map, entry);
(kgdb) list
1706                     * removing all pmap entries pointing to its pages.
1707                     * (Otherwise, its page frames may be reallocated, and any
1708                     * modify bits will be set in the wrong object!)
1709                     */
1710
1711                    vm_map_entry_delete(map, entry);
1712                    entry = next;
1713            }
1714            return (KERN_SUCCESS);
1715    }
(kgdb) print map
$20 = (struct vm_map *) 0xf2823f00
(kgdb) print entry
$21 = (struct vm_map_entry *) 0xf2aec280
(kgdb) up
#7  0xf01b4a69 in vmspace_free (vm=0xf2823f00) at ../../vm/vm_map.c:252
252                     (void) vm_map_delete(&vm->vm_map, vm->vm_map.min_offset,
(kgdb) list
247                      * Lock the map, to wait out all other references to it.
248                      * Delete all of the mappings and pages they hold, then call
249                      * the pmap module to reclaim anything left.
250                      */
251                     vm_map_lock(&vm->vm_map);
252                     (void) vm_map_delete(&vm->vm_map, vm->vm_map.min_offset,
253                         vm->vm_map.max_offset);
254                     vm_map_unlock(&vm->vm_map);
255                     while( vm->vm_map.ref_count != 1)
256                             tsleep(&vm->vm_map.ref_count, PVM, "vmsfre", 0);
(kgdb) print vm
$22 = (struct vmspace *) 0xf2823f00
(kgdb) print *vm
$23 = {vm_map = {pmap = 0xf2823f64, lock = {want_write = 0x1, 
      want_upgrade = 0x0, waiting = 0x0, can_sleep = 0x1, read_count = 0x0, 
      proc = 0x0, recursion_depth = 0x0}, header = {prev = 0xf2823f20, 
      next = 0xf2823f20, start = 0x0, end = 0xeffbf000, object = {
        vm_object = 0x0, share_map = 0x0, sub_map = 0x0}, 
      offset = 0x0000000000000000, is_a_map = 0x0, is_sub_map = 0x0, 
      copy_on_write = 0x0, needs_copy = 0x0, protection = 0x0, 
      max_protection = 0x0, inheritance = 0x0, wired_count = 0x0}, 
    nentries = 0x0, size = 0x1a47000, is_main_map = 0x1, ref_count = 0x1, 
    hint = 0xf2823f20, first_free = 0xf2823f20, entries_pageable = 0x1, 
    timestamp = 0x9}, vm_pmap = {pm_pdir = 0xf8b66000, pm_dref = 0x0, 
    pm_count = 0x1, pm_stats = {resident_count = 0xfffffffa, 
      wired_count = 0x0}, pm_map = 0xf2823f00}, vm_refcnt = 0x0, vm_shm = 0x0, 
  vm_upages_obj = 0xf2979680, vm_rssize = 0x0, vm_swrss = 0x23, 
  vm_tsize = 0xa, vm_dsize = 0x2, vm_ssize = 0x20, vm_taddr = 0x1000 "Ì", 
  vm_daddr = 0xb000 "|ò\001", 
  vm_maxsaddr = 0xebbfe000 <Address 0xebbfe000 out of bounds>, 
  vm_minsaddr = 0xefbfde28 ""}
(kgdb) up
#8  0xf01c992a in cpu_wait (p=0xf26ab000) at ../../i386/i386/vm_machdep.c:628
628             vmspace_free(p->p_vmspace);
(kgdb) list
623             struct proc *p;
624     {
625             /* drop per-process resources */
626             pmap_qremove((vm_offset_t) p->p_addr, UPAGES);
627             kmem_free(u_map, (vm_offset_t)p->p_addr, ctob(UPAGES));
628             vmspace_free(p->p_vmspace);
629     }
630
631     /*
632      * Dump the machine specific header information at the start of a core dump.
(kgdb) print p
$24 = (struct proc *) 0xf26ab000
(kgdb) print *p
$25 = {p_forw = 0xf275e200, p_back = 0x0, p_list = {le_next = 0x0, 
    le_prev = 0xf023e3b8}, p_cred = 0x0, p_fd = 0xf2ab3200, 
  p_stats = 0xf66ec258, p_limit = 0xf0205474, p_vmspace = 0xf2823f00, 
  p_sigacts = 0xf66ec128, p_flag = 0x6004, p_stat = 0x5, p_pad1 = "ðûï", 
  p_pid = 0x301d, p_pglist = {le_next = 0x0, le_prev = 0xf2853a34}, 
  p_pptr = 0xf2853a00, p_sibling = {le_next = 0x0, le_prev = 0xf2853a48}, 
  p_children = {lh_first = 0x0}, p_oppid = 0x0, p_dupfd = 0x0, 
  p_estcpu = 0x100, p_cpticks = 0x1, p_pctcpu = 0x0, p_wchan = 0x0, 
  p_wmesg = 0x0, p_swtime = 0x0, p_slptime = 0x0, p_realtimer = {
    it_interval = {tv_sec = 0x0, tv_usec = 0x0}, it_value = {tv_sec = 0x0, 
      tv_usec = 0x0}}, p_rtime = {tv_sec = 0x0, tv_usec = 0x1582}, 
  p_uticks = 0, p_sticks = 1, p_iticks = 0, p_traceflag = 0x0, p_tracep = 0x0, 
  p_siglist = 0x0, p_textvp = 0xf257e600, p_lock = 0x0, p_pad2 = "\000\000", 
  p_locks = 0x0, p_simple_locks = 0x0, p_hash = {le_next = 0x0, 
    le_prev = 0xf23fd074}, p_sigmask = 0x0, p_sigignore = 0xffffffff, 
  p_sigcatch = 0x0, p_priority = 0x72, p_usrpri = 0x72, p_nice = 0x0, 
  p_comm = "[\000\000n\000er\000\000\000\000\000\000\000\000\000", 
  p_pgrp = 0x0, p_sysent = 0xf01f88c0, p_rtprio = {type = 0x1, prio = 0x0}, 
  p_addr = 0xf66ec000, p_md = {md_flags = 0x6, md_regs = 0xefbfffbc}, 
  p_xstat = 0x0, p_acflag = 0x0, p_ru = 0x0}
(kgdb) print u_map
$26 = (struct vm_map *) 0xf1399d80
(kgdb) print *u_map
$27 = {pmap = 0xf021b798, lock = {want_write = 0x0, want_upgrade = 0x0, 
    waiting = 0x0, can_sleep = 0x1, read_count = 0x0, proc = 0x0, 
    recursion_depth = 0x0}, header = {prev = 0xf2ad5500, next = 0xf2af5140, 
    start = 0xf6566000, end = 0xf858e000, object = {vm_object = 0x0, 
      share_map = 0x0, sub_map = 0x0}, offset = 0x0000000000000000, 
    is_a_map = 0x0, is_sub_map = 0x0, copy_on_write = 0x0, needs_copy = 0x0, 
    protection = 0x0, max_protection = 0x0, inheritance = 0x0, 
    wired_count = 0x0}, nentries = 0x5, size = 0x1ae000, is_main_map = 0x1, 
  ref_count = 0x2, hint = 0xf2af5140, first_free = 0xf2af5140, 
  entries_pageable = 0x0, timestamp = 0x2318f}
(kgdb) up
#9  0xf010c355 in wait1 (q=0xf2853a00, uap=0xefbfff94, retval=0xefbfff84, 
    compat=0x0) at ../../kern/kern_exit.c:426
426                             cpu_wait(p);
(kgdb) list
421                             /*
422                              * Give machine-dependent layer a chance
423                              * to free anything that cpu_exit couldn't
424                              * release while still running in process context.
425                              */
426                             cpu_wait(p);
427                             FREE(p, M_PROC);
428                             nprocs--;
429                             return (0);
430                     }
(kgdb) print *p
$28 = {p_forw = 0xf275e200, p_back = 0x0, p_list = {le_next = 0x0, 
    le_prev = 0xf023e3b8}, p_cred = 0x0, p_fd = 0xf2ab3200, 
  p_stats = 0xf66ec258, p_limit = 0xf0205474, p_vmspace = 0xf2823f00, 
  p_sigacts = 0xf66ec128, p_flag = 0x6004, p_stat = 0x5, p_pad1 = "ðûï", 
  p_pid = 0x301d, p_pglist = {le_next = 0x0, le_prev = 0xf2853a34}, 
  p_pptr = 0xf2853a00, p_sibling = {le_next = 0x0, le_prev = 0xf2853a48}, 
  p_children = {lh_first = 0x0}, p_oppid = 0x0, p_dupfd = 0x0, 
  p_estcpu = 0x100, p_cpticks = 0x1, p_pctcpu = 0x0, p_wchan = 0x0, 
  p_wmesg = 0x0, p_swtime = 0x0, p_slptime = 0x0, p_realtimer = {
    it_interval = {tv_sec = 0x0, tv_usec = 0x0}, it_value = {tv_sec = 0x0, 
      tv_usec = 0x0}}, p_rtime = {tv_sec = 0x0, tv_usec = 0x1582}, 
  p_uticks = 0, p_sticks = 1, p_iticks = 0, p_traceflag = 0x0, p_tracep = 0x0, 
  p_siglist = 0x0, p_textvp = 0xf257e600, p_lock = 0x0, p_pad2 = "\000\000", 
  p_locks = 0x0, p_simple_locks = 0x0, p_hash = {le_next = 0x0, 
    le_prev = 0xf23fd074}, p_sigmask = 0x0, p_sigignore = 0xffffffff, 
  p_sigcatch = 0x0, p_priority = 0x72, p_usrpri = 0x72, p_nice = 0x0, 
  p_comm = "[\000\000n\000er\000\000\000\000\000\000\000\000\000", 
  p_pgrp = 0x0, p_sysent = 0xf01f88c0, p_rtprio = {type = 0x1, prio = 0x0}, 
  p_addr = 0xf66ec000, p_md = {md_flags = 0x6, md_regs = 0xefbfffbc}, 
  p_xstat = 0x0, p_acflag = 0x0, p_ru = 0x0}
(kgdb) up
#10 0xf010c183 in wait4 (p=0xf2853a00, uap=0xefbfff94, retval=0xefbfff84)
    at ../../kern/kern_exit.c:323
323             return (wait1(p, uap, retval, 0));
(kgdb) list
318             struct proc *p;
319             struct wait_args *uap;
320             int *retval;
321     {
322
323             return (wait1(p, uap, retval, 0));
324     }
325
326     static int
327     wait1(q, uap, retval, compat)
(kgdb) print p
$29 = (struct proc *) 0xf2853a00
(kgdb) print uap
$30 = (struct wait_args *) 0xefbfff94
(kgdb) print *uap
$31 = {pid = 0xffffffff, status = 0xefbfdb9c, options = 0x2, rusage = 0x0}
(kgdb) print retval
$32 = (int *) 0xefbfff84
(kgdb) up
#11 0xf01c6171 in syscall (frame={tf_es = 0x27, tf_ds = 0x27, 
      tf_edi = 0x5b000, tf_esi = 0x1, tf_ebp = 0xefbfdb60, 
      tf_isp = 0xefbfffe4, tf_ebx = 0xefbfdb9c, tf_edx = 0x2, 
      tf_ecx = 0xefbfdb9c, tf_eax = 0x7, tf_trapno = 0xc, tf_err = 0x7, 
      tf_eip = 0x2b865, tf_cs = 0x1f, tf_eflags = 0x202, tf_esp = 0xefbfdb4c, 
      tf_ss = 0x27}) at ../../i386/i386/trap.c:904
904             error = (*callp->sy_call)(p, args, rval);
(kgdb) list 
899                     ktrsyscall(p->p_tracep, code, callp->sy_narg, args);
900     #endif
901             rval[0] = 0;
902             rval[1] = frame.tf_edx;
903
904             error = (*callp->sy_call)(p, args, rval);
905
906             switch (error) {
907
908             case 0:
(kgdb)

>How-To-Repeat:

	I do now know, but running news and loading the machine would
	probably be the best try.

>Fix:
	


>Audit-Trail:
>Unformatted:



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