Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 15 Jul 2002 12:16:22 -0700
From:      Shannon -jj Behrens <jj@nttmcl.com>
To:        "Richard Seaman, Jr." <dick@seaman.org>, Don Bowman <don@sandvine.com>, freebsd-stable@FreeBSD.ORG, freebsd-java@FreeBSD.ORG
Subject:   Re: linux JRE 1.4 under linux compatibility only runs as root
Message-ID:  <20020715121622.A4888@alicia.nttmcl.com>
In-Reply-To: <20020711174958.E32743@seaman.org>; from dick@seaman.org on Thu, Jul 11, 2002 at 05:49:58PM -0500
References:  <20020711214742.C259A37B406@hub.freebsd.org> <20020711150748.B14694@alicia.nttmcl.com> <20020711174958.E32743@seaman.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Ok, I've submitted a PR for this:

<http://www.freebsd.org/cgi/query-pr.cgi?pr=40611>;

Hopefully, someone will commit your patch :)

-jj

> On Thu, Jul 11, 2002 at 03:07:48PM -0700, Shannon -jj Behrens wrote:
> > > > I know several other people have run into the problem where
> > > > the (Linux) JDK or JRE 1.4 will only run as root.
> > > > Tracing this with 'ktrace', the issue is a statfs call,
> > > > which returns 'RESTART'. I don't see that errno listed on
> > > > the man page for statfs, I guess it must come from the
> > > > linux_statfs in compat/linux.
> > > > 
> > > >  48927 java     CALL  statfs(0xbf1f)
> > > >  48927 java     RET   statfs RESTART
> > > 
> > > OK, after having found out that 'ktrace' isn't appropriate
> > > for linux executables (use truss or linux_kdump), I found that
> > > the culprit is actually:
> > > 
> > > linux_sched_getscheduler(0xcb18)                 ERR#1 'Operation not
> > > permitted'
> > > 
> > > when root, this is permitted. When non-root, this is not-permitted.
> > > 
> > > Suggestions? Is this a problem with the linux emulation? Or is
> > > there a permissions difference between linux & freebsd here?
> > 
> > I'm having the same problem.  It looks like this has been discussed on -STABLE,
> > -JAVA, -HACKERS, and -QUESTIONS, but to no avail:
> > 
> > <http://www.freebsd.org/cgi/getmsg.cgi?fetch=437107+0+/usr/local/www/db/text/2002/freebsd-bugs/20020519.freebsd-bugs>;
> > 
> > I'm sorry for the redundant cross-post, but this looks like a hard one to
> > solve.
> 
> Not hard at all.  The perms in sched_getscheduler in -stable are silly.
> (also sched_getparam).  Just try changing it to something like the patch
> below (note that I don't have a stable system at the moment, so I don't
> guarantee it works, nor that it even compiles -- take it as a guide only).
> 
> --- p1003_1b.c.orig	Thu Jul 11 17:29:55 2002
> +++ p1003_1b.c	Thu Jul 11 17:40:51 2002
> @@ -211,14 +211,24 @@
>  int sched_getscheduler(struct proc *p,
>  	struct sched_getscheduler_args *uap)
>  {
> -	int e;
> -	(void) (0
> -	|| (e = p31b_proc(p, uap->pid, &p))
> -	|| (e = ksched_getscheduler(&p->p_retval[0], ksched, p))
> -	);
> +	int e = 0;
> +	struct proc *targetp;
>  
> -	return e;
> +	if (uap->pid == 0) {
> +		targetp = p;
> +	} else {
> +		targetp = pfind(uap->pid);
> +		if (targetp == NULL) {
> +			e = ESRCH;
> +		}
> +	}
> +
> +	if (e == 0)
> +		e = ksched_getscheduler(&p->p_retval[0], ksched, targetp);
> +
> +	return (e);
>  }
> +
>  int sched_yield(struct proc *p,
>  	struct sched_yield_args *uap)
>  {
> 
> -- 
> Richard Seaman, Jr.        email:    dick@seaman.org
> 5182 N. Maple Lane         phone:    262-367-5450
> Nashotah WI 53058            fax:    262-367-5852

-- 
Real programmers don't draw flowcharts.  Flowcharts are, after all, the
illiterate's form of documentation.  Cavemen drew flowcharts; look how
much good it did them.

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




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