rpc.yppasswdd fails in 7.2?

View: New views
3 Messages — Rating Filter:   Alert me  

rpc.yppasswdd fails in 7.2?

by Barkley Vowk :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I've got a 7.2 box acting as NIS master, running rpc.yppasswdd. When
remote users try to change their passwords they see:

testing1# passwd mytest
Changing NIS password for mytest
Old Password:
New Password:
Retype New Password:
passwd: pam_chauthtok(): error in service module

On the server I get this in the logs:
rpc.yppasswdd[36858]: pw_mkdb() failed

I tracked the error message down to line 620 of yppasswdd_server.c, which
lead me to libutil/pw_util.c.

It looks like waitpid in mk_pwdb is returning the error "No child
processes", which then makes mk_pwdb return an error. But the child does
run and do it's job as expected. If you edit yppasswdd_server.c to ignore
the return value of mk_pwdb, passwords are changed as expected.


_______________________________________________
freebsd-hackers@... mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@..."

Re: rpc.yppasswdd fails in 7.2?

by Kostik Belousov :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Fri, Jun 26, 2009 at 04:59:29PM -0600, Barkley Vowk wrote:

> I've got a 7.2 box acting as NIS master, running rpc.yppasswdd. When
> remote users try to change their passwords they see:
>
> testing1# passwd mytest
> Changing NIS password for mytest
> Old Password:
> New Password:
> Retype New Password:
> passwd: pam_chauthtok(): error in service module
>
> On the server I get this in the logs:
> rpc.yppasswdd[36858]: pw_mkdb() failed
>
> I tracked the error message down to line 620 of yppasswdd_server.c, which
> lead me to libutil/pw_util.c.
>
> It looks like waitpid in mk_pwdb is returning the error "No child
> processes", which then makes mk_pwdb return an error. But the child does
> run and do it's job as expected. If you edit yppasswdd_server.c to ignore
> the return value of mk_pwdb, passwords are changed as expected.
I think this is a side-effect of r184459/r186756, that made rpc.yppasswdd to
ignore SIGCHLD.


attachment0 (202 bytes) Download Attachment

Re: rpc.yppasswdd fails in 7.2?

by Rong-En Fan :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Mon, Jun 29, 2009 at 12:49:23PM +0300, Kostik Belousov wrote:

> On Fri, Jun 26, 2009 at 04:59:29PM -0600, Barkley Vowk wrote:
> > I've got a 7.2 box acting as NIS master, running rpc.yppasswdd. When
> > remote users try to change their passwords they see:
> >
> > testing1# passwd mytest
> > Changing NIS password for mytest
> > Old Password:
> > New Password:
> > Retype New Password:
> > passwd: pam_chauthtok(): error in service module
> >
> > On the server I get this in the logs:
> > rpc.yppasswdd[36858]: pw_mkdb() failed
> >
> > I tracked the error message down to line 620 of yppasswdd_server.c, which
> > lead me to libutil/pw_util.c.
> >
> > It looks like waitpid in mk_pwdb is returning the error "No child
> > processes", which then makes mk_pwdb return an error. But the child does
> > run and do it's job as expected. If you edit yppasswdd_server.c to ignore
> > the return value of mk_pwdb, passwords are changed as expected.
>
> I think this is a side-effect of r184459/r186756, that made rpc.yppasswdd to
> ignore SIGCHLD.
It only happens when the master uses /etc/master.passwd instead of
/var/yp/master.passwd.

The zombie mentioned in the commit log was yppwupdate. Two possible
soluutions are: we wait until the push is succeed or we use a double
fork. Personally, I prefer the former approach.

Regards,
Rong-En Fan




attachment0 (203 bytes) Download Attachment