From nobody@FreeBSD.org  Wed Mar 10 16:01:24 2004
Return-Path: <nobody@FreeBSD.org>
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
	by hub.freebsd.org (Postfix) with ESMTP id F147116A4D1
	for <freebsd-gnats-submit@FreeBSD.org>; Wed, 10 Mar 2004 16:01:23 -0800 (PST)
Received: from www.freebsd.org (www.freebsd.org [216.136.204.117])
	by mx1.FreeBSD.org (Postfix) with ESMTP id E97B843D2D
	for <freebsd-gnats-submit@FreeBSD.org>; Wed, 10 Mar 2004 16:01:23 -0800 (PST)
	(envelope-from nobody@FreeBSD.org)
Received: from www.freebsd.org (localhost [127.0.0.1])
	by www.freebsd.org (8.12.10/8.12.10) with ESMTP id i2B01N72075273
	for <freebsd-gnats-submit@FreeBSD.org>; Wed, 10 Mar 2004 16:01:23 -0800 (PST)
	(envelope-from nobody@www.freebsd.org)
Received: (from nobody@localhost)
	by www.freebsd.org (8.12.10/8.12.10/Submit) id i2B01NFj075272;
	Wed, 10 Mar 2004 16:01:23 -0800 (PST)
	(envelope-from nobody)
Message-Id: <200403110001.i2B01NFj075272@www.freebsd.org>
Date: Wed, 10 Mar 2004 16:01:23 -0800 (PST)
From: Vitaly Markitantov <ua_vitaly@ukr.net>
To: freebsd-gnats-submit@FreeBSD.org
Subject: vm_swapout.c bug
X-Send-Pr-Version: www-2.3

>Number:         64074
>Category:       kern
>Synopsis:       vm_swapout.c bug
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    freebsd-bugs
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed Mar 10 16:10:12 PST 2004
>Closed-Date:    Wed Mar 10 16:34:05 PST 2004
>Last-Modified:  Wed Mar 10 16:34:05 PST 2004
>Originator:     Vitaly Markitantov
>Release:        FreeBSD-5_CURRENT
>Organization:
>Environment:
FreeBSD freedo.umc.com.ua 5.2-CURRENT-20040227-JPSNAP FreeBSD 5.2-CURRENT-20040227-JPSNAP #0: Mon Mar  1 11:11:15 EET 2004     vix@freedo.umc.com.ua:/raid/obj/raid/src/sys/DO  i386
>Description:
When unprivileged user starts lots of processes and they used all of  
swap space, then kernel kills not only processes of this user. 
Sometimes it kills even sshd started by root, so you can't anymore
connect to remote host.

My situation was (from dmesg):
swap_pager: out of swap space
swap_pager_getswapspace(16): failed
pid 446 (oracle), uid 100, was killed: out of swap space
swap_pager_getswapspace(16): failed
pid 450 (oracle), uid 100, was killed: out of swap space
pid 448 (oracle), uid 100, was killed: out of swap space
swap_pager_getswapspace(16): failed
swap_pager_getswapspace(16): failed
swap_pager_getswapspace(16): failed
swap_pager_getswapspace(16): failed
swap_pager_getswapspace(16): failed
swap_pager_getswapspace(16): failed
pid 525 (sshd), uid 0, was killed: out of swap space
pid 527 (sshd), uid 1001, was killed: out of swap space

      
>How-To-Repeat:
Simple shell script can expose this problem

 #!/bin/sh
 export M=`expr ${M:-0} + 1`
 echo check $M
 JUNK=`cat /boot/kernel/kernel` # this is needed to get more memory 
 $0

Script recursively launches himself, and when swap space is out, kernel
begins to kill processes.

>Fix:
      
>Release-Note:
>Audit-Trail:
State-Changed-From-To: open->closed 
State-Changed-By: kris 
State-Changed-When: Wed Mar 10 16:33:24 PST 2004 
State-Changed-Why:  
Use resource limits (man login.conf) to prevent users from 
using up your system resources. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=64074 
>Unformatted:
