[padb] r359 committed - Update the release nodes to be current....

padb at googlecode.com padb at googlecode.com
Thu Dec 10 13:02:07 GMT 2009


Revision: 359
Author: apittman
Date: Thu Dec 10 05:01:38 2009
Log: Update the release nodes to be current.
Also add a --debug-file option to, surprisingly, send debug output to
a file.

http://code.google.com/p/padb/source/detail?r=359

Modified:
  /trunk/src/padb

=======================================
--- /trunk/src/padb	Wed Dec  9 13:14:36 2009
+++ /trunk/src/padb	Thu Dec 10 05:01:38 2009
@@ -30,9 +30,15 @@

  # Version 3.?
  #  * Support of PBS Pro
-#  * Add variables to tree based stack traces.
+#  * Support for OpenMPI jobs run by mpirun under a slurm allocation.
+#  * Modify the Slurm resouce manager code to automatically select a
+#    step_id based on what's running on the system currently.
+#  * Modify the mpd resource manager code to only call mpdlistjobs on
+#    the front-end, it provides all the information we need so record
+#    this and send it over the network to the inner processes.
  #  * Solaris port.  Limited functionality compared to running on Linux
  #    however stack trace mode works fully.
+#  * Add variables to tree based stack traces.
  #  * Add "mpirun" as a resource manager, this causes it walk the local
  #    process list looking for processes called mpirun and to get the
  #    pid and hostlist by reading data from Mpir_Proctable as specified
@@ -43,6 +49,7 @@
  #    reduction operations by name.
  #  * Add a --lstopo option to run the lstopo command for each rank.
  #    http://www.open-mpi.org/projects/hwloc/
+#  * Add a 'command' mode to run abritary commands on the target node.
  #  * Enhance the integration with gdb, use sequence numbers when
  #    talking to gdb and check that we get back what we give it.
  #    Correctly notice and raise an appropriate error if gdb dies
@@ -64,6 +71,26 @@
  #    automatically
  #  * Add SVN tags to the source file and the the revision id to the
  #    output of output of --version
+#  * Make proc-format report data for the first thread in a process
+#    rather than a random one.
+#  * Add support for the proposed new standard for finding the Message
+#    queue plugin in MPI programs.
+#  * Have padb handle attaching to programs rather than having the mode
+#    callback handle it.  This means that persistent attachments can
+#    be used in full-report mode.
+#  * Speed up attaching gdb to the target job greatly by attaching to
+#    all target processes on a not simultanously rather than one at
+#    a time.
+#  * Better handling of jobs that dissapear whilst we are monitoring them,
+#    there should be no perl errors shown if this happens.
+#  * Detect where padb is being run from and specify the full path to the
+#    inner processes.  This helps with resource managers which don't
+#    preserve $PWD and padb isn't on $PATH
+#  * Add proper two-pass argunment handling, secondary options are only
+#    accepted if the mode they are relevent to is selected.
+#  * Widespread code cleanups to conform with stricter coding standards.
+#  * Enable type checking of command line options, all boolean flags can be
+#    set yes|no|1|0|true|false now.
  #
  # Version 3.0
  #  * Full-duplex communication between inner and outer processes, padb no
@@ -677,7 +704,10 @@
  -t --tree              Use tree based output for stack traces.
  -i --input-file=FILE   Read input from file.

-   --watch
+   --watch
+
+   --debug=<mode>,<mode1>  Enable debug for mode, use mode=all for all  
debugging.
+   --debug-file=file   Log debug information to file.

  -O [opt1=val,<opt2=val>] Set internal config options for padb, advanced  
use only.
    Options in this version (these are liable to change)
@@ -798,6 +828,22 @@
  # the ref as well.  Enable with --debug=type1,type2=all
  my %debug_modes;
  my $start_time = time;
+my $debug_fd;
+
+sub set_debug_file {
+    my ($filename) = @_;
+
+    if ( defined $filename ) {
+        if ( not open $debug_fd, '>', $filename ) {
+            print "Unable to open log file for writing: $!\n";
+            $debug_fd = *STDOUT;
+        }
+    } else {
+        $debug_fd = *STDOUT;
+    }
+
+    return;
+}

  sub debug_log {
      my ( $type, $handle, $str, @params ) = @_;
@@ -807,10 +853,10 @@
      }
      return unless $debug_modes{$type};
      my $time = time - $start_time;
-    printf "DEBUG ($type): %3d: $str\n", $time, @params;
+    printf {$debug_fd} "DEBUG ($type): %3d: $str\n", $time, @params;
      return if $debug_modes{$type} eq 'basic';
      return unless defined $handle;
-    print Data::Dumper->Dump( [$handle], [$type] );
+    print {$debug_fd} Data::Dumper->Dump( [$handle], [$type] );
      return;
  }

@@ -930,6 +976,7 @@

      Getopt::Long::Configure( 'bundling', 'pass_through' );
      my $debugflag;
+    my $debugfile;

      my @ranks;

@@ -957,6 +1004,7 @@
          'norc'                => \$norc,
          'config-file=s'       => \$configfile,
          'debug=s'             => \$debugflag,
+        'debug-file=s'        => \$debugfile,
          'create-secret-file'  => \$create_secret,
      );

@@ -973,6 +1021,8 @@
      # options which might be bundled with it.
      GetOptions(%optionhash);

+    set_debug_file($debugfile);
+
      Getopt::Long::Configure( 'default', 'bundling' );

      my $mode;
@@ -4491,7 +4541,9 @@

  # rng_user_verify()
  # is_value_in_range()
-# nvalues_in_range()
+# nvalues_in_range()  - Return the number of values in a range.
+# rng_min()           - Return the minimum value in a range.
+# rng_common()        - Take two ranges and return the common values.
  # rng_find_missing()
  #   Take two ranges and return all that are in the first but not in the
  #   second. (see check_signon).




More information about the padb-devel mailing list