Bug 320 - 'Operation would block' using 'passwd' authentication on a Tru64 5.1B Cluster
'Operation would block' using 'passwd' authentication on a Tru64 5.1B Cluster
Status: RESOLVED FIXED
Product: Sudo
Classification: Unclassified
Component: Sudo
1.6.9
Alpha Tru64 UNIX
: normal normal
Assigned To: Todd C. Miller
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2008-11-26 10:33 MST by Justyn Attwool
Modified: 2012-03-15 15:31 MDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Justyn Attwool 2008-11-26 10:33:25 MST
Currently cant configure 1.6.9 - 1.6.9p18 to use 'sia' so opted for 'passwd' authentication. On a Tru64 UNIX 5.1B Cluster (How cluster operations should REALLY be designed) using 'passwd' authentication sudo activation results in the following:

# sudo ls
sudo: unable to execute /sbin/ls: Operation would block

Points to note:

A 1.6.8p12 build of sudo with working 'sia' authentication works correctly on the Cluster.


The 1.6.9p18 'passwd' build of sudo works fine under a non-clustered Tru64 5.1B system.


Logging from the 1.6.9p18 on the cluster reports attempted command running:
Nov 26 15:21:49 : root : TTY=pts/0 ; PWD=/usr/users/justyn/sudo/sudo-1.6.9p18 ;
    USER=root ; COMMAND=/sbin/ls
Comment 1 Todd C. Miller 2008-11-26 15:18:00 MST
That's very odd as it indicates that the execve() system call failed.  EWOULDBLOCK is a strange errno to get back.
Comment 2 Justyn Attwool 2008-12-01 10:20:23 MST
I'll debug the code and see what happens
Comment 3 Justyn Attwool 2008-12-09 09:23:46 MST
My cluster has been dismantled for a week while it is relocated. I've got access to another one but I've managed to find some more information. I've not tried a work around yet.

 [EWOULDBLOCK]
	    [Tru64 UNIX]  Indicates that another thread in the process is
	    already performing an execlp() or execvp() operation.


 and 

              A process that has called a PVM routine may fail if it
              calls execl, execv, execle, execve, execlp, or execvp.
              The exec routine returns EWOULDBLOCK. The problem can
              be avoided if the process calls fork, and calls the exec
              routine in the child process.
Comment 4 Todd C. Miller 2012-03-15 15:31:57 MDT
I believe this is fixed in sudo 1.8.x by virtue of the command being run in a sub-process.  If that is not the case, please re-open the bug.