Date: Sat, 15 Apr 2000 09:38:34 -0400 (EDT) From: Brian Fundakowski Feldman <green@FreeBSD.org> To: Michael Reifenberger <root@nihil.plaut.de> Cc: FreeBSD-Current <current@freebsd.org>, alc@FreeBSD.org Subject: Re: panic: vm_object_shadow: source object has OBJ_ONEMAPPING set. Message-ID: <Pine.BSF.4.21.0004150932460.16247-100000@green.dyndns.org> In-Reply-To: <Pine.BSF.4.21.0004131747510.492-300000@nihil.plaut.de>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 13 Apr 2000, Michael Reifenberger wrote: > Hi, > when using a linux java app (SAP PlatinGUI 46Cb2) I get the above panic. > FreeBSD -current. Kernel+mods in sync. > Linux from ports. Linux-Java-JDK 1.2.2 from blackdown as of yesterday. > Backtrace see crash.txt. Kernelconfig see nihil. > Any thoughts anyone? Yes, I've gotten these too. I really believe the assumptions the code there makes are wrong, and I've got a patch to correct them to what I think they are supposed to be. You've got the standard disclaimer on the patch, though I assure you it has shown no ill effects to me, and I noticed this bug through WINE. I've asked Poul-Henning Kamp, who seems to also think that the code makes wrong assumptions. I've asked Matt Dillon and gotten no reply (a month now, at least). I've asked Alan Cox, and he'd help if we could get him a test case so he can watch it happen himself and debug it himself. Do you think you can find a specific set of steps for Alan to reproduce it? > Bye! > ---- > Michael Reifenberger > ^.*Plaut.*$, IT, R/3 Basis, GPS -- Brian Fundakowski Feldman \ FreeBSD: The Power to Serve! / green@FreeBSD.org `------------------------------' Index: vm_object.c =================================================================== RCS file: /usr2/ncvs/src/sys/vm/vm_object.c,v retrieving revision 1.173 diff -u -r1.173 vm_object.c --- vm_object.c 2000/03/26 15:20:22 1.173 +++ vm_object.c 2000/04/10 00:03:22 @@ -903,15 +903,25 @@ * Don't create the new object if the old object isn't shared. */ - if (source != NULL && - source->ref_count == 1 && - source->handle == NULL && - (source->type == OBJT_DEFAULT || - source->type == OBJT_SWAP)) - return; + if (source != NULL) { + if ((source->flags & OBJ_ONEMAPPING) != 0 && + source->ref_count != 1) + printf("vm_object %p: flags %d, ref_count %d, " \ + "type %d, handle %p\n", + source, source->flags, source->ref_count, + source->type, source->handle); + if ((source->flags & OBJ_ONEMAPPING) != 0 || + (source->ref_count == 1 && + source->handle == NULL && + (source->type == OBJT_DEFAULT || + source->type == OBJT_SWAP))) + return; + } - KASSERT((source->flags & OBJ_ONEMAPPING) == 0, +#if 0 + KASSERT(source != NULL && (source->flags & OBJ_ONEMAPPING) == 0, ("vm_object_shadow: source object has OBJ_ONEMAPPING set.\n")); +#endif /* * Allocate a new object with the given length To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0004150932460.16247-100000>