Date: Fri, 24 Feb 2006 14:10:33 -0700 (MST) From: Lonnie Olson <fungus@aros.net> To: FreeBSD-gnats-submit@FreeBSD.org Subject: i386/93809: panic: could not copy LDT on RELENG_5_3 through RELENG_5 Message-ID: <200602242110.k1OLAXFi016707@phobos.aros.net> Resent-Message-ID: <200602242120.k1OLK4P7024009@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 93809 >Category: i386 >Synopsis: panic: could not copy LDT on RELENG_5_3 through RELENG_5 >Confidential: no >Severity: critical >Priority: high >Responsible: freebsd-i386 >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Fri Feb 24 21:20:04 GMT 2006 >Closed-Date: >Last-Modified: >Originator: Lonnie Olson >Release: FreeBSD 5.5-PRERELEASE i386 >Organization: ArosNet >Environment: System: FreeBSD phobos.aros.net 5.5-PRERELEASE FreeBSD 5.5-PRERELEASE #1: Thu Feb 23 14:24:58 MST 2006 root@phobos.aros.net:/usr/obj/usr/src/sys/PHOBOS i386 CPU: AMD Opteron(tm) Processor 246 (1991.25-MHz 686-class CPU) Origin = "AuthenticAMD" Id = 0xf5a Stepping = 10 Features=0x78bfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CM OV,PAT,PSE36,CLFLUSH,MMX,FXSR,SSE,SSE2> AMD Features=0xe0500000<NX,AMIE,LM,DSP,3DNow!> real memory = 2147418112 (2047 MB) avail memory = 2095964160 (1998 MB) FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs cpu0 (BSP): APIC ID: 0 cpu1 (AP): APIC ID: 1 >Description: This machine and 2 others like it, panic after a while. A better description of the problem was given by Howard.Wang in the freebsd-stable list last year. http://lists.freebsd.org/pipermail/freebsd-stable/2005-August/017567.html I can not upgrade this machine to -CURRENT. Is there a fix for this in RELENG_5 anytime soon? >How-To-Repeat: This code can trigger tha panic on my machine with only 100 processes. //Below is a copy of the trigger program (executed as "./chain_fork 100 1 15") /* chain_fork.c 1.0 by Howard. */ #include <sys/types.h> #include <unistd.h> #include <stdlib.h> #include <stdio.h> #include <string.h> int main(int argc, char** argv) { int N,M,T; int pid; char *p; int j; if(argc!=4) { printf("Usage: %s <number_of_proc> <memsize_per_proc> <proc_keep_alive_in_seconds>\n",argv[0]); return (0); } N = atoi(argv[1]); //How many depth. M = atoi(argv[2])*1024*1024; //Size per Proc. T = atoi(argv[3]); //Life per Proc. while(N>0) { pid = fork(); if (pid != 0) { p = malloc(M); memset(p,0,M); sleep(T); exit(0); } else { printf("I forked a child No.%d\n",N); N--; } } return (0); } /* end of file */ >Fix: Not sure here. Howard mentioned it was fixed in 7.0-CURRENT. Perhaps it could be backported to RELENG_5?? Pretty please with sugar on top. >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200602242110.k1OLAXFi016707>