Commit graph

28 commits

Author SHA1 Message Date
Aleksey Cheusov
97730d36d4 Update to 0.14.0
fixed: "paexec -z" without -s never worked.  Now it is fine.

  New options -g|--graph are synonyms for -s|--pos.

  New option -w for waiting for failed nodes if they ALL failed.
  By default (with -Z) if ALL nodes fail paexec exits with error.

  New option -m for setting alternative strings for
  success/failure/fatal.

  Target for installing directories has been renamed from
  install-dirs to installdirs.

  Other minor fixes and code clean-ups.
2010-01-03 11:34:44 +00:00
Aleksey Cheusov
0f552a0408 Remove unnecessary headers. This fixes paexec
under Interix-3.5 having no stdint.h.
2009-09-13 06:36:33 +00:00
Aleksey Cheusov
7168c2d1fd remove obsolete @dirrm 2009-08-10 19:35:34 +00:00
Aleksey Cheusov
f41fa3855b LICENSE=mit 2009-08-10 19:34:42 +00:00
Aleksey Cheusov
a5134aa591 One more file for REPLACE_SH (Solaris) 2009-05-30 18:29:51 +00:00
Aleksey Cheusov
fcd10686ae looks better 2009-05-15 05:55:01 +00:00
Aleksey Cheusov
86bbfe1b42 Experimental script 'paexec_reorder' is added. It converts "sliced" output
of 'paexec -lse' to normal order.
DEPENDS on latest runawk
++pkgrevision
2009-05-10 12:18:16 +00:00
Min Sik Kim
39542960de libmaa is in pkgsrc. 2009-03-12 00:58:00 +00:00
Aleksey Cheusov
ae779dd420 update to version 0.13.0
FIXED: When 'paexec -s' retreives 10000 tasks, it allocates
  10000*10000*sizeof(int) bytes for detecting cycles, i.e. ~400Mb on
  32-bit system or 800Mb on 64-bit system. This is absolutely
  inacceptable. This bad algorithm is replaced with new one which
  doesn't need quadratic matrix and works much faster.

  ADDED: -Z<timeout> option
     When I<-z> applied, if a I<command> fails, appropriate node is
     marked as broken and is excluded from the following task
     distribution. But if B<-Z> applied, every I<timeout> seconds an
     attempt to rerun a comand on a failed node is made. I<-Z> implies
     I<-z>. This option makes possible to organize clusters over
     unreliable networks/hardware.

  No EINTR wrappers anymore (iread, xread etc.). SIGCHLD and SIGALRM
  are blocked most of the time. They are unblocked before select(2)
  and blocked just after it. SA_RESTART is not used anymore.

  Minor clean-ups in Makefile.
2009-03-07 21:14:12 +00:00
Aleksey Cheusov
a4a29e5875 update to 0.12.1
FIX: support for -z appeared in paexec-0.12.0 was actually
  incomplete :-/ Now everything should be fixed. More regression
  tests.

  Makefile: adapted for FreeBSD make which doesn't support .PARSEDIR
2008-12-23 22:41:23 +00:00
Aleksey Cheusov
dbfc5b1946 update to 0.12.0
ADDED: -z option. If applied, read/write(2) operations from/to nodes
  becomes not critical. In case paexec has lost connection to the
  node, it will reassign failed task to another node and, if -s option
  applied, will output string "fatal" to stdout.  This makes paexec
  resistant to the I/O errors, as a result you can create paexec
  clusters even over network consisting of unreliable hosts
  (Internet?). Failed hosts are marked as such and will not be used
  during the current run of paexec. NOTE: "success", "failure" and
  "fatal" strings should be used to process the output of 'paexec -s'.

  select(2) do not listen stdin (fd=0) anymore. Blocking read(2) is
  used to read tasks from stdin.

  Makefile: CPPFLAGS -> CFLAGS, FreeBSD make Mk scripts
  don't use CPPFLAGS.
2008-12-22 20:19:35 +00:00
Aleksey Cheusov
c1c94b8fab update to 0.11.0
paexec -s: before beginning actual work an input tasks graph is
   checked for cycles. If they are detected, paexec exits with error.

   minor fix in man page
2008-10-31 20:37:41 +00:00
Aleksey Cheusov
cdc002de89 updated to 0.10.1
This version of paexec was sucessfully tested on the following
   platforms:
       NetBSD/x86
       NetBSD/Alpha(64bit)
       Linux/x86
       Linux/x86-64
       Interix-3.5/x86
       FreeBSD/x86
       Solaris-10/x86

   Minor fix for rhomb-like dependencies (paexec -s).
       Suppose A depends on (B1 and B2), (B1 and B2) depends on C.
       If C fails, earlier paexec versions produced
       the following output
                failure
                C B1 A B2 A
       That is, A was output twice. Now it is fixed and A
       is printed only once. New regression test for this.

   By default(!) getopt_long(3) is enabled on the following platforms
   (macro): __NetBSD__, __FreeBSD__, __OpenBSD__, __DragonFly__,
   __linux__ and __APPLE__.  On others only short options provided by
   getopt(3) are used. This means that long option may to not work.

   fix in manual page: accept(2) -> select(2)

   code clean-ups

   .sinclude removed from Makefile

   tests/test.sh:
     diff -U ---> standard diff -C10
     gawk appeared by mistake removed
2008-10-25 00:12:57 +00:00
Aleksey Cheusov
4e4d5382e7 REPLACE_AWK and REPLACE_SH for Solaris... 2008-10-24 21:04:05 +00:00
Aleksey Cheusov
5e9cb3c46a Under Solaris/HP-UX/Interix etc. paexec is built
without long options support
2008-10-24 20:42:21 +00:00
Aleksey Cheusov
58718d8e79 Now it compiled sucessfully under Interix
++pkgrevision
2008-09-24 20:15:23 +00:00
Aleksey Cheusov
ad482c15c4 mirror site added to MASTER_SITES
updated to version 0.10.0

   Lots of new regression tests

   README file: 'make test' is documented

   ADDED: -s option

       Partially ordered set of tasks are read from stdin.

       Instead of autonomous tasks, graph of the tasks is read from
       stdin.  In this mode every task can either FAIL or SUCCEED.  As
       always an empty line output by command means end of task.  The
       line before it shows an EXIT STATUS of the task.  The word
       "failure" means failure, "success" - success.
       See examples/1_div_x/1_div_X_cmd for the sample.  An input line
       (paexec's stdin) should contain either single task without
       spaces inside or two tasks separated by single space character,
       e.g.  task1<SPC>task2. task1<SPC>task2 line means that task1
       must be done before task2 and it is mandatory, that is if task1
       fail all dependent tasks (including task2) are also failed
       recursively.  Tasks having dependencies are started only after
       all dependencies are succeeded. When a task succeeds paexec
       outputs "success" word just before end_of_task marker (see -e
       or -E), otherwise "failure" word is output followed by a list
       of tasks failed because of it.

              Samples:

                tasks (examples/make_package/make_package_tasks file)

                  textproc/dictem
                  devel/autoconf wip/libmaa
                  devel/gmake wip/libmaa
                  wip/libmaa wip/dict-server
                  wip/libmaa wip/dict-client
                  devel/m4 wip/dict-server
                  devel/byacc wip/dict-server
                  devel/byacc wip/dict-client
                  devel/flex wip/dict-server
                  devel/flex wip/dict-client
                  devel/glib2
                  devel/libjudy

                command (examples/make_package/make_package_cmd__flex)

                  #!/usr/bin/awk -f
                  {
                     print $0 # print a package name

                     if ($0 == "devel/flex")
                        print "failure" # cannot build flex ;-)
                     else
                        print "success" # all other packages are ok

                     print ""       # end of task marker
                     fflush()
                  }

                output of "paexec -s -l -c make_package_cmd__flex -n +10 \
                           < make_package_tasks"

                  3 devel/autoconf
                  3 success
                  4 devel/gmake
                  4 success
                  7 devel/m4
                  7 success
                  8 devel/byacc
                  8 success
                  9 devel/flex
                  9 failure
                  9 devel/flex wip/dict-server wip/dict-client
                  10 devel/glib2
                  10 success
                  11 devel/libjudy
                  11 success
                  1 textproc/dictem
                  1 success
                  2 wip/libmaa
                  2 success
2008-09-05 09:53:13 +00:00
Aleksey Cheusov
5f2f5e485c updated to version 0.9.0
-t '' means "no transport". This significantly simplifies writing
   shell scripts with paexec. Added: tests for this case.

   paexec has no limited internal buffers anymore. All they are
   resized automatically as it is needed. PAEXEC_BUFSIZE environment
   variable sets an *initial* buffer size, not *maximum* one.

   README: notes about non-standard function getopt_long, and advice
   how to build paexec on platforms with no getopt_long support
   (JP-UX, Solaris etc.).

   More regressions tests

   paexec.1: minor corrections.

   'make test' fix: In case regression test fails, 'make test' exits
   with non-zero exit status.

   paexec can be built with ancient version pmake-1.45 (found in som
   Linux distributions).

   paexec -h|--help outputs messages to stderr - my new religion :-)
2008-06-15 13:37:15 +00:00
Aleksey Cheusov
b430d7a8b3 fixed: pkglint warnings 2008-06-08 19:19:39 +00:00
Aleksey Cheusov
a392c1beb6 try to use libnbcompat to build paexec on HP-UX, Solaris and others
(getopt_long is needed)
++pkgrevision
2008-06-05 20:46:54 +00:00
Aleksey Cheusov
67eb488bc8 fix for DESTDIR support (AUTO_MKDIRS=yes) 2008-04-16 12:13:42 +00:00
Aleksey Cheusov
389faa3b6e updated to the latest upstream release 0.8.0
NEWS:

       New options implemented: -E, -i and -I
       See manual page for details.

       Fixes and minor improvements in the documentation
2008-03-03 22:42:29 +00:00
Aleksey Cheusov
f608b8aeed updated to the latest upstream release 0.7.0
NEWS:

   new -e|--eot option implemented.
   It prints the end-of-task marker (an empty line) to stdout.
   See manual page.

   WARNS=4 to see compilation warnings.
   several gcc warnings fixed.

   fixed: '-n +0' and '-n ""' now fails with error message.

   minor fix in man page

   minor clean-ups
2008-02-28 19:06:09 +00:00
Aleksey Cheusov
6b00eb684c TEST_TARGET is added 2008-02-17 19:44:26 +00:00
Tobias Nygren
ed892d8f1e Revert my previous change. 2008-02-10 17:37:25 +00:00
Tobias Nygren
93805e720e Needs GNU nroff to generate catpages. 2008-02-07 13:48:35 +00:00
Aleksey Cheusov
0af8d4a9a9 USE_BSD_MAKEFILE=yes 2008-02-05 10:13:08 +00:00
Aleksey Cheusov
8f0dab69e6 paexec distributes performing the given tasks across several CPUs or
machines on a network and collects the results from those
CPUs/machines.
2008-01-24 20:54:19 +00:00