SHA / SSSC Processing Modules

The links below provide samples of the functioning of a CGI-based driver for SHA/SSSC strategy modules. The sample modules are mostly versions of public and private ones already written, taken from ~CM/src/modules, ~CM/src/examples, and ~rick/src. The only changes made specifically in support of the web-browser driver are the additions of comments in the formerly-unused string field for arg->maxvalid in the arguments lists (see SSTR 62). Modules from ~CM/src/modules are in fact compiled directly from links to the production sources.

All features of the driver should be active, but please see the notes below!

Test & Sample Modules

N.B. Modules marked * are not yet implemented in this system; those marked ** have pages, but do not work properly Most work on an SGI Server


(from ~rick/src): does nothing at all; a simplified version of module noop with only an input argument; useful for staging data


(from ~rick/src): just echoes the argument values as received by the module, with all supported argument types; an extended version of module noop

fastrack *

(from ~CM/modules): RTFM


(from ~rick/src): list values of header records from online rdb files (based on module ptplot).


(from ~rick/src): print out selected records from an obslog.


(from ~rick/src/obsel): skeletons and prototypes of functions to do queries based on obslog entries.

varbpp *

(from ~rick/src): adjust the number of bits per pixel in a data set.

Known Bugs and Limitations

  1. All processes started by the httpd run as network user nobody (UID 60001) with corresponding access permissions and umask (usually 022); files can only be created in directories to which this UID has write permission, and will be owned by nobody. There is no default directory for this UID, so path names must be rooted.
  2. If no pvmd is running for user nobody at the time a pe is started, the command goes into an endless wait state and has to be stopped from the browser. Once it is stopped the pvm will be running and the request can be reposted.
  3. The host machine option does not function properly; it is impossible for the network user to connect with a pvm daemon on a remote machine. Thus, all pe's most be run locally (the default).
  4. Archiving to the DSDS is not currently possible because write permission to the /PDS partitions requires membership in group soi, and nobody is not a member of that group. (That is correct English.)
  5. No output or notification page is seen until the process has completed.
  6. There appears to be a timeout issue and pages may not be updated on pe completion if there is along wait, e.g. for data staging
  7. Until the bug reported in SSTR 62 is fixed, modules with long (65 char+) argument descriptions in the arg->maxvalid field cannot be run in the pe.
  8. Arguments of type ARG_FLAG are binary-valued (0 or -1), rather than ternary-valued (0, ±1) as in the command-line interface..
  9. Arguments of type ARG_NUME without a supplied default value will default to the first element in the list, as a consequence of the way the web form is generated.
  10. pe's can't open the pe kill log file.
  11. The ARG_FILEPTR type for arguments, which is deprecated, is not supported.
  12. The default names for the history and errlog files are pecgi_history and pecgi_logfile respectively; these go into the output dataset if one is created by a pe. The defaults can of course be overridden.
  13. The current working directory for executing modules (not pe's) is the cgi-bin directory of the host machine; modules that specify . or `pwd` as the path for files will probably not be able to find or create those files.
  14. On the bright side, the CGI interface fixes a minor bug in the command line interface, that the decision not to pass a default argument value string such as "Not Specified" to the mapfile is case sensitive.