2009-03-24 Mark Grondona <mgrondona@llnl.gov> * : tag pdsh-2.18. * src/modules/sshcmd.c : Avoid printing sshcmd errors twice. Patch from Paul D. Smith <psmith at users.sourceforge.net>. * doc/pdsh.1.in : Add more detail to pdsh manpage about nodeattr module. 2008-11-25 Mark Grondona <mgrondona@llnl.gov> * config/ac_ssh.m4, configure : Allow --without-ssh-connect-timeout-option (passed to ./configure) to disable SSH connect timeout option in addition to --with-ssh-connect-timeout=none. 2008-10-21 Mark Grondona <mgrondona@llnl.gov> * src/pdsh/pcp_client.c (_pcp_sendfile) : Do not return -1 from _pcp_sendfile as this causes early abort from list_for_each. Return 0 instead to fix recursive pdcp. 2008-09-26 Mark Grondona <mgrondona@llnl.gov> * src/pdsh/opt.c, doc/pdcp.1.in : Add pdcp -e option to explicitly specify remote path to pdcp binary. 2008-09-22 Mark Grondona <mgrondona@llnl.gov> * : tag pdsh-2.17. * config/ac_ssh.m4, configure : Don't use -q option to grep. * Makefile.in, config.h.in, config/Makefile.in, configure, doc/Makefile.in, etc/Makefile.in, scripts/Makefile.in, src/Makefile.in, src/common/Makefile.in, src/modules/Makefile.in, src/pdsh/Makefile.in, src/qsnet/Makefile.in, testsuite/Makefile.in, testsuite/pdsh.test/Makefile.in : Re-run ./bootstrap. * config/acx_pthread.m4 : Update to latest version of ACX_PTHREAD macro from autoconf-archive.cryp.to/acx_pthread.html. 2008-09-18 Mark Grondona <mgrondona@llnl.gov> * src/pdsh/opt.c : Ignore multiple consecutive colons in host list supplied to -w and other target host input methods. Thus foo::bar is no longer treated as rcmd_type = foo, and target host = :bar. Instead the target host is just foo::bar. This behavior is probably more correct and least surprising to users (who probably rarely use the rcmd_type:hosts syntax). Plus, there is at least one user making use of proxy::hosts to handle automatic proxying of ssh connections. 2008-09-03 Mark Grondona <mgrondona@llnl.gov> * src/pdsh/xpopen.c : glibc 2.8 no longer defines ARG_MAX. Use sysconf (_SC_ARG_MAX) instead if it is available. Fix provided by Tom 'spot' Callaway via sf.net. 2008-08-06 Mark Grondona <mgrondona@llnl.gov> * src/common/hostlist.c : Update to latest hostlist code from LSD-Tools. * src/pdsh/privsep.c (privsep_server) : Fix handling of read() return code as found by Coverity. 2008-06-13 Mark Grondona <mgrondona@llnl.gov> * src/common/hostlist.h : Update to latest hostlist.h from LSD-Tools project. This version includes unistd.h (patch by Ashley Pittman). Issue was rediscovered Jeff Quaintance when I forgot to include Ashley's patch in the last version of pdsh. D'oh! 2008-04-01 Mark Grondona <mgrondona@llnl.gov> * scripts/dshbak : Allow for ':' in pdsh output lines. Thanks to Ashley Pittman for the patch. 2008-03-19 Mark Grondona <mgrondona@llnl.gov> * : tag pdsh-2.16 * scripts/dshbak : Do not include leading space in output lines (which is added by pdsh) to data printed by dshbak. Thanks to Ashley Pittman for the patch. * scripts/dshbak : Remove -s (sort) option to dshbak. Always sort output instead. 2008-03-11 Mark Grondona <mgrondona@llnl.gov> * src/pdsh/opt.c : When specifying rcmd_type via -w (i.e. [rcmd_type:][user@]host) have rcmd_type apply across all hosts until the next rcmd specification. That is ssh:host1,host2 now uses ssh for both host1 and host2. Prior to this change, ssh would only be used to contact host1. (Same change for user) * src/modules/genders.c : Don't read genders file if no genders options were specified. * src/pdsh/opt.c : Check validity of user-supplied fanout. * src/pdsh/opt.c : Avoid unecessary error message about missing WCOLL file by only reading that file if no other node selection options have been specified. 2008-01-29 Mark Grondona <mgrondona@llnl.gov> * src/modules/mcmcd.c, src/modules/xrcmd.c, src/pdsh/dsh.c, src/pdsh/mod.c, src/pdsh/opt.c : Fix minor defects as reported by Coverity. * src/common/hostlist.h, src/common/hostlist.c : Update to the latest hostlist code from LSD-Tools. 2007-10-24 Mark Grondona <mgrondona@llnl.gov> * : tag pdsh-2.15 * doc/pdcp.1.in, doc/pdsh.1.in : Update documentation to reflect support for connect timeout for some SSH implementations, and ability to use suffixes on hostlist expressions. 2007-10-23 Mark Grondona <mgrondona@llnl.gov> * pdsh.spec : Add ncurses-devel to BuildRequires if building with readline support. * src/common/pipecmd.h, src/common/pipecmd.c : Added pipecmd_target function to return target hostname from pipecmd object. * src/modules/sshcmd.c : Refactor ssh module to use pipecmd.c. * src/modules/sshcmd.c : Add support for connect timeout (-t) to ssh module for openssh using -oConnectTimeout=%d by default. * config/ac_ssh.m4 : Add --with-ssh-connect-timeout-option=STRING to ./configure. Allows setting SSH's connect timeout option, "-oConnectTimeout=%d by default", or disabling connect timeout alltogether for SSH with "none". 2007-08-22 Albert Chu <chu11@llnl.gov> * src/pdsh/pcp_client.c, src/pdsh/pcp_server.c : Remove advertising clause per letter from Berkeley. 2007-06-22 Mark Grondona <mgrondona@llnl.gov> * pdsh.spec : Redesign of specfile conditionals to allow easier modification of defaults. * : tag pdsh-2.14. 2007-06-20 Mark Grondona <mgrondona@llnl.gov> * src/modules/slurm.c : Include SLURM headers after all pdsh includes to avoid redefinition of bool type. * configure.ac, config/ac_exec.m4, pdsh.spec, src/modules/Makefile.am, config/Makefile.am : Allow conditional and static build of "exec" module. * : Re-run ./bootstrap. * src/pdsh/mod.c : Don't exclude filename member of module struct when building static modules. Fix for compile error. * src/modules/execcmd.c : Fix for static module build. * config/ac_exec.m4, configure : Enable "exec" rcmd module by default. 2007-06-07 Mark Grondona <mgrondona@llnl.gov> * : tag pdsh-2.13. 2007-06-06 Mark Grondona <mgrondona@llnl.gov> * src/pdsh/wcoll.c : Ignore blank and comment lines in WCOLL file instead of generating warning. * src/pdsh/rcmd.c : Add "exec" rcmd method to list of default rcmd modules. * scripts/dshbak : Attempt to compress ranges of hosts when numerically named hosts have non-numeric suffixes. 2007-06-04 Mark Grondona <mgrondona@llnl.gov> * src/common/pipecmd.c, src/common/pipecmd.h : Add new "pipecmd" API for executing arbitrary commands. * src/modules/execcmd.c : Add new "exec" rcmd module which uses pipecmd to execute arbitrary process in place of rcmd connect method. First pdsh "remote" arg is the command to execute, followed by any arguments. "%h", "%u", and "%n" are expanded to the target host, remote username, and rank [0-N] respectively. * src/pdsh/opt.h, src/pdsh/opt.c : Save remote argv array for later possible use. This is more useful for the 'exec' rcmd module that the opt->cmd string, because it preserves the shell's argument parsing. Functions for grabbing the remote argv and argc were added to opt.h. * configure.ac, src/common/Makefile.am, src/modules/Makefile.am : Build the execcmd module by default with pdsh. * src/pdsh/testcase.c : Add a testcase entry for pipecmd. There is an ulterior motive here: Without this testcase, pdsh would never call pipecmd functions, and thus the symbols would not be available to modules (e.g. execcmd and later sshcmd). * doc/pdsh.1.in : Add documentation for the exec rcmd module. * configure, src/common/Makefile.in, src/modules/Makefile.in : Rerun ./bootstrap. * src/pdsh/opt.c, doc/pdsh.1.in : Add "-N" option to disable hostname: prefix on lines of output. 2007-05-07 Daniel J. Blueman <daniel@quadrics.com> * pdsh.spec : Add rpmbuild "--without pam" option passthrough. * pdsh.spec : Generalise "elan3" to "Quadrics QsNet". 2007-05-07 Mark Grondona <mgrondona@llnl.gov> * src/pdsh/dsh.c : Check for command timeout when rsh thread poll is interrupted to avoid erroneous timeouts by stray signal interruptions. 2007-05-03 Mark Grondona <mgrondona@llnl.gov> * src/pdsh/dsh.c : Block SIGCHLD in pdsh threads. Fixes case where SIGCHLD (from use of ssh module) is delivered to unexpected thread causing the thread to think it has been timed out by wdog thread. 2007-01-15 Mark Grondona <mgrondona@llnl.gov> * Makefile.am, src/pdsh/Makefile.am, doc/Makefile.am, Makefile.in, src/pdsh/Makefile.in, doc/Makefile.in : Generate some 'uninstall-local' targets so that 'make uninstall' works as expected. Generate warning if files still exist in pkglibdir after uninstall. Rerun ./bootstrap. 2006-12-12 Mark Grondona <mgrondona@llnl.gov> * src/modules/sshcmd.c : Fix mid-block declaration that could cause compilation problem for some machines. 2006-12-11 Mark Grondona <mgrondona@llnl.gov> * src/pdsh/opt.c : Undocumented -K option to explicitly keep domain names in output labels. * : tag pdsh-2.12. 2006-12-10 Mark Grondona <mgrondona@llnl.gov> * src/pdsh/mod.c : Issue warning if module type/name is loaded more than once, and delete module with lower priority. 2006-12-09 Mark Grondona <mgrondona@llnl.gov> * src/common/macros.h : Only define bool if "true" and "false" are not already defined. Avoids compile error when they are macros. 2006-12-07 Mark Grondona <mgrondona@llnl.gov> * pdsh.spec, doc/Makefile.am, doc/Makefile.in, src/pdsh/Makefile.am, src/pdsh/Makefile.in : Install and package rpdcp and its man page. * src/common/err.h, src/common/err.c : Optionally keep domain part of name with "%S" format specifier when err_no_strip_domain() is called. * src/common/dsh.c : If any two targets have differing domains, do not strip the domain in output labels. * src/modules/slurm.c : Modify help string to indicate that "all" is a valid parameter to -j option. 2006-12-07 Albert Chu <chu11@llnl.gov> Support a Reverse pdcp option. * src/pdsh/pcp_server.c : Remove global infd and outfd file descriptors. Set and pass them around via a structure. End server gracefully rather than through exit(). Adjust API for more flexible use. * src/pdsh/main.c (main) : Support new pcp_server() API. * src/pdsh/pcp_client.h, src/pdsh/pcp_client.c : New files. * src/pdsh/dsh.c (_rexpand_dir, _expand_dir, _rcp_write, _rcp_send_file_data, _rcp_sendstr, _rcp_response, _rcp_sendfile) : Removed due to new common functions in pcp_client files. * src/pdsh/dsh.c (dsh, _rcp_thread) : Use new pcp_client functions. * src/pdsh/opt.c (_infile_names_check) : New function. * src/pdsh/opt.h, src/pdsh/opt.c : Add support for reverse copy (rpdcp) and pcp client (-Z) options and checks. Use _infile_names_check for common checks. * src/pdsh/dsh.c (dsh, _rcp_thread), src/pdsh/main.c (main) : Support reverse copy. * src/pdsh/pcp_server.c (pcp_server) : Remove setuid call. Unnecessary for pdsh/pdcp, a remnant from old rcp code. * doc/pdcp.1.in : Update appropriately. 2006-12-06 Mark Grondona <mgrondona@llnl.gov> * src/pdsh/dsh.c : Don't close fd in _do_output(). 2006-12-05 Mark Grondona <mgrondona@llnl.gov> * src/modules/slurm.c : Allow "all" argument to -j to select all nodes with SLURM jobs as targets. * doc/pdsh.1.in : Document "all" argument to -j option. * config/ac_msghdr_accrights.m4 : Add missing m4 include file. 2006-12-04 Mark Grondona <mgrondona@llnl.gov> * configure.ac : Define _POSIX_PTHREAD_SEMANTICS for Solaris to get version of sigwait(2) with two arguments. * config/ac_msghdr_accrights.m4, configure.ac, config/Makefile.am : Add check for msg_accrights in struct msghdr. * src/pdsh/privsep.c : Use msg_accrights instead of msg_control if it exists. (Fix for compile on Solaris) * src/pdsh/pcp_server.c : Ensure roundup is defined. * aclocal.m4, config.h.in, configure, Makefile.in, config/Makefile.in, doc/Makefile.in, etc/Makefile.in, scripts/Makefile.in, src/Makefile.in, src/common/Makefile.in, src/modules/Makefile.in, src/pdsh/Makefile.in, src/qsnet/Makefile.in, testsuite/Makefile.in, testsuite/pdsh.test/Makefile.in : Re-run bootstrap. * src/common/split.h, src/common/split.c : Add list_split_append() to append results of string split onto existing list. Also, don't allocate new string in list_join(). * src/pdsh/opt.c : Update callers of list_join(). * src/common/split.c : list_split_append() returns list_split() if list argument is NULL. * src/modules/dshgroup.c, src/modules/genders.c, src/modules/netgroup.c, src/modules/nodeattr.c, src/modules/slurm.c : Convert to use list_split_append() instead of statically defined helper functions. 2006-08-25 Mark Grondona <mgrondona@llnl.gov> * pdsh.spec : Remove erroneous "Requires: whatsup" from netgroup and dshgroup. Remove Conflicts from machines. Build netgroup and dshgroup by default since they have no build requirements. 2006-08-08 Mark Grondona <mgrondona@llnl.gov> * src/modules/genders.c : Allow default user name to also be specified to pdsh_rcmd_type attr with "user@". 2006-08-02 Mark Grondona <mgrondona@llnl.gov> * src/pdsh/dsh.c (_signals_thread) : Add missing return from signals thread. 2006-07-27 Mark Grondona <mgrondona@llnl.gov> * src/common/hostlist.c : Update to latest rev from LSD-Tools, which fixes some bugs found by Coverity. * src/common/dsh.c, src/common/privsep.c : Add checks for return codes from pthread_mutex_lock/unlock. (Coverity). 2006-07-26 Mark Grondona <mgrondona@llnl.gov> * src/pdsh/dsh.h, src/pdsh/dsh.c : Allow ctrl-Z (SIGTSTP) issued within 1s of ctrl-C to cancel pending threads (those threads which have not yet begun issuing the remote command). * doc/pdsh.1.in, doc/pdcp.1.in : Update documentation. * : tag pdsh-2.11. 2006-07-18 Mark Grondona <mgrondona@llnl.gov> * scripts/dshbak : Add new -s option to sort output. Contributed by tdussa at users.sourceforge.net. 2006-07-06 Mark Grondona <mgrondona@llnl.gov> * src/pdsh/opt.c : Fix bug where WCOLL hosts were unconditionally added to list of targets. Prior behavior was to have -w override WCOLL. [Reported by Fergal McCarthy]. 2006-06-05 Jim Garlick <garlick@llnl.gov> * doc/pdsh.1.in : fix a few typos [Chris Pepper] 2006-04-07 Mark Grondona <mgrondona@llnl.gov> * src/pdsh/mod.c : Report more specific errors when path to pdsh modules is not secure, and include the real path to the directory with the permissions problem. 2006-03-22 Mark Grondona <mgrondona@llnl.gov> * src/common/split.c : Fix missing headers. 2006-03-22 Jim Garlick <garlick@llnl.gov> * src/xcpucmd.c : Use new local exec facility and set args to run /bin/sh -c 'cmd'. 2006-03-22 Mark Grondona <mgrondona@llnl.gov> * src/common/split.c, src/common/split.h, src/pdsh/opt.c : Move list_join() from pdsh/opt.c to common/split.c. * src/pdsh/rcmd.h, src/pdsh/rcmd.c, src/pdsh/dsh.c, src/pdsh/opt.c, src/modules/sshcmd.c, src/modules/genders.c : Missing updates from rcmd-rewrite branch. Allow user@ to be specified in -w host spec. Add rcmd_opt_set() to allow rcmd modules to set rcmd-specific options (e.g. resolve_hosts). * testsuite/pdsh.test/pdsh.exp : Add test for "," in host range. Increase version number. * pdsh.spec : Add COPYING to docs. Remove -n from %setup. * : tag pdsh-2.10. 2006-03-21 Mark Grondona <mgrondona@llnl.gov> * src/pdsh/main.c (_interactive_dsh) : Add support for command history in interactive mode when using readline. History file is placed in ~/.pdsh/history. Original patch from Sebastien Cabaniols <Sebastian.Cabaniols@hp.com>. 2006-03-16 Jim Garlick <garlick@llnl.gov> * src/modules/xcpucmd.c : Add support support for signals. Change mini shell script so -S hack will work. 2006-03-15 Mark Grondona <mgrondona@llnl.gov> * src/pdsh/mod.c : Remove error message when loading duplicate module in pdsh. This is OK since we removed code which only loaded .la's, we could be loading corresponding .so after the .la (or vice versa). * pdsh.spec : Remove unneeded .la and .a files in packages. * : tag pdsh-2.9 2006-03-15 Jim Garlick <garlick@llnl.gov> * src/modules/xcpucmd.c : Use io session file instead of stdout and stdin session files. Enable pdcp support. * doc/pdsh.1.in, doc/pdcp.1.in : Describe xcpu module. 2006-03-14 Mark Grondona <mgrondona@llnl.gov> * src/pdsh/mod.c : Remove code which only loaded pdsh modules via *.la files. This probably doesn't save much time and didn't allow us to only install .so's on some systems. * src/common/split.c : Include xmalloc.h for Strdup () prototype. 2006-03-14 Jim Garlick <garlick@llnl.gov> * src/modules/xcpucmd.c, config/ac_xcpu.m4 : New (experimental). * configure.ac, config/Makefile.am, src/modules/Makefile.am : Add xcpu module support. * src/pdsh/rcmd.c : set precedence for xcpu module. * README.modules, NEWS : List xcpu module. 2006-02-24 Mark Grondona <mgrondona@llnl.gov> * config/ac_debug.m4, configure : Do not strip executables on Mac OSX, this seems to remove all access to global dynamic symbols for loaded modules. * src/pdsh/Makefile.am, src/pdsh/Makefile.in : Do not install pdsh/pdcp setuid root by default anymore. * pdsh.spec : Apply Ben Woodard's <woodard@redhat.com> patches for Fedora acceptance. 2006-02-14 Mark Grondona <mgrondona@llnl.gov> * : Update Copyright dates. 2006-02-13 Mark Grondona <mgrondona@llnl.gov> * pdsh.spec : Modified to comply with rpmlint (Ben Woodard <woodard@redhat.com>). * README, README.modules, doc/pdsh.1.in, NEWS : Update documentation. 2006-02-08 Mark Grondona <mgrondona@llnl.gov> * src/modules/sshcmd.c : Allow arguments to ssh command to be generated at runtime, and thus overrode or appended to by new env vars PDSH_SSH_ARGS and PDSH_SSH_ARGS_APPEND. 2006-02-07 Mark Grondona <mgrondona@llnl.gov> * config/ltmain.sh : Remove and regenerate ltmain.sh. 2006-02-02 Mark Grondona <mgrondona@llnl.gov> * src/modules/sshcmd.c : Change ssh_pid type from int to pid_t. 2006-01-20 Mark Grondona <mgrondona@llnl.gov> * src/pdsh/dsh.c (_thd_init) : Initialize th->resolve_hosts. * src/pdsh/privsep.c (privsep_rresvport, privsep_server) : Send lport argument passed to privsep_rresvport to privsep server so it can pass this value to rresvport() unchanged. This is required because lport must be initialized on some systems. 2006-01-19 Mark Grondona <mgrondona@llnl.gov> * config/libtool.m4 : Update libtool.m4 to version from 1.5.22. Fixes some problems with dlopen and dlsym on OS X. * configure.ac : Test for existence of sys/uio.h. * src/pdsh/privsep.c : Need to #include <sys/uio.h> on OS X for struct iovec declaration. * configure, aclocal.m4, Makefile.in, scripts/Makefile.in, src/Makefile.in, src/common/Makefile.in, src/modules/Makefile.in, src/qsnet/Makefile.in, src/pdsh/Makefile.in, testsuite/Makefile.in testsuite/pdsh.test/Makefile.in, config/Makefile.in, doc/Makefile.in, etc/Makefile.in: Rerun ./bootstrap with autoconf 2.59, automake 1.9.6, libtool 1.5.22. 2006-01-11 Mark Grondona <mgrondona@llnl.gov> * src/pdsh/privsep.c, src/pdsh/privsep.h, src/pdsh/main.c : Add "privilege separation" capability to pdsh to support safely running rsh/mqshell and mrsh/ssh/etc. together in the same process. During initialization, if pdsh detects it is running setuid, a child process is forked to retain elevated privileges, while pdsh swaps effective uid back to that of the user for the remainder of the run. The privileged process is used to bind reserved ports on behalf of pdsh. * src/modules/xrcmd.c, src/modules/qcmd.c, src/modules/k4cmd.c : Use priv_rresvport() instead of rresvport(). * src/modules/mcmd.c, src/modules/sshcmd.c, src/modules/mqcmd.c : If running with effective uid 0, and real user id is not also 0, drop all privileges (as a sanity check). * src/modules/genders.c : Add hostlist_uniq() after converting genders nodelist to hostlist format. 2006-01-04 Mark Grondona <mgrondona@llnl.gov> * src/pdsh/rcmd.c, src/pdsh/rcmd.h : Added a new rcmd module interface API which allows for multiple rcmd modules to be loaded in a single execution of pdsh. * src/pdsh/mod_rcmd.c, src/pdsh/mod_rcmd.h : Removed. * src/pdsh/opt.c : Update to use new rcmd interface. Process hosts passed to on command line to accept rcmd type prefix as rcmd_type:hosts,... Allow multiple invocations of -w. * src/pdsh/dsh.c, src/pdsh/dsh.h : Update to use new rcmd interface. * src/pdsh/Makefile.am, src/pdsh/Makefile.in : Remove mod_rcmd.[ch] and add rcmd.[ch]. * src/modules/genders.c : Add support for pdsh_rcmd_type genders attribute which will change the default rcmd type for a given set of hosts. 2005-12-22 Mark Grondona <mgrondona@llnl.gov> * src/common/split.c, src/common/split.h : Added. Move list_split() implementation which was used in several modules into pdsh common code. * src/modules/genders.c, src/modules/sdr.c, src/modules/nodeattr.c, src/modules/dshgroup.c, src/modules/netgroup.c, src/modules/slurm.c : Use list_split() from src/common/split.c instead of internal _list_split() implementation. 2005-12-15 Mark Grondona <mgrondona@llnl.gov> * src/modules/netgroup.c : Add netgroup module providing support for reading list of targets from /etc/netgroup file or NIS using standard setnetent/getnetent calls. * configure.ac, pdsh.spec, config/ac_netgroup.m4, doc/pdsh.1.in, src/modules/Makefile.am : Build, package, and document dshgroup module. * : Rerun ./bootstrap 2005-12-06 Mark Grondona <mgrondona@llnl.gov> * src/pdsh/opt.c : Move processing of -x (exclude hosts by name) until after mod_postop() has been called, because mod_postop() may modify the list of target hosts. * src/modules/sshcmd.c (_pipecmd) : Close all file descriptors >2 before exec'ing ssh, so that one ssh process' stdin doesn't remain open in a subsequently invoked ssh. We tried to do this by setting the close-on-exec flag on the fds when the socketpair was created in pdsh, but this introduces a race between when the fd is opened to when the flag is set where an ssh in another thread can be created. Closing all fds greater than 2 should work in all cases and is simpler. 2005-10-26 Mark Grondona <mgrondona@llnl.gov> * src/modules/xrcmd.c : Fix typo in error message "k4cmd" -> "rcmd". Patch supplied by Joe Ramey <ramey@ti.com>. 2005-10-13 Mark Grondona <mgrondona@llnl.gov> * : tag pdsh-2.8. 2005-10-10 Mark Grondona <mgrondona@llnl.gov> * src/pdsh/mod_rcmd.h, src/pdsh/mod_rcmd.c : Replace mod_rcmd() function with mod_rcmd_create() which returns a created struct rcmd_info with created stdout/err file descriptors and module-specific opaque data. The created rcmd_info is freed with mod_rcmd_destroy() before each dsh thread exits. * src/pdsh/mod.h, src/pdsh/mod.c : Allow modules to optionally export an rcmd_destroy function for cleanup of rcmd_info structure and associated opaque data. Change rcmd_signal interface to pass struct rcmd_info instead of efd, and rcmd interface passes pointer to void * argument (module-specific opaque data). * src/pdsh/dsh.h, src/pdsh/dsh.c : Replace thd_t fd and efd members with pointer to struct rcmd_info created by call the mod_rcmd_create(). Call mod_rcmd_destroy() before thread termination. * src/modules/sshcmd.c : Remove ssh_reaper thread and collect ssh process exit status in new "rcmd_destroy" function. * src/modules/mqcmd.c, src/modules/k4cmd.c, src/modules/xrcmd.c, src/modules/mcmd.c, src/modules/qcmd.c : Update remaining rcmd modules to reflect changes in pdsh_rcmd_operations components. * src/modules/sdr.c (_sdr_cache_hresp_line) : Ignore host_responds for node ids with no node information. 2005-09-30 Mark Grondona <mgrondona@llnl.gov> * src/pdsh/qsnet/qswutil.h : fix compile warning against definition of QSW_RAILMASK_MAX. 2005-09-22 Mark Grondona <mgrondona@llnl.gov> * src/pdsh/dsh.c (_wdog) : Don't sleep for connect_timeout seconds at beginning of watchdog poll (breaks command timeout). * src/pdsh/dsh.c (_rsh_thread) : Send SIGTERM to commands that have been timed out by watchdog. (for SSH, this allows us to kill the ssh process but not the remote commands) 2005-09-22 Mark Grondona <mgrondona@llnl.gov> * doc/pdsh.1.in : Add note in LIMITATIONS about inability for pdsh to guarantee remote commands are terminated after command timeout. 2005-09-21 Mark Grondona <mgrondona@llnl.gov> * src/common/dsh.c (_rcp_response) : Print error string recvd from remote RCP server. Remove confusing "Failed to initiate RCP protocol" error message. * src/common/dsh.c (_rcp_response) : Remove legacy comments about pcp response codes (we never send a response prefixed with 2) and other small changes to rcp_response. 2005-09-14 Mark Grondona <mgrondona@llnl.gov> * src/common/hostlist.c : Update to latest hostlist code which allows a suffix on hostlist expressions, e.g. foo[0-10]-bar. 2005-08-26 Mark Grondona <mgrondona@llnl.gov> * src/modules/dshgroup.c (_read_groupfile) : module was testing for backupfile (/etc/dsh/group/%s), after access() call for default ($HOME/.dsh/group/%s) failed, but was still opening default instead of backupfile. (Joe Ramey <ramey@it.com>) 2005-08-17 Mark Grondona <mgrondona@llnl.gov> * src/pdsh/dsh.c (dsh) : Remove debug output when processing remote return codes. 2005-08-15 Mark Grondona <mgrondona@llnl.gov> * pdsh.spec : Allow PDSH_WITH_OPTIONS and PDSH_WITHOUT_OPTIONS to be used to specify which conditional subpackages to build with rpmbuild as well as existing --with and --without flags. * src/modules/genders.c : Tweak module help info for clarity. * : tag pdsh-2.7 2005-08-12 Mark Grondona <mgrondona@llnl.gov> * src/modules/dshgroup.c : Add dshgroup module providing -g/-X groupname to read list of targets from groupname file in ~/.dsh/group/ or /etc/dsh/group/groupname. * configure.ac, pdsh.spec, config/ac_dshgroup.m4, src/modules/Makefile.am : Build, package, and document dshgroup module. * src/pdsh/dsh.c : Add alternate definition of PTHREAD_STACK_MIN in case definition is missing from pthread.h. 2005-08-10 Mark Grondona <mgrondona@llnl.gov> * src/pdsh/dsh.c : Include fd.h to avoid warning. * src/modules/sshcmd.c : Fix some compile warnings. * configure.ac : Add AM_MAINTAINER_MODE to disable maintainer-mode by default. Remove AC_AIX which appears to leave CFLAGS set and disrupt proper functioning of other macros. Run ./bootstrap. 2005-08-09 Mark Grondona <mgrondona@llnl.gov> * src/modules/sshcmd.c : Add close-on-exec flag to file descriptors passed back from sshcmd() so they aren't inadvertently left open in subsequently invoked ssh commands. 2005-08-08 Mark Grondona <mgrondona@llnl.gov> * src/pdsh/opt.c (opt_default, _find_path) : Initialize path_progname for both pdsh and pdcp. * src/pdsh/mod.h, src/pdsh/mod.c, src/pdsh/main.c : Accept module path element as secure if owner matches pdsh/pdcp executable ownership, as well as root or current user. * src/pdsh/mod.c (_path_permissions_ok) : Use stat() instead of lstat(). 2005-08-06 Mark Grondona <mgrondona@llnl.gov> * src/pdsh/main.c : Change seteuid() to plain setuid() which is more portable and has the intended effect. * src/modules/sshcmd.c : Change setenv() to putenv() for portability. * src/modules/sshcmd.c : Remove sshcmdr() which is now identical to sshcmdrw(). * src/pdsh/dsh.c () : Don't automatically close fd on XPOLLERR, there might still be pending data to read. Fixes output truncation bug report by Fred Cassirer <fred.cassirer@hp.com>. 2005-08-02 Mark Grondona <mgrondona@llnl.gov> * src/pdsh/dsh.c, src/pdsh/pcp_server.c : Remove debug code for pdcp which was accidentally committed. * src/pdsh/pcp_server.c : Change all writes to go through stdout fd instead of stdin fd. Stdin will work when pdcp is invoked via rshd started from inetd, and appears to work under Linux even for sshd, but writing to stdin will block on many systems, hanging the pcp protocol. (Yehia Beyh <Yehia.Beyh@hp.com>) * : tag pdsh-2.6 2005-07-21 Mark Grondona <mgrondona@llnl.gov> * src/common/hostlist.c, src/common/hostlist.h : Update hostlist code to latest version from LSD-Tools project, which fixes many bugs. * src/pdsh/mod.c (_dir_ok) : Directory permissions are ok even if other has write permission if the sticky bit is set. * src/pdsh/mod.c (_mod_load_dynamic_modules) : Don't load module files owned by users other than current user and root, or files that have write permissions for other. * : tag pdsh-2.5 2005-07-20 Mark Grondona <mgrondona@llnl.gov> * src/modules/sshcmd.c : Add ssh "reaper" thread to collect exit status of all ssh commands and print any nonzero exit codes at end of pdsh run. No longer invoke ssh backgrounded, as this is no longer needed since pdsh now reaps these processes. * config/Make-rpm.mk, Makefile.am : Remove unneeded "make rpm" target. * doc/pdsh.1.in : Fix up some manpage text. 2005-07-19 Mark Grondona <mgrondona@llnl.gov> * src/common/xmalloc.h, src/common/xmalloc.c : Strdup takes const arg. * src/modules/mqcmd.c (mqcmd) : Fail gracefully if munge_ctx_create returns NULL. 2005-07-15 Mark Grondona <mgrondona@llnl.gov> * src/pdsh/dsh.c (dsh) : Be sure to handle error conditions on file descriptors when returning from xpoll(). (fixes pdsh hang on OS X as reported by Andrina Kelly <andrina@corefa.com>). 2005-05-31 Mark Grondona <mgrondona@llnl.gov> * src/pdsh/dsh.c (dsh) : Don't call _increase_nofile_limit() until after mod_rcmd_init(). 2005-05-09 Albert Chu <chu11@llnl.gov> * : Added genders querying support to -g and -X options. * src/modules/genders.c (genders_init): New function. * src/modules/genders.c (genders_fini): Call lt_dlclose appropriately. Fix prototype to match ModExitF type and return 0. * src/modules/genders.c (_read_genders_attr): Modified appropriately to call genders_query if it is available. * src/modules/genders.c (_read_genders): Renamed 'attr' local var to 'query'. * doc/pdsh.1.in: Updated information on -g and -X options appropriately. 2005-03-28 Mark Grondona <mgrondona@llnl.gov> * config/ac_qshell.m4, config/ac_mqshell.m4 : Abort configure script when --with-qshell or --with-mqshell is supplied and PAM support cannot be found (instead of silently deactivating these options). * Makefile.am : Remove redundant install and uninstall hooks from top- level Makefile. (reported by Tsung-i Mark Huan <tihuang@cs.uh.edu>) 2005-03-18 Mark Grondona <mgrondona@llnl.gov> * README.QsNet : Add reference to Quadrics' pdsh FAQ. 2005-03-12 Mark Grondona <mgrondona@llnl.gov> * src/common/xpoll.c : Move include of sys/types.h above sys/select.h for OS X. (patch from Andrew Mortensen <admorten@umich.edu>). 2005-01-10 Mark Grondona <mgrondona@llnl.gov> * pdsh.spec.in : Update path to xinetd init script as reported by Daniel Blueman <daniel.blueman@quadrics.com> for compatibility with SuSE. 2005-01-07 Mark Grondona <mgrondona@llnl.gov> * src/qsnet/qswutil.c (qsw_have_elan3) : Fix bug in m/qshd which caused pdsh to fail on nodes without an elan3 adapter. (patch supplied by Daniel Blueman <daniel.blueman@quadrics.com>) 2004-12-08 Mark Grondona <mgrondona@llnl.gov> * src/modules/mcmd.c : Update to mrsh protocol version 2.1, which allows mrsh over "localhost." * : tag pdsh-2-4-1 2004-11-22 Mark Grondona <mgrondona@llnl.gov> * README.QsNet : Update location of libelanhosts. Describe "slurm" module. * src/pdsh/dsh.c (dsh) : Increase max number of open files to hard limit for large fanout. * : tag pdsh-2-3-1 2004-09-21 Albert Chu <chu11@llnl.gov> Added large file support to pdcp (gnat pdsh/497). * src/pdsh/pcp_server.c (_sink): Redeclare 'size' as off_t type instead of integer. * src/pdsh/dsh.c (_rcp_sendfile): Fix typo in comments. 2004-09-21 Mark Grondona <mgrondona@llnl.gov> * configure.ac : Add AC_SYS_LARGEFILE (fix for gnat pdsh/497). 2004-07-30 Mark Grondona <mgrondona@llnl.gov> * : Tagged pdsh-2-2-1 2004-07-19 Mark Grondona <mgrondona@llnl.gov> * src/modules/slurm.c : Allow multiple jobids to -j option. * doc/pdsh.1.in : Change name of mqshell/qshell modules to mqsh/qsh. 2004-06-23 Mark Grondona <mgrondona@llnl.gov> * src/pdsh/opt.c (opt_args) : Do not abort when none of the hosts in exclude_buf (i.e. -x) match the current wcoll. * src/common/err.c (lsd_fatal_error) : Added. * configure.ac : Define WITH_LSD_FATAL_ERROR_FUNC. 2004-06-09 Mark Grondona <mgrondona@llnl.gov> * src/pdsh/dsh.c (_dsh_attr_init) : Added function to initialize pthread attr and set stacksize and detach state. * src/pdsh/dsh.c (dsh) : Use _dsh_attr_init() instead of pthread_attr_init() directly. Set stacksize argument using DSH_THREAD_STACKSIZE (Currently set to 128K). * README : Add note to look at README.QsNet for --with-qshell. * : Tagged pdsh-2-1-1 2004-06-01 Mark Grondona <mgrondona@llnl.gov> * src/qsnet/qswutil.c (_qsw_cap_create) : Fix multirail loop for libelan3 systems to never go past ELAN_MAX_RAILS. 2004-05-28 Mark Grondona <mgrondona@llnl.gov> * scripts/dshbak : Use regex instead of split() to allow for whitespace padding in node names (suggested by Ashley Pittman <ashley@quadrics.com>) 2004-05-26 Mark Grondona <mgrondona@llnl.gov> * src/modules/slurm.c (_slurm_wcoll) : Add extra "show_all" argument needed for slurm_load_jobs(). * config/ac_elan.m4 : Fix typos. Abort configure if libelanhosts not found. * : Tagged pdsh-2-0-1 2004-05-12 Mark Grondona <mgrondona@llnl.gov> * src/pdsh/dsh.c (_rcp_thread) : Generate error message and copy any pending stderr data to user when _rcp_response() fails. (gnats:433) 2004-05-12 Albert Chu <chu11@llnl.gov> * doc/pdcp.1.in: Added note that pdcp must be installed on remote destination nodes. 2004-05-06 Mark Grondona <mgrondona@llnl.gov> * src/qsnet/elanhosts.c, src/qsnet/elanhosts.h, src/qsnet/Makefile.am : Removed elanhosts.[ch] (functionality moved into libelanhosts library). * config/ac_elan.m4 : Check for presence of libelanhosts. 2004-04-27 Mark Grondona <mgrondona@llnl.gov> * src/qsnet/qshell.c (get_qshell_info) : Increase max environment string from 1k to 4k. 2004-04-26 Mark Grondona <mgrondona@llnl.gov> * src/qsnet/qswutil.c : Add missing variable in #ifdef HAVE_LIBELAN3 * src/qsnet/qshell.c : Add missing newlines to error messages. * src/pdsh/opt.h, src/pdsh/opt.c : Added and initialized ret_remote_rc. * src/pdsh/dsh.c (dsh) : Initialize opt->getstat if either of ret_remote_rc or kill_on_fail are true, but only adjust exit value of pdsh process when ret_remote_rc is true. * src/pdsh/dsh.c (_rsh_thread) : Kill all processes if remote process is killed by a signal and opt->kill_on_fail is true. * src/pdsh/dsh.c (_die_if_signalled) : Added. 2004-04-08 Mark Grondona <mgrondona@llnl.gov> * src/qsnet/qswutil.c (_qsw_cap_create, _qsw_elan_nrails) : Added. * src/qsnet/qswutil.c (qsw_setup_program) : Further refinement of Elan multirail support. 2004-04-07 Mark Grondona <mgrondona@llnl.gov> * src/pdsh/dsh.c (_fwd_signal) : Check for valid file descriptor before passing to mod_rcmd_signal(). * src/pdsh/dsh.c (_rsh_thread) : Block SIGPIPE outside while loop and before call to connect. * src/pdsh/opt.c (opt_args) : Pass PCP only arguments to modules when in DSH mode. * src/qsnet/qswutil.c, src/modules/mqcmd.c, src/modules/qcmd.c: Add support for user supplied railmask (default to 1). Fix broken multrail (for elanctrl interface) reported by Fabrizio Petrini <fabrizio@lanl.gov> * src/qsnet/qshell.c (get_qshell_info) : Re-map QSHELL_REMOTE_* environment variables to their unprefixed counterparts to allow propagation of LD_LIBRARY_PATH and LD_PREOPEN to qshell jobs as suggested by Ashley Pittman <ashley@quadrics.com>. 2004-04-02 Mark Grondona <mgrondona@llnl.gov> * src/qsnet/Makfile.am : Need to link libqsw with libdl when not using PAM. (Reported by Nicholas Henke <nic@clusterfs.com>) * src/common/hostlist.c : Update to latest hostlist code from LSD-Tools project. 2004-03-30 Mark Grondona <mgrondona@llnl.gov> * src/pdsh/dsh.c (_rsh_thread) : Remove calls to xfgets() and use internal pdsh buffering to line-buffer output data. (gnats:408) * src/pdsh/cbuf.c, src/pdsh/cbuf.h: Added. * src/common/xstring.c (xfgets, xfgets2) : Removed unused functions. 2004-03-23 Mark Grondona <mgrondona@llnl.gov> * src/pdsh/dsh.c (_wdog) : Fix bug in watchdog sleep (found by Al Chu <chu11@llnl.gov>). * src/pdsh/dsh.c (_rcp_thread, _rsh_thread): Set thread connect time before updating thread state to DSH_READING to avoid potential race in watchdog (found by Al Chu <chu11@llnl.gov>). 2004-03-15 Mark Grondona <mgrondona@llnl.gov> * src/pdsh/mod.c, src/pdsh/mod.h, src/pdsh/opt.c : Misc. doc and other cosmetic changes suggested by Py Watson <py@llnl.gov>. * src/pdsh/mod_rcmd.c : Move "mrsh" module to top position in rcmd_rank[], making it the default whenever installed. * src/pdsh/dsh.c (_wdog) : Terminate watchdog if thread info has been freed. 2004-03-08 Mark Grondona <mgrondona@llnl.gov> * src/modules/sdr.c : Rewrite module so that -a, -i, and -v can be used independently of eachother and along with other node selection options. * src/modules/genders.c : Modified behavior of -a such that all nodes are targeted =except= those with "pdsh_all_skip" attribute. New "-A" option provides old -a behavior. Added -F option to point pdsh to a non-default genders file. * src/modules/nodeattr.c : Added -A option and changed semantics of -a to match genders module. 2004-03-03 Mark Grondona <mgrondona@llnl.gov> * src/qsnet/qswutil.c (qsw_spawn_neterr_thr) : Dlopen libelan3.so when needed on Elan3 systems for running the network error thread. Allows single qshd/mqshd binary to run on Elan3 or Elan4. * doc/pdsh.1.in, doc/pdcp.1.in : Rewrite of pdsh/pdcp documentation. 2004-02-25 Mark Grondona <mgrondona@llnl.gov> * src/modules/Makefile.am, src/qsnet/Makefile.am : Build convenience libs (libqsnet, libmods) only when needed. * configure.ac, src/pdsh/Makefile.am : Add -Wl,-bgcbypass=1000 when building pdsh with dynamic modules on AIX. This is hack to ensure to that symbols in libcommon not used by pdsh but possibly needed by dlopen'd modules are not garbage-collected by the AIX linker. 2004-02-24 Mark Grondona <mgrondona@llnl.gov> * configure.ac : Export WITH_GNU_LD Automake conditional. * src/modules/Makefile.am : Build version script for all pdsh modules if using GNU linker. 2004-02-17 Mark Grondona <mgrondona@llnl.gov> * src/modules/genders.c : Allow multiple genders attributes to be passed to -g and -X, either via comma-separated list or multiple invocations of these options. * src/modules/nodeattr.c : Same. * src/modules/sdr.c : Truncate domain part of hostnames. 2004-02-12 Mark Grondona <mgrondona@llnl.gov> * src/pdsh/mod.c : Modules now optionally export pdsh_module_priority which affects sorting in the list of loaded modules. This can be used to ensure that some modules interfaces are called after others. * src/modules/ : add pdsh_module_priority to existing modules. * src/modules/genders.c : Added -X option. Changed behavior of -i such that it always translates between altnames to canonical names. * config/ac_static_modules.m4 : Place static_modules.h in top level builddir -- src/modules might not exist at time configure is run. * src/modules/Makefile.am : Be sure to include QSW libs in libmods when compiling with static modules. * src/qsnet/elanhosts.c, src/qsnet/qswutil.c : Improve error message when hostname not found in /etc/elanhosts. 2004-02-11 Mark Grondona <mgrondona@llnl.gov> * : Added "slurm" module to support running under SLURM allocations. * config/ac_slurm.m4, src/modules/slurm.c : Added. * src/modules/Makefile.am, configure.ac: Support new slurm module. 2004-02-10 Mark Grondona <mgrondona@llnl.gov> * config/ac_rsh.m4 : added file. * configure.ac, config/ac_static_modules.m4, src/modules/Makefile.am : Don't unconditionally include BSD rsh module. * src/common/hostlist.c : Update to lastest for lsd-tools. * src/pdsh/mod.c : Workaround glibc <= 2.2.4 dl.so bug (gnats:322) * src/pdsh/dsh.c (_int_handler) : Sanity check for NULL thread info array before attempting to print stats. 2003-12-30 Albert Chu <chu11@llnl.gov> * README.modules: Removed mrshd package requirement. 2003-12-22 Albert Chu <chu11@llnl.gov> * src/qsnet/mqshd.c (check_interfaces): Removed logically unused code. 2003-12-18 Mark Grondona <mgrondona@llnl.gov> * src/qsnet/qswutil.c (_setbitmap): Fixed bug when using cyclic distribution and non-contiguous nodesets. * src/pdsh/main.c, src/pdsh/opt.c: Move mod_rcmd_exit() from main() into opt_free() since mod_rcmd_load() is called in opt_args(). 2003-12-16 Albert Chu <chu11@llnl.gov> * src/qsnet/qshell.c (getcommon): Renamed to readchar. * src/qsnet/qshell.c (getint): Modified to not use readchar. See comments for info why. * src/qsnet/qshell.c (qshell_conv): New function. * src/qsnet/qshell.c (pamauth): Modified to use new qshell_conv function. * src/qsnet/qshell.c (get_qshell_info): Added "\n" to end of all errlog messages. * src/qsnet/qshd.c (doauth, qshd_get_args): Made changes to support changes to pamauth. * src/qsnet/qshd.c (qshd_get_args): Fixed bug in which remuser buffer was being interpreted as the command buffer. * src/qsnet/mqshd.c (mqshell_get_args): Made changes to support changes to pamauth. * src/qsnet/qshell.h, src/qsnet/qshell.c (errorsock): Removed this unused function. * src/modules/mqcmd.c (mqcmd): Made error messages have more consistent wording. 2003-12-12 Albert Chu <chu11@llnl.gov> Upgraded mqshd daemon based on changes in the original mrshd daemon. * src/qsnet/mqshd.c (check_interfaces): Changed h_length parameter to addr_len. * src/qsnet/mqshd.c (check_munge_ip): New function. * src/qsnet/mqshd.c (mqshell_get_args): Use new check_munge_ip function. Remove calls to gethostname and gethostbyname. getpwnam error now outputs "Permission Denied" instead of "Internal System Error". Cleaned up code to be more similar to mrshd daemon code. Misc * src/modules/mqcmd.c (mqcmd): Added munge ctx for better error message. * src/modules/mcmd.c, src/modules/mqcmd.c: Re-worked code to have similar style to mcmd module from mrsh project, easing potential bug fixes later on. 2003-12-10 Mark Grondona <mgrondona@llnl.gov> * src/common/Makefile.am, src/modules/Makefile.am, src/pdsh/Makefile.am: No whitespace between -I and arguments -- some compilers (Compaq *cough*) can't handle it. * configure.ac: remove -q from grep command lines for portability. * src/pdsh/opt.c (opt_register): _init_pdsh_options() doesn't take an arg. * src/pdsh/dsh.c (_xsignal): Actually return old signal handler. * src/pdsh/pcp_server.c: Include sys/sysmacros.h on systems that have it (for roundup() macro declaration). * src/qsnet/qswutil.c: Added qsw_prgsignal. * src/qsnet/qshell.c (stderr_parent): Call qsw_prgsignal() abstraction instead of rms_prgsignal() directly. * src/pdsh/opt.c (opt_default, opt_verify): Only allocate list for opt->infile_names if personality == PCP. * src/modules/mcmd.c (mcmd): Use a munge ctx for better error msgs. * src/modules/genders.c: Added ModExitF genders_fini to free any memory used by module. * src/pdsh/main.c, src/pdsh/dsh.c: Move rcmd_exit() call from dsh() back up into main(). 2003-12-09 Albert Chu <chu11@llnl.gov> * config/ac_nodeupdown.m4: Added check for old vs. new nodeupdown APIs. * src/modules/nodeupdown.c (remove_all_down_nodes): Added support for both old and new nodeupdown APIs. * pdsh.spec.in: Changed whatsup >= 1.3 requirement to just whatsup. 2003-12-09 Albert Chu <chu11@llnl.gov> * src/modules/nodeupdown.c (remove_all_down_nodes): Updated for change in nodeupdown API version 1.3. * pdsh.spec.in: Added requirement that nodeupdown module requires whatsup >= 1.3 package. * : Tagged pdsh-2-0-0-pre12. 2003-12-02 Mark Grondona <mgrondona@llnl.gov> * src/pdsh/dsh.c (dsh): Reinstall old SIGINT handler before freeing thread info array. 2003-12-01 Mark Grondona <mgrondona@llnl.gov> * src/modules/genders.c (_read_genders): Search attribute argument for an attr=value pair and pass value to genders_getnodes() if found. 2003-11-24 Mark Grondona <mgrondona@llnl.gov> * configure.ac, config/Make-rpm.mk: Allow date-tagged builds off unstable branches. 2003-11-19 Albert Chu <chu11@llnl.gov> * config/ac_static_modules.m4: Fixed variable names. Variable names were changed in ac_qshell.m4 and ac_mqshell.m4, but never modified in this particular macro. 2003-11-13 Albert Chu <chu11@llnl.gov> * src/qsnet/mqshd.c (getifrlen): Added fix for ia64 portability issue. 2003-11-12 Mark Grondona <mgrondona@llnl.gov> * pdsh.spec.in: Only build ssh and rsh modules by default. All other modules must be enabled via --with <pkg> on rpmbuild command line. * config/Make-rpm.mk: Pass options to rpmbuild via WITH_OPTIONS and WITHOUT_OPTIONS environment variable (instead of ``rpmargs''). 2003-11-06 Mark Grondona <mgrondona@llnl.gov> * src/pdsh/ltdl.c, config/libtool.m4 : Update to libtool 1.4.3. * src/pdsh/opt.c (_show_version, _usage) : Created common function to print list of loaded rcmd modules. 2003-10-28 Mark Grondona <mgrondona@llnl.gov> * src/pdsh/Makefile.am : Removed QSW_LIBS from pdsh binaries. 2003-10-27 Jim Garlick <garlick@llnl.gov> * src/qsnet/qswutil.c (qsw_decode_cap) : Changed format for cap->cap_elan_type/cap->cap_spare to %hx from %x. This member is unsigned short. 2003-10-14 Mark Grondona <mgrondona@llnl.gov> * Makefile.am, pdsh.spec.in: Do not install pdsh/pdcp with setuid bits on by default. * src/modules/mcmd.c, src/modules/mqcmd.c (rcmd_init): drop elevated permissions if they are set. 2003-10-13 Mark Grondona <mgrondona@llnl.gov> * config/ac_mqshell.m4, config/ac_qshell.m4, config/ac_elan.m4: Abstract Elan tests into AC_ELAN macro. Test for either libelanctrl or libelan3. * src/qsnet/qswutil.c: Integrate patch from Quadrics to support new QSW elanctrl interface. 2003-10-12 Mark Grondona <mgrondona@llnl.gov> * src/qsnet/qshell.c (getpwnam_common): return copy of passwd struct alloc'd on heap instead of return value from getpwnam. * src/common/hostlist.c: update to latest hostlist code from LSD-Tools project. 2003-10-02 Albert Chu <chu11@llnl.gov> * src/pdsh/opt.h: Increased MAX_USERNAME from 9 to 17. * src/pdsh/opt.c (opt_default, opt_args): Null terminate luser or ruser username strings in case overflow occurred. 2003-09-26 Albert Chu <chu11@llnl.gov> * src/modules/mcmd.c (mcmd): Changed size_t to socklen_t for 'len' variable to avoid compiler warnings. * src/modules/mcmd.c: Upped protocol version number to 2.0. 2003-09-19 Albert Chu <chu11@llnl.gov> * pdsh.spec.in: Removed dependency of mrshd package from pdsh-rcmd-mrsh. 2003-09-18 Albert Chu <chu11@llnl.gov> * doc/pdsh.1.in, doc/pdcp.1.in: Replaced @PROJECT@ with @PACKAGE@, so that manpages will be output properly by configure. * src/qsnet/mqshd.c (check_interfaces): Fixed a memory leak. 2003-09-17 Albert Chu <chu11@llnl.gov> * src/pdsh/dsh.c (dsh): Fixed bug in which _rsh_thread does not terminate jobs properly. Bug caused by kill_on_fail value not being propogated properly to _rsh_thread. * src/pdsh/dsh.c (dsh): Before exiting on a pthread_create failure, added code to kill all remote jobs if kill_on_fail is true. * src/qsnet/qshell.c (stderr_parent): Added feature so that the remote daemon and job are killed if pdsh crashes. 2003-09-16 Albert Chu <chu11@llnl.gov> * src/modules/mcmd.c (mcmd): Fixed an additional error message inconsistency due to a close being called before an errno check. * src/qsnet/mrshd.c (mqshell_get_args): Modified error messages to be more consistent with mrshd error messages in the mrshd project. * doc/pdsh.1.in: Added note to LIMITATIONS about how the maximum number of simultaneous jobs that can be executed is limited by the maximum number of concurrent threads that can be spawned. 2003-09-12 Albert Chu <chu11@llnl.gov> * src/pdsh/dsh.c (dsh): Error message from pthread_create() fixed to output error message based on return value from pthread_create(), not errno. 2003-08-29 Mark Grondona <mgrondona@llnl.gov> * src/common/xpoll.c (_poll) : Removed variable length array declaration (not yet supported in many compilers). * src/modules/sdr.c, src/modules/nodeattr.c : Use hostlist_push instead of hostlist_push_host, which doesn't get exported on AIX. * configure.ac : Append -Wl,-bexpall and -Wl,-brtl to LDFLAGS if using dynamic loading on AIX. Added AC_AIX macro. 2003-08-28 Mark Grondona <mgrondona@llnl.gov> * : Reorganized pdsh code and changed sources accordingly. * src/qsnet/qshd_common.h, src/qsnet/qshd_common.c: Renamed to qshell.[ch], changed main_common() to qshell() and removed references to ``doit.'' * : Tagged pdsh-2-0-0-pre5 for testing. 2003-08-28 Albert Chu <chu11@llnl.gov> * src/modules/mcmd.c (mcmd) src/modules/mqcmd.c (mqcmd): Incorporated Al Chu's patch to fix potential error message inconsistencies due to a close call before an errno check. 2003-08-19 Albert Chu <chu11@llnl.gov> * mqshd.c (check_interfaces): Skip localhost IP address (127.0.0.1). 2003-08-12 Albert Chu <chu11@llnl.gov> * qshd_common.h, qshd_common.c: New Files. * qshd.c, mqshd.c: Moved common code into qshd_common.c. * ChangeLog: Slightly reformatted ChangeLog to conform to GNU standards. Older entries will still contain their old format. 2003-08-07 Albert Chu <chu11@llnl.gov> * mqshd daemon now properly uses remote hostname with PAM * Tagged pdsh-2-0-0-pre4 2003-08-04 Albert Chu <chu11@llnl.gov> * Re-worked mcmd/mqcmd to handle stderr & stdout in one stream * Tagged pdsh-2-0-0-pre3 2003-07-21 Albert Chu <chu11@llnl.gov> * Fixed typos in manpages. * Enabled PAM support in qshell & mqshell daemons * Updated configuration to output warning/notice messages if particular modules cannot be built. * Tagged pdsh-2-0-0-pre2 2003-07-16 Albert Chu <chu11@llnl.gov> * Fixed additional issues with command line options and modules recognized (or not-recognized) between pdsh and pdcp. * Removed dependence of rcp command from pdcp. All functionality of the rcp command is now coded internaly within pdcp. * Eliminated several bugs from original rcp code. * Fixed several pdcp bugs related to -r option. * Fixed pdcp access/modification time errors with -p option. * Updated pdcp manpage to be clearer about pdcp functionality. * "bsd" rcmd renamed to "rsh" rcmd * Fixed scalability issues with mcmd/mqcmd file descriptors * Fixed scalability issues with select() by using poll() * Updated rcmd for new mrshd protocol * Fixed possible race condition in mqcmd/mqshd * Tweaked configuration, makefiles, manpages, and documents for readability and portability. 2003-06-24 Albert Chu <chu11@llnl.gov> * added ability to compile modules in statically with --enable-static-modules option * ssh no longer compiled automatically, needs --with-ssh option * mqshd built to be independent of net-toollib library * added checks to differentiate between options/modules suitable for pdsh vs. pdcp * added several error/warning messages to specific modules * minor tweaking of configuration, makefiles, documents, and manpages for readability and portability. 2003-06-13 Albert Chu <chu11@llnl.gov> * added support for mqsh rcmd and mqshd daemon * updated manpages and docs for pdsh and pdcp * variety of minor tweaks and modifications in code and autoconf 2003-06-03 Albert Chu <chu11@llnl.gov> * added support for mrsh rcmd 2003-05-21 Mark Grondona <grondona1@llnl.gov> * Changed behavior of mod_read_wcoll() to call exported read_wcoll functions from all modules (instead of only first to return non-NULL). * Added --with-* configure options for all modules mainly to support rpmbuild which doesn't support configure-time determination of subpackages. 2003-05-21 Mark Grondona <grondona1@llnl.gov> * Changed pdsh list implementation to Chris Dunlap's list.[ch] * Added mod.[ch] and mod_rcmd.[ch] for pdsh module loading/unloading. * Added ltdl.[ch] from libtool 1.4.3 (1.922.2.111 2002/10/23 02:54:36) * Updated to new pdsh "modules" design. Added modules subdirectory, removed sshcmd.c, qcmd.c, xrcmd.c and added new "rcmd" modules with same functionality. Moved libgenders, nodeattr, nodeupdown, and sdr specific code from main pdsh code into modules. * Reorganized configure.ac and added new tests as auxdir/*.m4 2003-05-16 Albert Chu <chu11@llnl.gov> * updated for gendersllnl API changes and removal of -r option from nodeattr * tagged pdsh-1-8-5chaos 2003-04-22 Albert Chu <chu11@llnl.gov> * updated for genders API changes in genders-1-1-9 * updated for whatsup API changes in whatsup-1-0-5 * tagged pdsh-1-8-4chaos 2003-03-12 Albert Chu <chu11@llnl.gov> * tagged pdsh-1-8-3chaos * updated for changes in whatsup-1-0-3 libnodeupdown API * updated for changes in genders-1-1-3 libgenders API * minor fix on "--help" output 2003-03-07 Albert Chu <chu11@llnl.gov> * tagged pdsh-1-8-2chaos * fixed logic bug with -i option. * fixed output from -V option 2003-02-28 Albert Chu <chu11@llnl.gov> * tagged pdsh-1-8-1chaos 2003-02-26 Albert Chu <chu11@llnl.gov> * Added linux support for -v option by using nodeupdown library to check for up and down nodes. * Upgraded read_genders() function to use genders C library * Made appropriate changes to configure.ac, manpage, etc. * Tagged pdsh-1-8-7noelan 2002-12-08 garilck * New release code for GPL. Updated DISCLAIMER, source file headers. * Ran through "indent --no-tabs -kr *.[ch]" and installed standard vi footers (except hostlist.[ch]) * Tagged pdsh-1-7-7noelan 2002-10-21 Jim Garlick <garlick1@llnl.gov> * Bulding version for ILX cluster with genders but no elan * Tagged pdsh-1-7-6noelan 2002-10-09 Jim Garlick <garlick1@llnl.gov> * Building non-chaos version for distro. * Tagged pdsh-1-7-6 2002-10-09 Jim Garlick <garlick1@llnl.gov> * Eliminate third fork in qswutil.c per Addy at Quadrics. * Tagged pdsh-1-7-6chaos 2002-10-02 Mark Grondona <grondona1@llnl.gov> * hostlist.c: properly handle deletion of unsuffixed hosts (pdsh/120) * opt.c: Abort when -x option given but hostlist_delete() returns 0 * Makefile.am, configure.ac: only need READLINE_LIBS for pdsh binary * Tagged pdsh-1-7-5chaos (sent this version to addy@quadrics.com) 2002-09-27 Jim Garlick <garlick1@llnl.gov> * Added support for readline in interactive mode if found. * Taggged pdsh-1-7-4chaos 2002-09-27 Mark Grondona <grondona1@llnl.gov> * Make-rpm.mk: Updated rpm target for compatibility with automake * pdsh.1.in, pdcp.1.in: Improve documentation of hostname range handling (gnat pdsh/97) 2002-09-26 Mark Grondona <grondona1@llnl.gov> * configure.ac: workaround autoconf-2.53 bug affecting improper expansion of path in AC_PATH_PROG macro (fix for pdsh/116) 2002-09-26 Jim Garlick <garlick1@llnl.gov> * Mark fixed pdsh/118 (bad usage of hostlist api) * Removed possibilty of string overflow in a couple places. * Taggged pdsh-1-7-3chaos (sent to LNXI for MCR) 2002-09-12 Jim Garlick <garlick1@llnl.gov> * Reordered ChangeLog in reverse chronological order. * Mark fixed Elan context number wrap-around bug. 2002-09-12 Jim Garlick <garlick1@llnl.gov> * Repair a file descriptor leak in rcp_thread (gnat pdsh/113) * More error reporting in qswutil.c, qcmd.c, qshd.c * Fixed bug in sending of long bitmaps. * Taggged pdsh-1-7-2chaos (sent to LNXI for MCR) 2002-09-03 Mark Grondona <grondona1@llnl.gov> * Automake-ified * Have `dshbak -c' generate bracketed ranges compatible with pdsh -w * Updated testsuite for compatibility with bracketed host ranges 2002-08-12 Jim Garlick <garlick1@llnl.gov> * Make all static "helper" functions underbar-prefixed. 2002-08-11 Jim Garlick <garlick1@llnl.gov> * If no genders, mpich machines, or SDR, allow configuration, but pdsh -a generates an error. * Fix SDR wcoll generation to use hostlist package. * Fixed --enable-debug option in configure.ac. * Removed range operator configurability altogether. * Enable "reckless hostrange expansion" (foo1-4 style ranges) for AIX 2002-08-10 Jim Garlick <garlick1@llnl.gov> * Broke TODO out of ChangeLog * Removed aborted attempt at QsNet cleanup (libqsw dir) * Added support for Mark's hostlist.[ch]. * Added COPYING and added GPL headers to source modules. * Removed code that deleted unreachable hosts from the target list in interactive mode. This didn't work because we fork for each round. Got rid of -c option which was used to disable this behavior. As this has not worked for a long time, probably won't be missed. * Handle arbitrarily large cap->Bitmap in qcmd/qshd protocol. * Taggged pdsh-1-7-1chaos 2002-08-10 addy@quadrics.com (via Jim Garlick) * Removed garlick's conditional support for new driver (addy's changes below are more complete) * ELAN_CAPABILITY has had the Generation element name changed. This change should be backwards compatible to older headers. * libelan now requires ELAN_CAP_TYPE_BROADCASTABLE to be always set as it supports segmented broadcast. * The elan3_create() code needed work to sync up with the new ioctl based device interface. * The xinet.d/qshell script was trying to use a service call 'xshell'. Changed to qshell to match the /etc/service entry. * Doing a 'service xinetd restart' seems to cause the daemon to die shortly after starting when done with pdsh or prun. I changed it to 'reload' inside the specfile which seems safer. 2002-07-22 Mark Grondona <grondona1@llnl.gov> (via Jim Garlick) * Support HAVE_WORKING_STRERROR_R || STRERROR_R_CHAR_P mail.gnu.org/pipermail/autoconf-patches/2001-October/007964.html 2002-06-20 akeane@quadrics.com (via Jim Garlick) * configure.ac fix to find pthreads on OSF/TRU64. * Taggged pdsh-1-6-4chaos. 2002-06-14 Jim Garlick <garlick1@llnl.gov> * Moved list_split_range to hostrange.c (now called range_split) 2002-06-03 Jim Garlick <garlick1@llnl.gov> * Fixed a bug in dshbak which did not properly compress multi-digit hostname suffixes. * Switch ChangeLog format. * Added a few test cases to deja-gnu. 2002-05-29 Jim Garlick <garlick1@llnl.gov> * Pdsh would sometimes block when cleaning up after a Ctrl-C. Change fcntl(efd, F_SETFD, O_NONBLOCK) to F_SETFL (xrcmd.c) Add fcntl call to k4cmd.c and qcmd.c. * Added include <qsw/types.h> to compile with RMS 2.73. Other API changes for new quadrics libs. * Temporarily disable --with-rms and PAM support in qshd * Taggged pdsh-1-6-3chaos. 2002-05-24 Jim Garlick <garlick1@llnl.gov> * Allow hostname ranges in WCOLL files. * Add -x option to exclude a list of hostnames from WCOLL. * Genders: -i option now selects canonical names. The default is to get what nodeattr -r gives you (alternate names, if any). * Tagged pdsh-1-6-2 * Released 1.6-2 to http://www.llnl.gov/icc/lc/pdsh.html * Chaos flag in spec file back on, tagged pdsh-1-6-2chaos 2002-04-11 Jim Garlick <garlick1@llnl.gov> * RMS: Get rid of -P and -N options and use RMS_RESOURCEID as set by the RMS 'allocate' command instead. * Change semantics of -n option: now it is tasks per node instead of total number of tasks. This is no longer a qshell specific argument, but unless qshell is used it must be == 1. 2002-02-09 Jim Garlick <garlick1@llnl.gov> * Misc cleanup of headers, function defs, README, and man pages. Run man pages through autoconf. * Test HAVE_WORKING_STRERROR_R before using strerror_r (pdsh-1.6 %m fails on AIX). * Added HAVE_MTSAFE_GETHOSTBYNAME and HAVE_MAGIC_RSHELL_CLEANUP in place of #ifdef _AIX. * Use socklen_t for accept() length argument and add a check in autoconf to default it to int if undefined. * Rcp code now handles short writes on socket. A short write would have corrupted the copied file, though this has never been reported. * Additional configure options: --with-fanout=N, --with-timeout=N, --with-rangeop=c. Removed -x and -X options since this is now configurable at compile time. * Print "timed out" message instead of "interrupted system call" if xrcmd/qcmd times out waiting for a response from the server (gnats:45). 2001-12-24 Jim Garlick <garlick1@llnl.gov> Mark Grondona <grondona1@llnl.gov> * Call htons on hard-coded port numbers before using (rcmd.c, k4cmd.c) * Renamed rcmd.c -> xrcmd.c, pipecmd.c -> sshcmd.c. * Add -Wall to CFLAGS and eliminate all warnings on Linux. * Updated to latest Chris Dunlap RPM Make target for Linux. * Support signal propagation via rsh backchannel (dsh.c, xrcmd.c). * Added hidden magic cookie and size integers to xmalloc buffers. Changed names to avoid conflict with dmalloc (now Strdup, Malloc, Free, Realloc). Delete size pointer from various functions that deal with resizeable strings. * Use memset instead of bzero. * Added qshell support for running Quadrics Elan3 jobs on Linux with -E option and qshd server (added qshd subpackage to RPM target). * Stderr socket now opened by default to enable proper remote cleanup after SIGINT, except on AIX where cleanup seems to work without the extra socket. Everywhere but AIX, the meaning of the -s option is now reversed. * Default fanout is 64 on systems where we don't open stderr by default, e.g. AIX, and 32 everywhere else. * Added support for expansion of hostname ranges passed through -w (e.g. -w host1-5 means run on host1,host2,...,host5) (Mark Grondona) * Added new options -x and -X for disabling hostname range expansion and defining new expansion operator, respectively. (Mark Grondona) * Added support for allocating the wcoll from an RMS partition. * Autoconfiscated. * Added a list of configured features to pdsh -V output. * Avoid non-portable gethostbyname_r call on non-AIX system by doing all DNS lookups before threads start up. * Configure --with-ssh configures pdsh to use ssh for all connections. Configure --with-krb4 configures pdsh to use krb4 for all connnections. The two configuration options cannot be specified together. In the absense of either, rsh is used (the preferred option). Got rid of -e, -R, and -k options for selecting these at runtime. Do not use rsh for non-root users if --with-krb4 specified. * Support ssh2's different option for batch mode. * If --with-machines=/path/to/machines is specified, use that for -a processing no matter what. In the absense of a machines file, if SDRGetObjects exists, use that; if nodeattr exists, use that. None of the above is a configure error. * Released 1.6 to http://www.llnl.gov/icc/lc/pdsh.html * Chaos flag in spec file back on, tagged pdsh-1-6-1chaos 2001-06-28 Jim Garlick <garlick1@llnl.gov> * Renamed spec file to pdsh.spec. Gzip installed man pages on Linux. * Moved path definitions to conf.h. Changed nodeattr path to /usr/bin. * Fixed handling of numerical ranges with multiple root names (dshbak) * Fix %S handling to avoid truncating dotted quads (err.c) * Rename pcp to pdcp - avoid conflict with SGI Performance Co-Pilot RPM. * Updated RPM rules for chaos release. * Released version 1.5 (linux only) 2001-04-25 Jim Garlick <garlick1@llnl.gov> * Added RPM spec file. * Fixed bug with opt_list dumping core on linux. * Added pdsh -V to display version (PDSH_VERSION in conf.h). * Changed wcoll logic on SP so pdsh -aiv drops nodes which have either switch_responds or host_responds false instead of falling back to the reliable_hostname. * Added wcoll hack to deal with changed SDR attributes for Colony switch * Released version 1.4 2000-07-14 Jim Garlick <garlick1@llnl.gov> * Activated POSIX mode for getopt() on linux. * Abort cleanly if working collective is empty. * Fixed bug in pcp option handling (core on empty source file list). * Added install rule for pcp link to Makefiles. * Added -d (debug) option to get verbose thread status on ^C, and connect/command time report at the end. * Use gethostbyname_r() on linux, but need mutex anyway for RH6.2. * Cleanup of rcmd selection code * -c option taken out of usage message due to lack of interest, though still supported for SP dsh compatibility. Took SP-isms i.e. "partitions" and "working collective" out of Usage message and other places. * Removed Makefile.sol and Makefile.aix42 (added commented out LIBS defs to Makefile for solaris and aix42) * Fix DSHPATH handling for csh users. * Reword man entry for -l to note that even root needs to be in .rhosts file of remote user. * Rework README. * Added dshbak perl script and manpage. * Added -S option to make pdsh return largest of remote return codes, or 254 if any of the rsh transactions fail. * Added pcp man page. * Added -e option and pipecmd.c to use ssh. * Convert bcopy, index, rindex -> memcpy, strchr, strrchr. * Verified working on the following platforms: Linux 2.2.14-5.0 i686, Linux 2.2.14 #5 SMP alpha, Linux 2.2.14-5.0smp sparc, AIX 3 4, OSF1 V4.0 alpha, SunOS 5.7 sun4u sparc SUNW,Ultra-Enterprise * Released version 1.3 2000-06-22 Jim Garlick <garlick1@llnl.gov> * -b option to cause single SIGINT to terminate pdsh (needed when pdsh is run from a script). * 1:1 feature in release 1.1 was actually #ifdefed out. * Call sigaction() instead of signal() to avoid old-style signal semantics. (Was avoiding on AIX by linking with -lbsd). Also, block SIGINT in all but main thread to be compatible with Linux pthreads, which seems to deliver that signal to all threads that don't block it. * Pcp functionality added. * Fixed DSHPATH. * Added genders support. * Released version 1.2. 1999-04-13 Jim Garlick <garlick1@llnl.gov> * Portability to linux, OSF1, AIX4.3.2, Solaris 2.5. * Request 1:1 mapping to kernel threads, if M:N available. * Kerberos IV off by default. * Released version 1.1 1998-09-04 Jim Garlick <garlick1@llnl.gov> * Initial release of version 1.0