While creating a new NIS user save_user.cgi hangs after locking the passwd, group and /home/<user>.lock files the webgui times and and the locks are not released.
Truss of save_user.cgi and parent:
( Attached to process 13280 ("/usr/bin/perl /opt/webmin-1.110/miniserv.pl /opt/webmin-1.110/e") [32-bit] )
select(16, 0x404164d8, NULL, NULL, 0x6fff0578) [sleeping]
select(16, 0x404164d8, NULL, NULL, 0x6fff0578) = 0
time(NULL) = 1233771595
waitpid(-1, WIFEXITED(4), WNOHANG) = 0
select(16, 0x4042d6b8, NULL, NULL, 0x6fff0578) [sleeping]
select(16, 0x4042d6b8, NULL, NULL, 0x6fff0578) = 0
time(NULL) = 1233771605
waitpid(-1, WIFEXITED(4), WNOHANG) = 0
select(16, 0x404164d8, NULL, NULL, 0x6fff0578) [sleeping]
select(16, 0x404164d8, NULL, NULL, 0x6fff0578) = 0
time(NULL) = 1233771615
waitpid(-1, WIFEXITED(4), WNOHANG) = 0
select(16, 0x4042d6b8, NULL, NULL, 0x6fff0578) [sleeping]
select(16, 0x4042d6b8, NULL, NULL, 0x6fff0578) = 0
time(NULL) = 1233771625
waitpid(-1, WIFEXITED(4), WNOHANG) = 0
select(16, 0x404164d8, NULL, NULL, 0x6fff0578) [sleeping]
select(16, 0x404164d8, NULL, NULL, 0x6fff0578) = 0
time(NULL) = 1233771635
waitpid(-1, WIFEXITED(4), WNOHANG) = 0
select(16, 0x4042d6b8, NULL, NULL, 0x6fff0578) [sleeping]
select(16, 0x4042d6b8, NULL, NULL, 0x6fff0578) = 0
time(NULL) = 1233771645
waitpid(-1, WIFEXITED(4), WNOHANG) = 0
select(16, 0x404164d8, NULL, NULL, 0x6fff0578) [sleeping]
select(16, 0x404164d8, NULL, NULL, 0x6fff0578) = 0
time(NULL) = 1233771655
waitpid(-1, WIFEXITED(4), WNOHANG) = 0
select(16, 0x4042d6b8, NULL, NULL, 0x6fff0578) [sleeping]
select(16, 0x4042d6b8, NULL, NULL, 0x6fff0578) = 0
time(NULL) = 1233771665
waitpid(-1, WIFEXITED(4), WNOHANG) = 0
select(16, 0x404164d8, NULL, NULL, 0x6fff0578) [sleeping]
select(16, 0x404164d8, NULL, NULL, 0x6fff0578) = 0
time(NULL) = 1233771675
waitpid(-1, WIFEXITED(4), WNOHANG) = 0
select(16, 0x4042d6b8, NULL, NULL, 0x6fff0578) [sleeping]
select(16, 0x4042d6b8, NULL, NULL, 0x6fff0578) = 0
time(NULL) = 1233771685
waitpid(-1, WIFEXITED(4), WNOHANG) = 0
select(16, 0x404164d8, NULL, NULL, 0x6fff0578) [sleeping]
select(16, 0x404164d8, NULL, NULL, 0x6fff0578) = 0
time(NULL) = 1233771695
waitpid(-1, WIFEXITED(4), WNOHANG) = 0
select(16, 0x4042d6b8, NULL, NULL, 0x6fff0578) [sleeping]
select(16, 0x4042d6b8, NULL, NULL, 0x6fff0578) = 0
time(NULL) = 1233771705
waitpid(-1, WIFEXITED(4), WNOHANG) = 0
select(16, 0x404164d8, NULL, NULL, 0x6fff0578) [sleeping]
select(16, 0x404164d8, NULL, NULL, 0x6fff0578) = 0
time(NULL) = 1233771715
waitpid(-1, WIFEXITED(4), WNOHANG) = 0
select(16, 0x4042d6b8, NULL, NULL, 0x6fff0578) [sleeping]
select(16, 0x4042d6b8, NULL, NULL, 0x6fff0578) = 0
time(NULL) = 1233771725
waitpid(-1, WIFEXITED(4), WNOHANG) = 0
select(16, 0x404164d8, NULL, NULL, 0x6fff0578) [sleeping]
select(16, 0x404164d8, NULL, NULL, 0x6fff0578) = 0
time(NULL) = 1233771735
waitpid(-1, WIFEXITED(4), WNOHANG) = 0
select(16, 0x4042d6b8, NULL, NULL, 0x6fff0578) [sleeping]
select(16, 0x4042d6b8, NULL, NULL, 0x6fff0578) = 0
time(NULL) = 1233771745
waitpid(-1, WIFEXITED(4), WNOHANG) = 0
select(16, 0x404164d8, NULL, NULL, 0x6fff0578) [sleeping]
select(16, 0x404164d8, NULL, NULL, 0x6fff0578) = 0
time(NULL) = 1233771755
waitpid(-1, WIFEXITED(4), WNOHANG) = 0
select(16, 0x4042d6b8, NULL, NULL, 0x6fff0578) [sleeping]
select(16, 0x4042d6b8, NULL, NULL, 0x6fff0578) = 0
time(NULL) = 1233771765
waitpid(-1, WIFEXITED(4), WNOHANG) = 0
select(16, 0x404164d8, NULL, NULL, 0x6fff0578) [sleeping]
Is this in the NIS Server module, or the regular Users and Groups module?
Also, can you try running strace on the save_user.cgi script .. doing it on miniserv.pl doesn't reveal much, as that is just the web server waiting for the next HTTP request or for save_user.cgi to exit.