FAQ last updated on: 3/11/09
[Return to questions-only view]


Changes

Q: What has changed from version 1.12.0 to 1.12.1
Q: What has changed from version 1.10.0 to 1.12.0
Q: What has changed from version 1.9.0 to 1.10.0
Q: What has changed from version 1.8.0 to 1.9.0
Q: What has changed from version 1.7.1 to 1.8.0
Q: What has changed from version 1.7.0 to 1.7.1
Q: What has changed from version 1.6.0 to 1.7.0
Q: What has changed from version 1.5.1 to 1.6.0
Q: What has changed from version 1.5.0 to 1.5.1
Q: What has changed from version 1.4.0 to 1.5.0
Q: What has changed from version 1.3.0 to 1.4.0
Q: What has changed from version 1.2.0 to 1.3.0
Q: What has changed from version 1.1.0 to 1.2.0
Q: What has changed from version 1.0.0 to 1.1.0
Q: What has changed from version 0.9.0 to 1.0.0

Integrated Test Results

Q: What are the current results of system testing
Q: What were the test results for ldas-1.3.0

Configuration issues

Q: I cannot build lal version test-2004-02-23 with /ldcg for LDAS 1.4.0
Q: (Version 1.0.0 ) I have N nodes in my nodes list but I cannot use all the nodes.

Documentation corrections

User Jobs

Q: How do I send an empty string as a parameter in a user request that is is encapsulated by double quotes?
Q: I want to pass the results of -dbspectrum to my DSO, but no object with the proper name is available to my DSO.
Q: When using multiple frame queries in my job, I get unexpected failures.
Q: When generating frame output from the datacondAPI I either get the eror message saying "Inserting non-unique key:" or the channel names are different than what I specified in the output statements.

diskcacheAPI

Q: In 0.9.0, my frame query worked just fine, but in 1.0.0 it fails

Database

Q: Why are there many messages about the "database disk usage low"?

Frames (General)

Q: Is there any incorrect data in version 4 frames?

cmonClient

Q: cmonClient "View Database" page sometimes does not return a graph when selecting a table with a large number of rows (version 1.1.0)
Q: cmonClient reports no logs found when there are log files present.
Q: cmonClient database view takes a long time.
Q: cmonClient cache view requires a password

eventmonAPI:

Q: eventmonAPI sometimes generate email for invalid element especially when running dataPipelines with -metadataapi tee option. (PR# 2173)
Q: eventmonAPI reports bgerror via email eventmon::defunctJobs: can't read "::eventmon::sendElementList": no such variable

Wrapper

Q: LDAS is unable to successfully run lamboot
Q: My DSO cannot find the name of an object that was sent from the datacondAPI.
Q: How can I attach a debugger to a standalone wrapper








Changes

Q: What has changed from version 1.12.0 to 1.12.1
A:

Feature Summary

The 1.12.1 release of LDAS was tagged in CVS on March 10, 2009. This release focused on fixing framecpp utilities to work on version 8 frame files. This includes both framecpp_dump_toc and framecpp_query.

Problem Report Summary



    [Back to the TOP]    


Q: What has changed from version 1.10.0 to 1.12.0
A:

Feature Summary

The 1.12.0 release of LDAS was tagged in CVS on February 27, 2009. This release focused on supporting the version 8 frame specification. This resulted in a major rewrite of the internals of FrameCPP with only minor modifications to the interface.

Problem Report Summary



    [Back to the TOP]    


Q: What has changed from version 1.9.0 to 1.10.0
A:

Feature Summary

The 1.10.0 release of LDAS was tagged in CVS on July 19, 2007. This release focused on a rewrite of frameCPP to unify implementation of all versions of the frame specification and some improvements to the diskcacheAPI to enhance its tolerence of system related issues.

The use of TCL's exec function to spawn a process and obtain its output has been greatly reduced. This enhances the performance for APIs that use threads.

Most of the system tests are now controlled by a single automated script and the support files for the tests are now distributed with the release of the software.

Support for CentOS 5.2 has superceeded support for Fedora Core 4.

Summary by API

Disk Cache API

Detection of modified mount points has been enhanced with the introduction of using statvfs to detect if any changes on a file system have occurred.

The staging of SAM-QFS files have been moded the the frameAPI.

Frame API

Several calls have been threaded resulting in the frameAPI being more responsive.

Staging of data now happens in the frameAPI where it can detect the file system type and use the SAM-QFS API. This eliminates the spawning of a process and only makes staging request for file systems that support it.

frameCPP

The core of the library was rewritten to enhance code reusability in preperation for supporting the version eight frame specification. Support for version five frames has been dropped.

Problem Report Summary



    [Back to the TOP]    


Q: What has changed from version 1.8.0 to 1.9.0
A:

Feature Summary

The 1.9.0 release of LDAS was tagged in CVS on July 19, 2007. This release focused on upgrading the version of Tcl/Tk to 8.4.x, GCC to 4.1.1, compiling code for 64 bit architecture, enhancing the diskcacheAPI, and stabilizing certificate authentication.

Summary by API

Data Conditioning API

The exception specification has been removed. This allows user's of the API to have greater visibility into problems with their algorithm section.

Disk Cache API

The diskcacheAPI has received considerable attention. It is now possible for the API to continue servicing requests when an NFS directory is hung. The scan on the directory is resumed once the NFS server responds. Until the time when the NFS server responds, the mount point is removed from the list of mount points. Queries will return a second, possibly slower, location for requested frame files that were origionally serviced by the NFS mount point.

Many of the tcl calls have been made to run in the background to allow for a communications between the diskcacheAPI and the managerAPI to be more responsive. Also, most calls which required spawning a new tclsh in which to run a shell command have been replace.

Frame API

Corrections have been made so ::DEVICE_IO_CONFIGURATION now can be used with file system types.

Also, FrVerify was modified to work with Virgo frame files.

frameCPP

All compression modes which are part of the version 6 frame specification are now supported.

The new compression mode ZERO_SUPPRESS_OTEHRWISE_GZIP has been added. It currently does ZERO_SUPPRESS on two and four byte objects and GZIP for all other data types.

LDCG Software upgrades

Many of the third party software packages were upgraded.

The most significant are:

  • GCC 4.1.1
  • Tcl/Tk 8.4.15

Other changes

LDAS has been ported to opteron running Solaris 10, opteron running Fedora Core 4, and sparc v9 (64bit) running Solaris 10.

The database engine has been upgraded to IBM DB2 version 8.2.7.

Problem Report Summary



    [Back to the TOP]    


Q: What has changed from version 1.7.1 to 1.8.0
A:

Feature Summary

The 1.8.0 release of LDAS was tagged in CVS on October 27, 2005. The major focus for this release was porting the code to Solaris 10 and Fedora Core 4 and to get LDAS certificate aware. The certificate authentication has been incorperated into the manager, cmonserver and cmonClient. Other client software will need to be enhance to utalize certificates.

Summary by API

Control and Monitor

The "Test All User" command which previously failed for sites lho, llo, and mit has been corrected. Users can now authenticate using x509 certificates when using a x509 compliant version of cmonClient.

managerAPI

The managerAPI has been enhanced to authenticate using x509 certificates.

metadataAPI

The version of DB2 being used has been upgraded to 8.2.2

Resource file changes

  • E-mail broadcasting of messags from the tandem systems has been disabled.

LDCG Software upgrades

Nineteen third party software packages were upgraded.

The current upgraded packages and thier current release number are: curl 7.14.1, octave 2.1.71, apache 2.0.55, tkcvs 7.2.4, rsync 2.6.6, tclglobus 0.3.0, libpcap 0.9.3, lft 2.5, emacs 21.4, gnuplot 4.0.0, gnats 4.0.1, XML::Parser 2.34, cvsgraph 1.5.0, lsof 4.77B, wget 1.10.2, openssl 0.9.8a, gnupg 1.4.2, fltk 1.1.6, and xdiskusage 1.48.1.

The following packages have been removed from /ldcg: acroread, less, firefox, fvwm, xemacs in favor of system supplied variations or lack of use.

Other changes

LDAS has been ported to Fedora Core 4 and to Solaris 10.

Problem Report Summary



    [Back to the TOP]    


Q: What has changed from version 1.7.0 to 1.7.1
A:

Feature Summary

The 1.7.1 release of LDAS was tagged in CVS on August 4, 2005. This version was narrowly focused on two issues. The first was on "zombie" threads seen in the datacondAPI. The second was the "All User Command" submitting jobs as mlei. Each of these issues have been addressed in this release along with a compilation issue of frameCPP when not using the STLport library. Also, the installation documentation has been modified to descibe using the lam RPM for Fedora Core 3 instead of needing to build from source for Fedora Core 3.

Summary by API

Control and Monitor

The all user command now runs as the login user of the cmonClient.

frameCPP

The file src/Common/MD5Sum.hh now includes <stdexcept> which prevents a compilation issue seen when not compiling with the STLport library.

genericAPI

A race condition in setting a thread's state was fixed by use of a mutes. This prevents zombies for the state will never be reverted to a prior state.

Problem Report Summary



    [Back to the TOP]    


Q: What has changed from version 1.6.0 to 1.7.0
A:

Feature Summary

The 1.7.0 release of LDAS was tagged in CVS on July 21, 2005. This version was aimed at bug fixes needed for astrowatch. The performance of validating frame files in the frameCPP library was enhanced by the removal of an unused md5sum calculation.

The diskcacheAPI has been made more robust against unmounting and remounting of file systems containing cached frame file metadata.

The createRDS command has a new option, -metadatacheck, which enables/disables checking of a frame's metadata before extracting data.

Summary by API

Control and Monitor

The "all user commands" command in cmonClient has the ability to select the frequency at which the page is refreshed. The default is after each command. Color has been added to the output to visually distinguish between commands that pass verses those that fail.

Multi-line resource variables now can be properly updated used cmonClient.

Datacond API

Some objects leaked have been cleaned.

Disk Cache API

The diskcacheAPI is now robust against unmounting files systems containing mount point entries. An error message is reported and the directory is left in a state which allows it to be scanned once the file system is remounted.

Code was added to protect the TCL layer from messages containing unbalanced curly brackets.

Distribution

An error that prevented building of the standalone wrapper api using configure, make, make install has been resolved.

Frame API

A new option, --metadatacheck, has been added to the createRDS command to validate certain key pieces of metadata. This is a bool option. When true, the extended checking is performed. When false, the extended checking is not performed.

Generating RDS from input files containing only FrProcData no longer causes a core dump.

The metadata contained in the FrProcData header is reconciled with the underlying FrVect before being returned.

Performance for verifying frame files was enhanced by removing the calculation of an unused md5sum value.

System Testing

A new test for testing the speed of converting frame data to an ilwd has been added.

User API

runLDAS, ldas-ps and ldas-kill have been enhanced to better handle ssh-agents that have been started but have no entries (possibly due to a failed attempt at entering the passphrase).

ldas-kill also has been enhanced to kill processes on the nodes without being prompted.

Resource file changes

  • E-mail broadcasting of messags from the tandem systems has been disabled.
  • Al Wilson has been removed from all e-mail broadcasts.
LDAScntlmon.rsc
;## desc=clean  up  database  and  RDS  before running cmonClient  tests
set ::TEST_CLEANUP /ldas/bin/test_cleanup.tcl

;## desc=block sending of emails, e.g. on tandems
set ::BLOCK_SEND_MAIL 0

LDASdatacond.rsc
;## desc=emit possibly helpful debugging messages if set to '1'
set ::DEBUG_DEFUNCT_JOB_REAPER 0

LDASdframe.rsc
;## desc=should we do metadata sanity checking of frame files?
set ::FRAMEMETADATACHECK_FLAG 1

LDASmanager.rsc
;## desc=notification list for defunct job garbage collection
set ::LIVE_JOB_PUSH_API_LIST [ list frame eventmon datacond ]

LDCG Software upgrades

Seven third party software packages were upgraded.

The current upgraded packages and thier current rlease number are: rsync 2.6.5, wget 1.10, openssl 0.9.8, FrameL 6r19, firefox 1.0.5, lftp 3.2.1, and apache 2.0.54

Other changes

Started migration to Solaris 10 by cleaning up uses of ERR. In Solaris 10, this is a macro which gets expanded. In LDAS, it was used as a namespace.

Problem Report Summary



    [Back to the TOP]    


Q: What has changed from version 1.5.1 to 1.6.0
A:

Feature Summary

The 1.6.0 release of LDAS was tagged in CVS on May 23, 2005. This version added the ability to generate md5sums for each output RDS frame file which is logged to a file for use in data movement between systems over the network. The default compression level for RDS output frames was changed from 6 (six) to 1 (one) for performance reasons. The support for GEO frames was improved in the RDS generation command. The FrVerify utility was enhanced to verify metadata in the frame file against the name of the frame file. The database server was upgraded from DB2 8.1.5 to DB2 8.2.1. This is the first of two releases requested by DASWG in preparation of the astrowatch dry run testing of LIGO software prior to the S5 Science Run.

Summary by API

Control and Monitor

Under the "Test LDAS" tab, a new test has been added. It is the first tab on the page and will execute all the other tests giving a summary of execution status at completion of the final test.

The E11 and S4 time ranges have been added to the time widget.

The way to modify resource variables via cmonClient has been greatly modified. With the new interface, the variables can be sorted by clicking the column heading. Also, resource can be added and deleted via the new interface.

Frame API

The FrameCPP library has been enhanced in several ways. First, it will add a FrHistory structure for any frame it writes.

The FrVerify program has been enhanced to verify the metadata presented in the frame file name against the associated values in the frame file. FrVerify will also display the checksum values (calculated verses read) when a discrepency is found.

Much work has been done to support merging of GEO frames. Unfortunately not all work needed for this has been completed. The createRDS command can now support multiple type fields in its query.

The createRDS command now generates a file of md5sum values. This allows for integrity checking when files are moved.

The default compression level has been changed from 6 to 1 for performance reasons. Also, all commands that allow for frame generation now support compression of the frame data.

diskcachAPI

The resource variable ::CHECK_FOR_MOUNT_PT_CONFLICT has been added to all bypassing of the check for mount point conflicts.

Build process

Using the build-ldas script no longer requires a tested version of gcc to be used. The option flag -warn-unsupported-compiler has been added to allow the use of untested version of gcc.

The build process has been enhanced to properly use the TEXINPUTS environment variable by ignoring if it is set in the user's environment and only use the value defined in the Makefile.

System Testing

System testing has been enhanced by changing all nightly tests to use dataStandAlone command. This allows testing of LDAS without any use of the mpiAPI or wrapperAPI.

Resource file changes

cmonClient
added resource var to exclude old versions from add/delete resource

;## desc=version below which does not support add resource
set ::RESOURCE_VERSION 1.5.70

added resource to control the number of backup copies of resource files
when changes are made via cmonClient
;## desc=max number of bak files for resource changes
set ::RESOURCE_BAK_LEVEL 5

metadataAPI
deleted obsolete resources

set ::DEFAULTMAIL mailto:$::env(LOGNLOGNAME)@ligo.caltech.edu 
;##desc=default job output directory, mod=no 
set ::DEFAULTFILE file:/ 
;## desc=statementbinding, mod=no  
set ::BIND_COUNT 0  
;## desc=loop testing, mod=no  
set ::LOOPTEST 0
;## desc=required variables, mod=no    
lappend ::REQUIRED_VARIABLES DEFAULTMAIL DEFAULTFILE

managerAPI
rearrange some vars so they are not viewable via cmonClient

;## THIS SECTION IS NOT VIEWABLE VIA CMONCLIENT
    
;## initializes queue names - do not modify this!!  
array set ::QUEUE [ list USERS {} COMMAND {} ]
    
;## checks to see if somebody modified the previous line and broke things
lappend ::REQUIRED_VARIABLES QUEUE(USERS)
    
;## name of file that maintains sequence counts between restarts - do not modify!
set ::KEYFILE [ file join seqKEYS ]
    
LD_ASSUME_KERNEL no longer specifies a legacy kernel model
;## desc=env ! mod=no
set ::EXTRA_ENV "LD_PRELOAD=\$libmalloc\$libstdc LD_ASSUME_KERNEL="

LDASapi.rsc
Corrected the case for metaserver part of variable name
;## desc=number of milliseconds defining a ping timeout for specific host
set ::PING_TIME_PANIC_LIMIT_MS_metaserver 2000
added resource to control the number of backup copies of resource files
when changes are made via cmonClient

set ::RESOURCE_BAK_LEVEL 5

LDASmpi.rsc
add the following to specify shell to use to log into nodes
;## desc=use this rsh base command (might need to use ssh).
set ::MPI_RSH_COMMAND /usr/bin/rsh

diskcacheAPI
;## The ::CHECK_FOR_MOUNT_PT_CONFLICT was added initially as a diagnostic
;## tool for PR2753. The conclusion is that looking up of duplicates is
;## not the source of the observed slow down. The default value of 1
;## should be used used unless experimenting with system performance.
;## desc=1 if system should check for mount point conflicts, 0 otherwise
set ::CHECK_FOR_MOUNT_PT_CONFLICT 1

LDCG Software upgrades

Nine third party software packages were upgraded.

The current upgraded packages and thier current rlease number are: cvs 1.11.20, firefox 1.0.4, rsync 2.6.4, lftp 3.1.1, top 3.5.1, FrameL 6.18, ganglia 2.5.7, apache 2.0.53, and tkcvs 7.2. Mozilla has been dropped as a package built as part of the LDCG Software repository.

Other changes

A download link, Download, has been added to the LDAS Software Index on the main ldas web page to obtain various distribution tar balls. This modification supersedes the previous method where the ldas source tarball distribution was made available at the very top of the CVS access page. The current method not only has the latest source distribution, but also the other source and binary distributions provided by LDAS. These go back to release 1.2.0 of LDAS.

DB2 has been upgraded from 8.1.5 to 8.2.1. This has increased the database performance.

Problem Report Summary



    [Back to the TOP]    


Q: What has changed from version 1.5.0 to 1.5.1
A:

Summary

The only change from 1.5.0 to 1.5.1 is code correction for PR2790 to allow non-aligned Hanford and Livingston data to be merged when creating RDS sets. There are other problem reports that were closed during this time. These problem reports should have been closed previous to 1.5.0 as the work had definately been completed by that time.

Closed Problem Reports



    [Back to the TOP]    


Q: What has changed from version 1.4.0 to 1.5.0
A: Below is a list of changes:

cmonClient/cmonServer:

  • CmonClient has been made more robust in its reading of log files. At the same time, corrections were made to syncronize APIs access when writing to the log files.
  • Added a dataPipeline test for 290 node cluster.
  • Added tests for LLO createRDS command.

frameAPI:

  • An issue with the createRDS command not being able to generate frames from subsections of compressed frames has been correctd.

Resource Variable changes:

  • LDASapi.rsc (local dir: /ldas_outgoing default dir: /ldas/bin)
    1.       ;## desc=Max time delay before recording failure to update archiveIndex with log entry
            set ::MAX_LOGARCHIVE_DELAY_SECS 2
            
  • cmonClient.rsc (local dir: /ldas_outgoing/cntlmonAPI default dir: /ldas/lib/cntlmonAPI)
    1.         ;## desc=max size of status message
      	set ::MAX_MSG_LEN 100000
            
    2. 	;## desc=max number of graph points
      	set ::MAX_GRAPH_POINTS 100000
            

Closed Problem Reports



    [Back to the TOP]    


Q: What has changed from version 1.3.0 to 1.4.0
A: Below is a list of changes:

Closed Problem Reports



    [Back to the TOP]    


Q: What has changed from version 1.2.0 to 1.3.0
A: Below is a list of changes:
  • datacondAPI:

    • Occasionally a strange error message like this is seen:
        LDAS-DEV35212650 error!
        aborted after 1022.36 seconds in datacondAPI.
        You have encountered an LDAS system bug!
        This condition will be automatically reported to the developer
        who is responsible for maintaining the datacond API.
        User command LDAS-DEV35212650 aborting!
      
      What is happening is that the managerAPI is aborting a job that is hung in the datacondAPI before the datacondAPI has a chance to try to unhang it. This will typically result in a memory leak.

      To avoid this kind of failure, the value of the manager API resource variable ::MANAGER_ABORT_AFTER_N_SECONDS_IN_DATACOND_API should be made at least 200 seconds longer than the datacond API resource variable ::DC_LONG_RUNNING_THREAD_WARNING.

  • diskcacheAPI:

    • There is a known issue in the diskcacheAPI which causes the loss of metadata when a raid archive server that is visible to the diskcache API is rebooted.

      If an archive server is rebooted, the diskcache API should be restarted via the Control and Monitor Interface.

    • There is a new resource variable in the LDASdiskcache.rsc for controlling the excessive email generated when rapidly updating directories exist on a system.

      The LDASdiskcache.rsc resource variable ::IGNORE_REMOVED_DIRS_UNDER_MTPT can be set to a list of directory names that are otherwise defined in the ::MOUNT_PT resource variable to reduce the number of email level log messages.

      Any ::MOUNT_PT entry that is also in the ::IGNORE_REMOVED_DIRS_UNDER_MTPT list will only generate email when a CONFLICTING DATA error occurs. Log entries that would otherwise raise email due to REMOVED type errors will be logged with a purple ball.

      Note that it is always the case that ADDED type 'errors' are logged with blue balls unless another type of error occurred under the same mount point, when they are logged as part of the real error report to facilitate diagnostic analysis.

      Example:

      set ::IGNORE_REMOVED_DIRS_UNDER_MTPT [ list frames/full /samraw/extra ]

    • mpiAPI:

      There is a new utility that can be used to detect Linux system errors on the beowulf cluster. It is called scancluster, and it is usually found in the /ldas/bin directory.
      The script should be examined and possibly modified before use to set the base name of the beowulf node machines. The default value is set to node.
      The scancluster utility is run on the beowulf gateway, and it produces a report called scancluster.log.NNNNNNNNNN, where the file extension is the unix timestamp.
      This utility issues rsh commands as the user running it to capture information from the system logs on all the nodes.
      The log file will have a seperate section for each node on the cluster, and there will be two subsection to each node report. The first section will contain error conditions, and the second section will contain the last 10 lines of the /var/log/messages file.
      The scancluster log is visually inspected for system errors. Even a fairly large cluster can be examined relatively quickly by this method.
  • User Commands

    • The createRDS command has several new options. They are:
      • -framesperfile
      • -secperframe
      • -filechecksum
      • -allowshortframes
      • -generatechecksum
      • -fillmissingdatavalid
      The documentation for these new options can be found here.

    Closed Problem Reports



    [Back to the TOP]    


Q: What has changed from version 1.1.0 to 1.2.0
A: Below is a list of changes:
  • The performance is 5 to 10 percent faster than the previous release (1.1.0).
  • Tables
  • cntlmonAPI:

    • database web page
      • add Engineering and science runs description to the databases
    • cntlmon server
      • Handled situation if there are no DSOs in system ( e.g. /lal not mounted )
      • New function to gather statistics of beowulf loads to support cmonClient load summary report.
      • Defaults archived log retention from 6 months to 1 year.
      • Fixed error of "No ymin" for API time graph data when there is only one category selected and there are no jobs fitting this category.
      • New function to gather thread usage data for graphing threads vs time.
    • Utilities
      • log monitor (logscan )
        • report errors by logging to cntlmon's logs instead of stderr.
      • database web page builder (db2utils) -
        • added Engineering and science runs dates to the database page
        • fixed schema page to report correctly columns that require non-nulls
      • log filtering (bgcntlmon)
        • migrated procs out from genericAPI into log filter program
      • database creation
        • include deletion of triggers when creating new database
      • cmonClient
        • added new page cache view to show frame times (PR1729)
        • added new graph under System resources to show thread usage vs time.
        • added new page Load Summary under MPI to show beowulf node usage vs time
        • added X-axis and Y-axis totals to histograms
        • migrated histograms to be invoked from their time graphs instead of independent of them; support rebin of histograms
        • added ldas command and DSO to the printed output of graphs with such filters
        • added subtotals of each category for API time metrics graph.
  • diskcacheAPI:

    • A distribution of just the pieces needed for creating a diskcache library has been created. It is intended for use in data discovery tools.
    • Added function to gather diskcache file-system usage data for each mount-point which gets the number of directories and number of files under that mount point that matches a specified ifo and type.
    • Added function to gather diskcache interval data. It gets a list of intervals within a specific start and stop time matching a specified ifo and type.
    • Added functions to set/get the frame file extension.
  • eventmonAPI:

    • created new proc to set insertion rate
    • Allowed update of insertion rate via cmonClient resource page.
    • Sent email if the update value is incorrect.
    • Unregister thread and thread variable to prevent assertion errors detected during putStandAlone exception test.
  • frameAPI:

    • LDAS can now specify users to have create directory priveleges so systems do not need to be "seeded" with output directories for the createRDS commands. Below is an example of how to use this variable in the LDASframe.rsc file:
        ;## desc=list of users who may write RDS files anywhere
        set ::USERS_WHO_CAN_CREATE_RDS_DIRS [ list mlei createrdstest anderson bjohnson_ldas gmendell igor nobody ]
        
    • Additionally, users can be restricted to creating directories to certain directories by means of the ::USER_CAN_WRITE_RDS_TO_DIRS variable also in LDASframe.rsc file. For example
      
          ;## desc=ARRAY of users who may write RDS files to specified dirs
          set ::USER_CAN_WRITE_RDS_TO_DIRS(nobody) [ list /only/here /only/there ]
        
      Allows the user nobody to create subdirectories only under /only/here and /only/there.
  • genericAPI:

    • Mail handling by LDAS can now be done two different ways.
      • Method 1 (Recommended) Defining ::USE_SENDMAIL_AS_MTA to be 1, and setting ::PATH_TO_SENDMAIL to the correct path will cause LDAS to use sendmail as the MTA. Below is an example configuration for ldas-dev.ligo.caltech.edu.
        
            ;## desc=this should be set to the fully qualified name of your mailhost!!
            set ::LDAS_MAIL_RELAY_FQDN acrux.ligo.caltech.edu
        
            ;## desc=set to '1' to use 'sendmail -oi -t' to deliver mail
            set ::USE_SENDMAIL_AS_MTA 1
        
            ;## desc=path to sendmail executable
            set ::PATH_TO_SENDMAIL /usr/lib/sendmail
            
      • Method 2 (Not Recommended) Defining ::USE_SENDMAIL_AS_MTA to be 0, and setting ::LDAS_MAIL_RELAY_FQDN to be the fully qualified domain name of a mailserver that will relay mail for the LDAS gateway will cause LDAS to use it's own MTA, which is much less fault tolerant than sendmail.
  • metadataAPI:

    • Updated job time out from 50 secs to 100 secs to allow sleepy dataRecv threads to wakeup in time to complete job. Increase bgLoop for waking dataRecv threads from 10 secs to 60 secs. PR 2435
  • mpiAPI:

    • A much faster startup/shutdown is now possible when user ldas has sudo priveleges for the search users. The file /etc/sudoers needs to have the following entries:
      
        User_Alias  LDAS_PGM = ldas
        Cmnd_Alias  PKILL = /usr/bin/pkill
        LDAS_PGM    ALL= NOPASSWD: PKILL
        
      This file must be edited by a person with system administrative priveleges. For ldas systems, please contact ldas sysadmins; all others please contact your local system administrator. To make use of the sudo priveleges, you will need to modify the LDASmpi.rsc file simularly to the example given below.
      
        ;## desc=lam processes can be killed en-masse if user ldas has sudo
        set ::USER_LDAS_HAS_SUDO 1
      
        ;## desc=globbing style sudo kill command for this platform.
        set ::MPI_SUDO_KILL_COMMAND "sudo pkill -9 -u \[ join \$::MPIUSERS , \]"
        
  • Closed Problem Reports



    [Back to the TOP]    


Q: What has changed from version 1.0.0 to 1.1.0
A: Below is a list of changes:
  • Improvements to diskCacheAPI addressing issues associated with the Observatory file systems (Greg and Igor are waiting on these).
  • Support in the createRDS user command for turning on and off the checksum calculation and timestamps validation of input frames.
  • Approximately 25% overall performance boost over the 1.0.0 release
  • Slightly upgraded LDCG (primarily due to a new GCC compiler)
  • Standalone tarball distribution of the dataConditionAPI's C++ library with a wrapper to allow C programs to utilize the algorithm{} option (unique translators between application data types and the UDT C++ objects will be needed - examples provided)
  • Several significant improvements in speed and functionality of the controlMonitorAPI's GUI.
  • Close out of a few dozen open problem reports.
  • Migration to DB2 Version 8.1 with fixpac 5 under RH 9
  • Removal of tape control monitoring functionality from cntlmonAPI and cmonClient
  • Detailed list of closed problem reports

mpiAPI:

  1. ::MPI_WRAPPER_INIT_TIMEOUT

    Maximum number of seconds to wait for a wrapper API to announce that it has completed it's intialization. Default is 10 seconds, which is a fairly generous value.

  2. ::MPI_WRAPPER_COMMAND_TIMEOUT

    This is identical to the LDAS-1.0 resource variable ::MPI_WRAPPER_COMM_TIMEOUT but the name has been made more descriptive.

  3. ::MPI_WRAPPER_COMM_TIMEOUT

    has been removed



    [Back to the TOP]    


Q: What has changed from version 0.9.0 to 1.0.0
A: Below is a list of changes: General, Control and Monitor, datacondAPI, diskcacheAPI, frameAPI, frameCPP, /ldcg, Resource Variables,

General

  • Migrate to the STLPort version of the Standard Template Library primarily for thread safty

Control and Monitor

Support in controlMonitorAPI's client for graphical viewing content of

  • database tables
    • new data viewer memu
    • time series
    • histograms - mean, median, std dev
  • usage details of LDAS jobs
    • new memu under Jobs
    • view graphical tree of jobs by commands
    • view graphical tree of jobs by users

In addition, controlMonitorAPI's client now works behind firewalls; multiple clients can run in one working directory; APIs can be added to hosts specified by users

datacondAPI

single precision bug found in IIR filtering by Julien Sylvestre fixed

  • Numerous test cases were added to extend the verification that the single-precision IIR filtering is equivalent to
    1. converting the single-precision data to double precision
    2. filtering it at double-precision and
    3. converting back to single-precision.

diskcacheAPI

Rework of the diskCacheAPI to have the computationally demanding
  • components handled in C++
    • primarily for performance
    • addressed the need for multi-threaded support
    • new C++ binary object file for frame cache file on disk

/ldcg

  • based on STLPort
  • new version of LAM
  • new autoconfig/automake/libtools, compliant with LSC standard
  • new version of FFTW
    • improved performance
    • brings support for this library in line with LAL

frameAPI

frameAPI's resource now allows tuning of frame file I/O method and buffer size on a per file system device basis
  • improved I/O performance possible with a little experimentation depending on file systems available at LDAS sites.

frameCPP

extended support for less well known frame structures in FrameCPP
  • FrSimData
  • FrSimEvent

Resource Variables

diskcacheAPI

  1. ::CACHE_UPDATE_INTERVAL

    loop time, in seconds, around the ::MOUNT_PT list.

    15 seconds is the default, and this is a good value generally. there is not much to be gained from tweaking this value, which is now deprecated as a tuning parameter in favor of the ::DELAY_BETWEEN_THREAD_SPAWNS_MS value.

  2. ::DELAY_BETWEEN_THREAD_SPAWNS_MS

    millisecond delay between ::MOUNT_PT update threads. making this very small results in thread contention and wasted cpu. a value of at least 100 (the default) is a good starting point. make it larger if too much CPU is getting used by the diskcache API.

  3. ::DEBUG_SCAN_RATE

    flag (0 or 1) causes messages to be printed in the diskcache API log every time that all ::MOUNT_PT directories have been updated. The message reports the number of mount points, subdirectories, and files scanned in NNNN ms.

  4. ::ERROR_REPORT_INTERVAL

    how often (in seconds) to bug the sys admin about badly formed directories under mount points. On a test system with intentionally bad directories, this should be at least 2 hours (7200 seconds), and at most one day (86400 seconds).

  5. ::DEBUG_CACHE_SYNCHRONIZE

    flag (0 or 1) whether to log each change detected by the diskcache API on a per-directory basis. Can generally be left on.

  6. ::EXCLUDE_THESE_DIRS_FROM_UPDATES

    list of directories that should not be touched by the diskcache API, usually because they are NFS mounted but offline, and threads pointed at them would hang forever.

  7. ::DISKCACHE_HASHFILE_NAME

    the name to write the binary hash file into. the default is .frame.cache2

  8. ::DIR_SLOW_UPDATE_WARNING_THRESHHOLD

    if any directory requires more than this many seconds to scan, send an email to the sys admin. good way to detect failed ide raid systems, or at least much better than not being able to detect them at all.

  9. ::NUMBER_OF_RUNNING_THREADS_PERMITTED

    absolute limit to the number of simultaneously running threads spawned via calls to the c++ extensions to the diskcache API.

frameAPI

  1. ::STREAM_BUFFER_SIZE

    Establish the default file buffer size in bytes. If the value 0 (zero) is specified, the default buffer size of the operating system and/or compiler will be used.

  2. ::ENABLE_MEMORY_MAPPED_IO

    Establish use of memory mapped I/O for files if available. This does require the version of STLport specified in the "How to Build LDAS" documentation.

  3. ::DEVICE_IO_CONFIGURATION

    Establish a list of devices that have custom buffer sizes and memory mapped I/O characteristics. This list has to be of the form: [ list [ list {file} {buffer size} {i/o} ] ... ]

  4. ::CREATERDS_CHECKSUM Enable (1) or disable checksum (0) verification of frame files when generating RDSs.


    [Back to the TOP]    



Integrated Test Results

Q: What are the current results of system testing
A: Historical test results. This link will take you to the complete recorded history of system testing LDAS. Typically, all system tests are run once a week and the results posted here.

    [Back to the TOP]    


Q: What were the test results for ldas-1.3.0
A: ldas-1.3.0

    [Back to the TOP]    



Configuration issues

Q: I cannot build lal version test-2004-02-23 with /ldcg for LDAS 1.4.0
A: Automake was upgraded for LDAS 1.4.0. You will need to add the following lines:
case x$VERSION in
x)
   PACKAGE="$PACKAGE_NAME"
   VERSION="$PACKAGE_VERSION"
   ;;
esac
just above the line:
lal_version_major=`echo "$VERSION" | cut -d. -f1`


    [Back to the TOP]    


Q: (Version 1.0.0 ) I have N nodes in my nodes list but I cannot use all the nodes.
A: In version 1.0.0 of the mpi API, the node list declared in the file /ldas_outgoing/mpiAPI/LDASmpi.rsc must be declared in such a way that ALL node names first appear once before ANY node name is declared a second time. For example: This will NOT WORK:
set ::NODENAMES [ list node0 node0 node1 node1 node2 node2 ]
This WILL WORK:
set ::NODENAMES [ list node0 node1 node2 node1 node0 node2 ]
This error is generated when the list is declared incorrectly:
mpirun: cannot start /ldas/bin/wrapperAPI on n8: invalid node
Where 'n8' can have any integer value following the 'n'.


    [Back to the TOP]    



Documentation corrections


    [Back to the TOP]    



User Jobs

Q: How do I send an empty string as a parameter in a user request that is is encapsulated by double quotes?
A: There are three ways to send an empty string as a parameter:
1) Use single quotes. ex: -filterparams(-c.'',...)
2) Assign a tcl variable to the empty string outside of the user request and then make use of it. ex:
set emptystring ""
-filterparams(-c,$emptystring,...)
3) Don't use anything. ex: -filtrparams(-c,,...)


    [Back to the TOP]    


Q: I want to pass the results of -dbspectrum to my DSO, but no object with the proper name is available to my DSO.
A: When using the -dbspectrum option with the pushpass field set to 'pass', there is no way to specify the name of the data object sent to the wrapperAPI. If it is important to set the name of the data object (i.e. in cases where the DSO expects specific object names), set the pushpass field to 'push'. In the -algorithms section include an output statement to send the data to wrapperAPI, using the alias specified in the -dbspectrum option. The name of the objects can then be specified in the output statement. For example:
-dbspectrum {
   channel=slice(P2:LSC-AS_Q,0,128,1)
   spectrum_type=Welch
   spectrum_length=65
   start_time=610000000
   start_time_ns=0
   start_frequency=0
   delta_frequency=128
   pushpass=push
   alias=spect
}

-algorithms {
   output(spect,_,_,spectrum,spectrum data);
}


    [Back to the TOP]    


Q: When using multiple frame queries in my job, I get unexpected failures.
A: Preferred framequery syntax recommendation:

With the advent of support for NDAS frames in LDAS, and the deprecation of explicit interferometer specifications in -framequery options, there is a possibility for bad behaviour of complex/compound framequeries whose component parts are actually satisfied by a single set of frame files.

For example, this request:

   -framequery {
      { RDS_R_L1 H {} 730524100-730524982 Adc(H2:LSC-AS_Q!resample!8!) }
      { RDS_R_L1 L {} 730524100-730524982 Adc(L1:LSC-AS_Q!resample!8!) }
   }
   
Will work "as expected" when the request is satisfied by two sets of frame files, Hanford frames for the first part, and Livingston frames for the second part. However, when the request is satisfied by a single set of NDAS (multiple interferometers represented in a single file) frames, the request will fail to produce output from the second part.

The above query can be rewritten as:

   -framequery {
      RDS_R_L1 {} {} 730524100-730524982
      Adc(H2:LSC-AS_Q!resample!8!,L1:LSC-AS_Q!resample!8!)
   }
   
So that it will always work.


    [Back to the TOP]    


Q: When generating frame output from the datacondAPI I either get the eror message saying "Inserting non-unique key:" or the channel names are different than what I specified in the output statements.
A: With ldas-0.7.0, only output targetted for the WRAPPER uses the name value of the output() action. In 0.8.0, all targets will use the value specified in the name value of the output() action. A work around is to send the data to the libio dso in the wrapperAPI. An example of how to do this is:
dataPipeline
    -subject {obtaining calibration and FFT data}
    -returnprotocol file:H2H1-CAL+FS+DEBUG_1-733543750-1024.gwf
    -dynlib /ldas/lib/wrapperAPI/libio.so
    -filterparams (0)
    -outputformat frame
    -datacondtarget wrapper
    -multidimdatatarget frame
    -setsingleem 1
    -framequery {
        { RDS_R_L1 H {} 733543750-733544774 adc(H2:LSC-AS_Q,H1:LSC-AS_Q) }
        { SenseMonitor_H2_M H {} 733543750-733544774 adc(H2:CAL-CAV_FAC.mean,H2:CAL-OLOOP_FAC.mean) }
        { SenseMonitor_H1_M H {} 733543750-733544774 adc(H1:CAL-CAV_FAC.mean,H1:CAL-OLOOP_FAC.mean) }
        { CAL_REF H {} 729320845-729320908 proc(H2:CAL-CAV_GAIN!0!7000.0000!,H2:CAL-RESPONSE!0!7000.0000!) }
        { CAL_REF H {} 729326128-729326191 proc(H1:CAL-CAV_GAIN!0!7000.0000!,H1:CAL-RESPONSE!0!7000.0000!) }
    }
    -aliases {
        ifo1_asq_chan = H2\:LSC-AS_Q;
        ifo1_alpha_ts = H2\:CAL-CAV_FAC.mean;
        ifo1_gamma_ts = H2\:CAL-OLOOP_FAC.mean;
        ifo1_sensing = H2\:CAL-CAV_GAIN;
        ifo1_reference = H2\:CAL-RESPONSE;
        ifo2_asq_chan = H1\:LSC-AS_Q;
        ifo2_alpha_ts = H1\:CAL-CAV_FAC.mean;
        ifo2_gamma_ts = H1\:CAL-OLOOP_FAC.mean;
        ifo2_sensing = H1\:CAL-CAV_GAIN;
        ifo2_reference = H1\:CAL-RESPONSE;
    }
    -algorithms {
        alphas = double(ifo1_alpha_ts);
        gammas = double(ifo1_gamma_ts);
        alphas = complex(alphas);
        gammas = complex(gammas);
        alpha_t = getElement(alphas,0);
        gamma_t = getElement(gammas,0);
        ifo1_open_gain = mul(ifo1_sensing, ifo1_reference);
        ifo1_open_gain = sub(ifo1_open_gain, 1);
        ifo1_response = mul(gamma_t, ifo1_open_gain);
        ifo1_response = add(1, ifo1_response);
        ifo1_response = div(ifo1_response, ifo1_sensing);
        ifo1_response = div(ifo1_response, alpha_t);
        ifo1_response = fseries(ifo1_response, 0.0, 0.015625, 733543750, 0, 733544774, 0);
        alphas = double(ifo2_alpha_ts);
        gammas = double(ifo2_gamma_ts);
        alphas = complex(alphas);
        gammas = complex(gammas);
        alpha_t = getElement(alphas,0);
        gamma_t = getElement(gammas,0);
        ifo2_open_gain = mul(ifo2_sensing, ifo2_reference);
        ifo2_open_gain = sub(ifo2_open_gain, 1);
        ifo2_response = mul(gamma_t, ifo2_open_gain);
        ifo2_response = add(1, ifo2_response);
        ifo2_response = div(ifo2_response, ifo2_sensing);
        ifo2_response = div(ifo2_response, alpha_t);
        ifo2_response = mul(ifo2_response, 0.783783783784);
	ifo2_response = fseries(ifo2_response, 0.0, 0.015625, 733543750, 0, 733544774, 0);
        output(ifo1_response, _, _, H2:CAL-RESPONSE, H2:CAL-RESPONSE_FSERIES_0-7000);
        output(ifo2_response, _, _, H1:CAL-RESPONSE, H1:CAL-RESPONSE_FSERIES_0-7000);
        ifo1_fseries = slice(ifo1_asq_chan,0,1048576,1);
        ifo1_fseries = fft(ifo1_fseries);
        ifo1_fseries = slice(ifo1_fseries,0,448000,1);
        ifo1_fseries = fseries(ifo1_fseries, 0., 0.015625, 733543750, 0, 733543814, 0);
        ifo2_fseries = slice(ifo2_asq_chan,0,1048576,1);
        ifo2_fseries = fft(ifo2_fseries);
        ifo2_fseries = slice(ifo2_fseries,0,448000,1);
        ifo2_fseries = fseries(ifo2_fseries, 0., 0.015625, 733543750, 0, 733543814, 0);
        output(ifo1_fseries, _, _, H2:LSC-AS_Q_FFT, H2:LSC-AS_Q_FSERIES_0-7000);
        output(ifo2_fseries, _, _, H1:LSC-AS_Q_FFT, H1:LSC-AS_Q_FSERIES_0-7000);
    }

   


    [Back to the TOP]    



diskcacheAPI

Q: In 0.9.0, my frame query worked just fine, but in 1.0.0 it fails
A: 1.0.0 has introduced a bug in the diskcacheAPI which prevents some framequeries not to work. The 0.9.0 functionality will be restored in the next version of LDAS. The work around described below should be used until the problem has been corrected. LDAS allows implied interferometer specs based on inspection of specified channel names in the -framequery option. In previous versions of LDAS, the implied ifo would be matched against exact matches in frame file names, and also against merged frame files whose names reflected the existence of channel data from multiple interferometers. In LDAS release 1.0, the ability to match merged files implicitly was lost. To match merged frame files using LDAS version 1.0.0, it is necessary to explicitly declare the ifo portion of the filenames intended to match. Example: formerly this framequery:
   -framequery { MY_TYPE {} {} 600000000-600000012 Adc(H1:LSC-AS_Q) }
   
could be matched by frames with names of the form:
   HL-MY_TYPE-600000000-16.gwf
   
but in version 1.0.0, it is necessary to specify the ifo part of the expected frame name specifically IF MERGED FRAMES ARE EXPECTED:
  -framequery { MY_TYPE HL {} 600000000-600000012 Adc(H1:LSC-AS_Q) }
  
if ifo specific frames with a single character ifo spec in their name are wanted, the ifo does not have to be specified.


    [Back to the TOP]    



Database

Q: Why are there many messages about the "database disk usage low"?
A: If the database is mounted on a file system with long names that have upper case, e.g.
/dev/dsk/c2t50020F2300005C9Cd1s2 427132074  91527898 335604176  22% /usr2
db2utils has a parse error when doing a df on the file system and reports that a database file e.g. lho_s2, disk space usage is full which is incorrect. In addition the disk space reported in the web page for each database is incorrect.
  1. Apply db2utils patch by copying the patched db2utils file into /ldas/bin (NOTE: You may have to use the "save link as" feature of your browser to download this file.)
  2. Restart db2utils from cmonClient LDAS control -> LDAS utilities -> restart database monitor


    [Back to the TOP]    



Frames (General)

Q: Is there any incorrect data in version 4 frames?
A: Currently there are several issues with version 4 frames.
  • The longitude and latitude information for Hanford and Livingston is swapped.
  • All frames generated by Hanford and Livingston observitories put LIGO_1 in the name filed of the FrDetector structure.


    [Back to the TOP]    



cmonClient

Q: cmonClient "View Database" page sometimes does not return a graph when selecting a table with a large number of rows (version 1.1.0)
A: The getMetaData job submitted in the query results in a job being timed out because the query takes too long. This issue is being investigated and will be fixed in version 1.2.0 of LDAS.

    [Back to the TOP]    


Q: cmonClient reports no logs found when there are log files present.
A: This is most likely due to an error in the log cache files in cntlmonAPI e.g. caused by a sudden system shutdown etc. When cmonClient searchs for logs, the server will respond with "No logs found" when there are actually log files. It is necessary to regenerate the log cache files as follows:
cd /ldas_outgoing/cntlmonAPI
rm logCache.tcl  logPos.tcl
rm .archiveIndex_fpos
In cmonClient, hit Control -> Utilities -> Restart log Cache utility Wait for the appearance of new logCache.tcl and logPos.tcl in /ldas_outgoing/cntlmonAPI before submitting your log filter request.


    [Back to the TOP]    


Q: cmonClient database view takes a long time.
A: This happens to database tables with large number of rows e.g. sngl_burst. Currently there is no index on the x axis column: the insertion time. In future releases we hope to improve performance with multidimensional clustered index available in DB 8.1 and beyond to boost query performance.

    [Back to the TOP]    


Q: cmonClient cache view requires a password
A: Comment out your cntlmonAPI resource variable in /ldas_outgoing/cntlmonAPI/LDAScntlmon.rsc
# set ::passwdCmd(submitLDASjob) 1
and reboot cntlmonAPI. cache view no longer requires a pasword.


    [Back to the TOP]    



eventmonAPI:

Q: eventmonAPI sometimes generate email for invalid element especially when running dataPipelines with -metadataapi tee option. (PR# 2173)
A: eventmonAPI sends data objects via threads. Each sent object is destroyed on completion of the thread function. If the -metadataapi option is used to send metadata object to both ligolw and metadata APIs, the same object is sent in parallel and then destroyed in parallel. There could be a potential memory corruption if the sent object is being reused before the 2nd destruction occurs.

Work around: -metadataapi tee option was created to save data in case of database deadlock or error during insertion. With the threaded metadataAPI there is less likely chance of losing data since each insertion is done atomically in a thread. So it may not be necessary to use -metadataapi tee option all the time. The -metadataapi metadata should suffice in most cases.

    [Back to the TOP]    


Q: eventmonAPI reports bgerror via email eventmon::defunctJobs: can't read "::eventmon::sendElementList": no such variable
A: This is due to an un-initialized variable encountered by the eventmon bgLoop to cleanup defunct jobs if there are no jobs passing through the system when bgLoop runs.

Work around: create a local /ldas_outgoing/eventmonAPI/LDASeventmon.ini with the following:


namespace eval eventmon {}
set ::eventmon::sendElementList [ list ]
And restart eventmonAPI.


    [Back to the TOP]    



Wrapper

Q: LDAS is unable to successfully run lamboot
A: For all versions of LAM up to and including 7.1 a bug exists that will prevent lamboot from being able to start LAM after a machine reboot under some circumstances.

To avoid becoming a victim of the bug, after rebooting any machine that is part of a lam universe, you should delete all directories named /tmp/lam-search* and their contents. It would be sensible to add a command like

rm -rf /tmp/lam-search*

To the rc.local file on all machines in a lam installation under any circumstance.

    [Back to the TOP]    


Q: My DSO cannot find the name of an object that was sent from the datacondAPI.
A: LDAS no longer ignores the alias specified by the output statement for data being sent to the wrapperAPI. To correct the problem, do one of the following:
  1. Remove the alias from the output action. This will cause the name generated by the datacondAPI to be used.
  2. Modify the DSO to make use of the alias specified in the output action.


    [Back to the TOP]    


Q: How can I attach a debugger to a standalone wrapper
A:
  1. change the
    #undef STOCHASTIC_SO_ATTACH_DDD /* sleep for a few seconds to attach ddd */
    in Stochastic.h to
    #def STOCHASTIC_SO_ATTACH_DDD /* sleep for a few seconds to attach ddd */
    and recompile/reinstall LAL.
  2. Start up ddd on the executable wrapperAPI
  3. mpirun the DSO
  4. It will sleep for 10 seconds and display the PID; attach ddd to this PID. (It's a good idea to work out where the pull-down menu to do this is first ;-))


    [Back to the TOP]    



Processed for the Web by faqprocessor.cgi version 0.62 by Jessica