Release Notes JSOC V8.7 19FEB2015 ----------------------- --------- A release is a set of binary and text files, each having a specific version. The release itself is also versioned to facilitate the identification of the release. For example, release 1.3 may contain fileA#1.8, fileB#1.2, and fileC#2.2 and release 1.4 may contain fileA#2.5, fileB#2.1, and fileC#2.9. JSOC releases are similarly versioned and contain a set of such files. JSOC release code is guaranteed to compile on cluster nodes (e.g., n04 and solar3). At the time of the creation of the release, the versions of each file will be very recent - most will be the "head" versions. The set of files is stable. They have been tested and verified to work properly on the supported systems. As time passes, newer versions of files will be committed to the code repository and there is no guarantee that these changes will not destabilize JSOC (i.e., they may cause JSOC to no longer compile or execute properly). There are several ways to use this release. If you wish to simply use pre-built binaries, you can use the production binaries, which are located at /home/jsoc/cvs/Development/JSOC (The release binaries are actually in /home/jsoc/cvs/JSOC, but as our production code changes more quickly than releases are generated, we put critical fixes in the "Development" tree. To be sure you use code that has been built with these critical fixes, you'll need to use the "Development" tree. As time passes our production code will stabilize. When that happens, you should use /home/jsoc/cvs/JSOC. But for now, you should use the "Development" tree.). Every time a release is created, the binaries in this location get updated by the jsoc user. To use these binaries, you can run them directly, "/home/jsoc/cvs/JSOC/Development/bin/linux_x86_64/show_info -j hmi.M_45s", for example. Or you can put /home/jsoc/cvs/JSOC/Development/bin/linux_x86_64 in your path environment variable. If instead you want to work with stable source files, then you must have a local copy (e.g., in your home directory) of the source code in the CVS code repository. You must "build" or "make" the code this local code before it can be used. You will want to work with a local copy if you plan on making changes to the repository files (i.e., you plan on doing development). Changes you make to your local copy are not visible to other users until you commit those changes back to the CVS repository. Obtaining the Release --------------------- To update your working directory to this release, or to check-out this release anew, please visit http://jsoc.stanford.edu/jsocwiki/CvsInit (please see the section entitled Update Your Existing Working Directory ("Sandbox")). Please keep in mind that users may have modified files since the release was created, so use of the scripts documented in the web page may result in a working directory whose content is not identical to the release. Additional Info --------------- Use the Apache CVS gui to see diffs between file revisions. For example, go to http://jsoc2.stanford.edu/cvs/JSOC/base/drms/ and click on the name in the File column and then click on "diffs to previous #" to see the diffs. Changes since previous release (V8.6 - September 26, 2014) ---------------------------------------------------------- NEW FEATURES: - Upgraded Remote SUMS so that it works in a multi-client environment. The arbitrary limit of a small payload has also been removed. - Added the "pass-thru" export feature. This allows users of the public export system to view and export specified (whitelisted) internal series. - Ensure that the compression status of files exported doesn't change during the export process (we no longer support the decompression of files on export). - Cache online exports for one day. If a user attempts to export a set of files that has already been exported that day, then the user receives a path to the already exported set of files. No new files are generated. - A valid email address is required when performing exports now. A web page for registering email addresses has been created. - Added a -q flag to show_series for the pass-thru export feature. This flag supresses all extraneous output. DEFECTS FIXED: - Fixed redundant definition of localizable parameters DLTIMEOUT and SUMS_MANAGER_UID. - Code checking for the production user was sometimes looking in the wrong database. This has been fixed. - An infinite loop triggered by unusual input was found and fixed. - Fixed a bug where the DRMS module argument -L was causing modules to hang. - Restored the flushing of stderr and stdout that had accidentally been removed when the session-log optimization code was implemented. - When the retention is being set to zero, SUs are no longer brought online if they were already offline. - By default, the segment name is used as the file name when a generic segment is exported (before the fix an empty string had been used). - Remove double forward slashes from the export code that was generating export URLs (paths to the exported files). The double slashes were a problem for curl and wget when they were used in a directory-descending mode. - The export request time in jsoc.export had been the missing TIME value. This has been fixed. - Restore export logging - it was accidentally removed during a previous bug fix. - Fixed about a dozen bugs having to do with DRMS links. The main problem is confusion over which record is needed - the source record or the target record. In one instance, a flag -l was added to jsoc_info to force the "following of links" when segments are linked (using the target record's segment). - Two lexically scoped variables with the same name were found in a Perl module (and this is not allowed in Perl). - Do not terminate if a bad SUNUM is encountered by set_suretention. Generate a warning and continue. - Restored the missing "**_NO_sudir_**" string in show_info. - Finalized changes to jsoc_rebin and jsoc_resize so that all export processing code handles record-set specifications that specify more than one segment. KNOWN BUGS: - The "pass-thru" feature broke show_series such that if a user runs a pre-8.7 version of create_series, delete_series, or publish.pl (the script that is used for publishing series), then the list of series displayed in lookdata.html or show_series may be missing series that should be in the list, or it may have additional series in the list that should not be there. - The "pass-thru" feature was improperly implemented. The feature is not accessible via the export CGIs, but it should have been. This is being fixed and will be available in the next release. RINGS AND TIME-DISTANCE: Modified Makefile in proj/rings/apps to not override platform-dependent definition of FC (Fortran compiler); modified Make rule for rdfitf to support avx loader Modifications to Makefile in proj/timed/apps to add openmp option and remove libguide The following ring-diagram pipeline modules and scripts were updated (proj/rings): apps/datavg,mtrack moved certain locally defined functions to common include file apps/maproj added detail for failures when geometry keywords missing; added option for copying of selected keywords from input to output; made clat and clon optional arguments, with default being centering at image center coordinates (or just the unspecified coordinate) of first image; implemented option for centering maps at center of each image; added setting of DATE (same as Created); added option for converting scalar values assuming that they are the line-of-sight components of radial vectors; added optional string argument RequestID; changed copykeys to avoid copying implicit indexing keys; added setting of optional keywords LoS2Rad and MDICorr depending on flag values scripts/avg120 added T_OBS to avgkeys list (not clear why it became necessary); fixed bug in MZERO parameter spec; fixed HOSTID determination for non-standard (or non-existent) domain names scripts/avgpsbycr fixed HOSTID determination for non-standard (or non-existent) domain names scripts/rdday minor fix to test scratch directory naming; removed unreachable branch; added test options for different queue and qsub command; patched hostid for non-standard domain names scripts/runrdsyn fixed bug skipping sleep during CR rollover; fixed HOSTID determination for non-standard (or non-existent) domain names; added test options for different queue and qsub command The following time-distance pipeline scripts were updated (proj/timed): scripts/runtdsynop,tdsynop new standardized interpretation of tmp file location; added standard one-day gatekeeper watch fixed HOSTID determination for non-standard (or non-existent) domain names; scripts/tdsynop minor change to test scratch directory naming