Subject: pkg/9507: mlockall(2) failure prevents cdrecord from working
To: None <>
From: SUNAGAWA Keiki <>
List: netbsd-bugs
Date: 02/29/2000 07:21:35
>Number:         9507
>Category:       pkg
>Synopsis:       mlockall(2) returns EAGAIN, causes cdrecord not to work.
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    pkg-manager (NetBSD software packages system bug manager)
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Feb 29 07:20:59 2000
>Originator:     SUNAGAWA Keiki
>Release:        2000-02-29
System: NetBSD azarin 1.4P NetBSD 1.4P (AZARIN) #84: Wed Dec 1 21:54:14 JST 1999 kei@azarin:/a/anoncvs/netbsd/src/sys/arch/macppc/compile/AZARIN macppc

	cdrecord calls mlockall(2) with argument MCL_CURRENT|MCL_FUTURE, but
	it always returns EAGAIN on my environment and causes the program exit.

	I tried to maximize the resource limit with built-in ulimit of sh, but
	got no success.
	make cdrecord 
	I commented out mlockall call and it works on my macppc box (XXX see:
	pkg/9506) and sparc classic.  macppc has 160MB of RAM and sparc 32MB.

	the new patch-af is attached below.


--- cdrecord/cdrecord.c.orig	Mon Feb 14 19:56:07 2000
+++ cdrecord/cdrecord.c	Tue Feb 15 23:05:46 2000
@@ -226,9 +226,11 @@
 		 * Try to lock us im memory (will only work for root)
 		 * but you need access to root anyway to use /dev/scg?
+#if 0 /* XXX */
 #if defined(HAVE_MLOCKALL) || defined(_POSIX_MEMLOCK)
 		if (mlockall(MCL_CURRENT|MCL_FUTURE) < 0)
 			comerr("Cannot do mlockall(2).\n");
 		raisepri(0); /* max priority */