Changes between Initial Version and Version 1 of v6.0


Ignore:
Timestamp:
01/17/12 12:55:51 (10 years ago)
Author:
branden
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • v6.0

    v1 v1  
     1{{{ 
     2 
     3Release Notes:  Earthworm Version "v6.0" 
     4 
     5 
     6NEW MODULES: 
     7*********** 
     8 
     9db_cleanup: New database related module which allows the users to  
     10  clean up the events in the DB. It takes four important parameters: 
     11  First two specify how many days ago cleanup should start and  
     12  how many days to clean up. For example, specifying 7 and 2 means  
     13  that two days worth of events will be cleaned up starting with  
     14  the events 7 days ago. Next two options specify the type of  
     15  cleanup. The user can delete all or just the trace data of an  
     16  event, and the user can save the trace in SAC format.  This program 
     17  is intended to run out of cron so that it can automatically clean 
     18  up the old stuff out of the database, keeping its tables 
     19  manageable. LV 10/25/2000 
     20 
     21db_cleanup2: Just like db_cleanup only more options.  You can now archive/delete 
     22by time/lat&lon/magnitude.  You can also delete unassociated data. 
     23 
     24reaper:  Just like db_cleanup2, except that it has only one option.  You give it 
     25a DayOfReckoning, and it deletes everything in the DB older than that date/time. 
     26It saves nothing. 
     27 
     28pidpau: This is a command-line program with which one can request the termination 
     29of a single Earthworm program.  It works by setting the transport flag in all 
     30transport regions listed in startstop's config file to the value given on  
     31the command-line.  The value given is the processid that you want to shut 
     32down.    Usage: pidpau   
     33Most earthworm modules have been modified to shut down when the trasnport 
     34flag is set to TERMINATE or their own processid. 
     35LDD 5/11/2001 
     36 
     37makeTTTable: 
     38This is the Ray Buland travel time calculator. It's Solaris-specific Fortran  
     39code. The main program was modified by Alex to accept command-line input  
     40specifying the resolution and range of the table. The output is an ascii file,  
     41suitable for reading with Carl's kom routines. The phases listed in the file are  
     42as per Harley's requirements for getting global snippets containing the time  
     43interval of interest. Such tables are currently used by archiving/usnsn_loc2trig  
     44and oracle/apps/src/arc2trigII. 
     45        There's a rumor that someone has ported Ray's code to C. It would be good  
     46to replace this with that. 
     47Alex June 5 2001. 
     48 
     49 
     50 
     51MODIFICATIONS/BUG FIXES TO EXISTING MODULES: 
     52******************************************* 
     53scream2ew.c 
     54 
     55Added a new optional parameter SleepInterval to control the number of milliseconds scream2ew sleeps after each message processing loop, as requested by Murray McGowan. John Patton 8/6/2001 
     56 
     57ora_trace_save.c 
     58Added initialization of the menu list .head and .tail =NULL as per Carol Bryant's 
     59discovery. Alex 9/29/2000  
     60 
     61Replaced queue_max_size.o with mem_circ_queue.o in 
     62the following makefiles: 
     63  data_exchange/vdl/SCRIPTS/makefile.sol_ew 
     64  display/sgram/makefile.sol 
     65  seismic_processing/eqbuf/makefile.sol 
     66  seismic_processing/eqbuf/makefile.nt 
     67DavidK 2001/04/12 
     68 
     69makefile.sol for many modules: 
     70Removed compilation flags -D_SPARC and -D_SOLARIS from CFLAGS= lines.   
     71These flags should be set in a user's earthworm environment setup file, 
     72ew_sol_sparc.cmd or ew_sol_intel.cmd.  The existence of these flags in the 
     73makefile was causing trouble for anyone who wanted to compile for an 
     74Intel Solaris platform. In carlstatrig, these flags caused 4-byte integer 
     75trace data to be misinterpreted as float data, resulting in NaN for most 
     76triggering variables. Makefile.sol was changed for the following modules: 
     77 carlstatrig  
     78 eqfilter 
     79 import_generic  
     80 q2ew 
     81 sac2hypo 
     82 sm_file2ring  
     83 sm_reftek2ew 
     84 template  
     85 trig2disk  
     86 waveman2disk 
     87LDD 1/31/2001 
     88 
     89oracle/.../libsrc/util/get_db_event_info.c 
     90Added new GetDBEventInfo_Super() function.  (Sorry about the name.) 
     91GetDBEventInfo_Super() is the same as GetDBEventInfo() except that it 
     92allows the caller to select what types of information they want 
     93retrieved for an event.  They types are defined in  
     94EW_VERSION/include/db_event_info.h, and are bitwise OR'd together 
     95to form an integer flags value.  Now one program can use the call to 
     96get everything for an event, and another can still use the call to 
     97just get summary and arrival info, without taking the performance 
     98hit of retrieving all event data.  
     99Also added a function Set_GetDBEventInfo_Debug() that turns debugging 
     100on/off for GetDBEventInfo_Super(). DK 12/20/00 
     101 
     102oracle/.../eqparam2html 
     103Changed the links that appear at the bottom of the eqparams web page, 
     104(used to view record sections[waveforms]) from being hard coded to 
     105being config file configurable.  See eqparam2html.d in the 
     106eqparam2html source directory for more info. DK 12/20/00 
     107 
     108oracle/.../getlist and getimage 
     109Changed getimage to work on NT.  Previously getimage did not work on  
     110NT, due to a Pipe problem with Apache on NT.  Apache bug was fixed 
     111as of v1.3 (fix verified on v1.3.14).  Changed getlist to use getimage 
     112on NT.  These changes SHOULD not affect the operation of either program 
     113on Solaris.  DK 01/03/01 
     114 
     115oracle/.../ora2rsec_gif 
     116Fixed a bug where non 8-byte aligned TRACEBUF packets within a  
     117DB Snippet buffer, would cause the program to crash.  (Tested 
     118with 179 sample - 780 byte TRACEBUF packets from SRU BHZ UU). 
     119Added code to remove (primitively) the DC Offset from the 
     120record section displays.  DK 02/20/01 
     121 
     122stalist_hinv2ora: Fixed a bug in reading elevation from the file. Had  
     123been reading 1 char too many, causing elevations to be an order of 
     124magnitude too large.  Also added checks on the north-south latitude 
     125flag and east-west longitude flag, so that the sign of the coordinates 
     126is correct.  In a California-centric manner, we assume that if these 
     127flags are left blank, the coordinates are N and W (this is the 
     128hypoinverse default).  
     129  Also changed code in ewdb_api_CreateOrAlterExternalStation.c 
     130so that station coordinates are inserted into the DBMS with 6 decimal  
     131places (had been truncated to 2 decimal places). LDD 3/19/2001  
     132 
     133shakemapfeed: added the option to write XML files for shakemap2; previously 
     134only shakemap1 file format was supported. Added the option to read a 
     135"MappingFile" which serves as a lookup table for station long names, 
     136instrument types and agency names. These descriptive phases are added to the 
     137XML to improve human readability; they are not required to make shakemaps.  
     138Changed to use the standard macros for RingName length and the other earthworm 
     139logo lookup strings.  PNL 3/22/2001 
     140 
     141k2ew: Changes to logging only.  Several messages that logged at debug level 0 
     142were moved to debug level 1.  These source files were effected: 
     143k2ewmain.c  k2pktio.c  outptthrd.c  k2misc.c  k2c_tcp.c 
     144WMK  5/7/01 
     145 
     146k2ew: Minor logging changes made to function k2p_recv_packet.  WMK 5/14/01 
     147 
     148k2ew: Program now optionally writes the entire K2 header to a disk file. 
     149Name of file is specified by a new optional config parameter named 
     150"HeaderFile".  WMK 5/22/01 
     151 
     152statmgr: Statmgr can now read nested descriptor files.  To do so, put a line 
     153like "@common.desc" in the descriptor file.  WMK 5/10/01 
     154 
     155include/transport.h: Changed SHM_HEAD.flag from short to int so that we can 
     156use it to store processids.  This is in preparation for a graceful restart 
     157mechanism, whereby if tport_getflag returns either TERMINATE or MyProcessId, 
     158the module will exit gracefully.  Also changed tport_putflag's flag value 
     159argument from short to int. 
     160libsrc/solaris/transport.c 
     161libsrc/winnt/transport.c: Changed tport_putflag's flag value argument from  
     162a short to an int.  LDD 5/4/2001 
     163 
     164startstop_nt: Finally found/fixed the bug that was causing startstop to crash 
     165when it failed to create one of its child processes (bug was in a logit call 
     166where it tried to print an integer with %s instead of %d).  Now it logs the 
     167failure along with troubleshooting tips, then shuts down, terminating 
     168any child processes that it had succeeded in starting (no more headless 
     169worms on NT). LDD 6/8/2001 
     170 
     171startstop_nt/startstop.c 
     172startstop_solaris/startstop.c: Changed RestartChild() to give the child 
     173process a chance to shut down gracefully before killing it forcefully. 
     174Startstop sets all transport flags (tport_putflag) 
     175to the processid that should restart.  If the child hasn't shut down 
     176after KillDelay seconds, startstop will kill the child and restart it. 
     177LDD 5/7/2001 
     178 
     179Graceful shutdowns - many modules: 
     180Modules preceded by 'x' in the list below have been upgraded to shut down 
     181gracefully if the transport flag is set to TERMINATE or its own processid. 
     182Previously, modules only shut down on a TERMINATE flag. Combined with the 
     183change to startstop's restart procedure, this means that only modules 
     184that are truly hung will be forcefully killed by startstop. 
     185All modules that are functioning properly will have a chance to clean  
     186up, possibly even saving state, before shutting down and being restarted. 
     187 
     188Standard Earthworm Modules 
     189-------------------------- 
     190archiving: 
     191x menlo_report 
     192  tankplayer 
     193x trig2disk 
     194x usnsn_loc2trig 
     195x wave_serverV 
     196  waveman2disk 
     197 
     198data_exchange: 
     199x coaxtoring 
     200x export 
     201x export_actv 
     202x import_generic 
     203  import_ida 
     204x import_pasv 
     205  liss 
     206x rcv 
     207  rcv-debug 
     208x ringdup 
     209x ringtocoax 
     210x vdl 
     211 
     212data_sources: 
     213x adsend 
     214  adsend_mitch 
     215x k2ew 
     216x naqs2ew 
     217x q2ew 
     218  reboot_mss 
     219x reboot_mss_ew 
     220x reftek2ew 
     221x scream2ew 
     222  usnsn_loc2ew 
     223 
     224diagnostic_tools: 
     225  file2ring 
     226x gaplist 
     227  getmenu 
     228  putterNSN 
     229  sniffring 
     230  sniffwave 
     231x template 
     232 
     233display: 
     234x ew2seisvole 
     235x heli_ewII 
     236x sgram 
     237  wave_viewer 
     238 
     239grab_bag: 
     240x arc2trig 
     241  comment2html 
     242  getter 
     243x pick_recorder 
     244  putter 
     245  sac2hypo 
     246 
     247reporting: 
     248  copystatus 
     249x diskmgr 
     250x statmgr 
     251 
     252seismic_processing: 
     253x binder_ew 
     254x carlstatrig 
     255x carlsubtrig 
     256x compress_UA 
     257x decimate 
     258x decompress_UA 
     259  eqbuf 
     260  eqcoda 
     261x eqfilter 
     262x eqprelim 
     263x eqproc 
     264  eqverify 
     265x evansassoc 
     266x evanstrig 
     267x ew2rsam 
     268x ew2ssam 
     269x fir 
     270  glass 
     271x gmew 
     272  hyp2000 
     273  hyp2000_mgr 
     274x localmag 
     275x pick_ew 
     276 
     277strong_motion: 
     278x sm_file2ew 
     279  sm_file2ewI 
     280  sm_file2ring 
     281  sm_reftek2ew 
     282  test_sm 
     283 
     284system_control: 
     285  pau 
     286  restart 
     287  startstop_nt 
     288  startstop_solaris 
     289  status 
     290 
     291Oracle Earthworm Modules 
     292------------------------ 
     293oracle/apps/src: 
     294  alarms 
     295x arc2trigII 
     296  archive 
     297  db_cleanup 
     298  dewey 
     299  eqparam2html 
     300  frankel 
     301  get_transfunc 
     302  getimage 
     303  getlist 
     304  hypo2ora 
     305  mag2ora 
     306  nsn_pz2ora 
     307  ora2rsec_gif 
     308  ora2sac 
     309  ora2sactarfile 
     310  ora2snippet_gif 
     311x ora_trace_fetch 
     312x ora_trace_req 
     313x ora_trace_save 
     314x orareport 
     315  review 
     316  scn2pz 
     317x shakemapfeed 
     318  shakemapfeedI 
     319x sm_ew2ora 
     320  smdbtest 
     321  stainfo 
     322  stalist_hinv2ora 
     323  stalist_shkmap2ora 
     324  stalist_usnsn2ora 
     325x usnsn_loc2ora 
     326  wvdbtest 
     327 
     328 
     329Menlo Modules 
     330------------- 
     331Contrib/Menlo/src: 
     332  bdsn2trace 
     333  cleandir 
     334x condenselogo 
     335  cta 
     336  cta2cusp 
     337x cuspfeeder 
     338  cvarc 
     339  dumpevent 
     340  eqwaves 
     341  getdst 
     342  getdst2 
     343  getevent 
     344  getfile 
     345x getqdds 
     346  heli1 
     347  heli2go 
     348  heli4 
     349x import_ms 
     350  k2pipe 
     351  ls_cta 
     352  makehbfile 
     353x msubl 
     354  qa2tracebuf 
     355  read_cta 
     356  remux_tbuf 
     357  send_cta 
     358x sendarc 
     359  sendfile 
     360  sendfile_terra 
     361  sgram 
     362  shake_feeder 
     363x sniff_trace 
     364x write_cta 
     365x wsv_test 
     366 
     367Contrib/Menlo/src/pager: 
     368  sendhb 
     369  sendmsg 
     370x telafeeder 
     371  telalert 
     372  telapage 
     373 
     374End of graceful shutdown list. LDD 5/11/2001 
     375 
     376 
     377ewdb_api_GetidChansFromSCNLT()   - sm_ew2ora 
     378Fixed a memory leak in ewdb_api_GetidChansFromSCNLT().  This applies to all 
     379programs and modules that utilize this call, including ones that call other 
     380ewdb_api_XXX() functions that utilize this call.  sm_ew2ora is the only 
     381program noticably affected by this change.  It was leaking 57kb per message 
     382due to the bug, and could quickly swell to 30MB+ after one event. 
     383DavidK 05/25/2001 
     384 
     385ewdb_api_PutSMMessage() - sm_ew2ora 
     386Changed the code so that messages that come from channels whose SCNL does 
     387not correlate to a pre-existing DB channel(idchan) with a Lat/Lon, are 
     388no longer stuffed into the DB.  The message is instead logged, with a 
     389warning about that it was not inserted.  The function now returns  
     390EWDB_RETURN_WARNING when this happens.  Note:  this has the implication 
     391that station lists for strong motion instruments must be completely loaded 
     392into the DB before attempting to insert messages.  The DB will no longer 
     393handle strong motion instruments that it has never heard of before. 
     394Davidk 2001/07/26 
     395 
     396 
     397libsrc/util/rw_mag.c, include/rw_mag.h 
     398Changed ML_INFO struct to MAG_CHAN_INFO struct to make it more generic. 
     399This structure and rw_mag should now be able to handle channel info for 
     400most types fo magnitudes; moment magnitude is one obvious exception. 
     401Removed "M0" (there is no such thing) and added "Mwp" (scalar moment 
     402magnitude) to the table of known mag types. 
     403PNL, 5/26/2001 
     404 
     405localmag: slight changes to handle the revised rw_mag routines. 
     406PNL 5/26/2001 
     407 
     408/libsrc/util/geo_to_km.c: fixed minor error in value of PI. Alex 6/6/1 
     409 
     410vdl: Reinstated feed_vdl_ew.c file from v4.1 (in v5.0,v5.1,v5.2, we had mistakenly 
     411been using feed_vdl_ew.c from v3.9P).  Also made changes in feed_vdl_ew.c to 
     412use MyPid in heartbeats, to terminate if tport_getflag returns MyPid or TERMINATE, 
     413to use configuration file name in call to logit_init().  LDD 6/6/01 
     414 
     415arc2trigII: Fixed value of PI. PNL 6/7/01 
     416 
     417localmag: changed single transport ring to and input and an output ring. 
     418Added ability to read multiple getEventsFrom commands; fixed handling of 
     419wave_servers in traceSource command. Fixed memory leak in endEvent(). Added 
     420test for SAC files to ensure they contain trace data for the desired time. 
     421New config file requred; see below. PNL 6/10/01 
     422 
     423gmew: changed single transport ring to and input and an output ring. 
     424Added ability to read multiple getEventsFrom commands; fixed handling of 
     425wave_servers in traceSource command. Fixed memory leak in endEvent().  
     426New config file requred; see below. PNL 6/10/01 
     427 
     428naqs2ew: changed to always produce one-second TYPE_TRACEBUF messages 
     429when possible.  Shorter messages will be produced if the sample rate 
     430exceeds the MaxSamplePerMsg parameter, or if a change in sample rate, 
     431a data gap or overlap is detected. If a packet from NaqsServer ends  
     432with a fractional second's worth of data, naqs2ew will buffer that 
     433data until the next packet for that channel is received. LDD 6/18/2001 
     434  Reorganized code to allow sharing of source files between different 
     435NaqsServer clients.  Created naqschassis.c which handles the connection 
     436to the server, heartbeats, etc, and kept all waveform-specific code 
     437in naqs2ew.c.  LDD 7/19/2001 
     438 
     439wave_serverV:  Moved logging  
     440statement(_writeTankSummary: Warning: no data in tank) inside 
     441a DEBUG conditional, so that it would not cause HUGE log files to be 
     442generated under normal(HEAVY) operations where multiple tanks were 
     443not being fed data.  This fix was performed due to problems with a 
     444wave_server in Golden that was generating 4GB logfiles in a single day. 
     445DavidK 06/18/2001 
     446 
     447startstop.c (startstop_nt) 
     448Modified the code so that statmgr will always be started first (if present), and 
     449will wait a user defined number of seconds before starting any other modules  
     450(defaults to 1 second)  This was to repair an intermittent error where a module 
     451could be started, and die before statmgr was alive.  This prevented statmgr 
     452from sending a restart request, since the first heartbeat was lost. 
     453John Patton 6/28/2001 
     454 
     455localmag and gmew: 
     456Fixed the loop controls after a failed wave_server connection. PNL, 7/7/01 
     457 
     458startstop.c (startstop_solaris) 
     459Modified the code so that statmgr will always be started first (if present), and 
     460will wait a user defined number of seconds before starting any other modules  
     461(defaults to 1 second)  This was to repair an intermittent error where a module 
     462could be started, and die before statmgr was alive.  This prevented statmgr 
     463from sending a restart request, since the first heartbeat was lost.  Also  
     464modified code so that when startstop failed to start a module, it printed 
     465out helpful error messages, and exited cleanly. 
     466John Patton 7/16/2001 
     467 
     468gmew: 
     469Fixed bug that prevented XML files from being written. Pointers to EVENT and 
     470GMPARAMS structures were being passed into getGMFromTrace(); the GMPARAMS 
     471struct got corrupted as soon as getGMFromTrace() was entered - I don't know 
     472why. To fix it, I changed XMLDir, TempDir, and MappingFile from string arrays 
     473to string pointers on GMPARAMS. Then gm_config.c and gm_util.c were changed to 
     474support these string pointers. PNL, 7/18/01 
     475 
     476wave_viewer: Added logic to improve drawing, so that there are not so 
     477many artificial gaps.  Fixed bug in indexing logic that was causing 
     478datapoints to be shifted right and gaps to be added for data with 
     479sloppy timestamps.  New version is v1.24. 
     480DavidK 08/08/2001 
     481 
     482K2ew:   Station name remapping:  added new directive to the .d 
     483        file to allow the station name to be specified there. An 
     484        example directive is:  StationID LAX 
     485        The purpose is to rename the station if the K2's STNID needs 
     486        to be something different (for legacy data purposes). 
     4872001-03-22  Paul Friberg <p.friberg@isti.com> 
     488 
     489k2ew  Version 2.20:  Improved handling of resend 
     490         requests (more focus on oldest waiting packet); added commands 
     491         "MaxBlkResends", "MaxReqPending", "ResumeReqVal",  "WaitResendVal", 
     492         "RestartComm"; improved debug log output messages; added logging of 
     493         K2 channel names; changed "# of packets lost" value so that it is 
     494         only the total after a restart (to be consistent with the "# of 
     495         packets received OK" total); added "Program start time", "# of 
     496         packet retries", "Packet error rating" and "Time of last output 
     497         seq err" to the summary listings; added logging of "in-process" 
     498         summary listing at each status output interval. 
     4992001-07-22  Eric Thomas <e.thomas@isti.com> 
     500 
     501k2ew Version 2.22:  Changed default value for 'MaxReqPending' command 
     502         from 10 to 6 (as per recommendation of Dennis Pumphrey). 
     5032001-07-23  Eric Thomas <e.thomas@isti.com> 
     504 
     505k2ew Version 2.23:  Added "ChannelNames" and "InvPolFlags" parameters. 
     5062001-08-07  Eric Thomas <e.thomas@isti.com> 
     507 
     508localmag, gmew: 
     509Modified error code handling so that localmag no longer exits when it 
     510receives an error from the last wave server in its list.  Program will 
     511now continue even if there are NO AVAILABLE wave servers. DK 08/01/01 
     512 
     513trig2disk: 
     514Modified error code handling so that trig2disk no longer exits when it 
     515receives an error from a wave server in its list.  Program will 
     516now continue even if there are NO AVAILABLE wave servers.  This fix 
     517was not super-clean and may have unknowingly changed the behavior of 
     518handling other errors.  DK 08/01/01 
     519 
     520 
     521CHANGES TO CONFIGURATION FILES and DESCRIPTOR FILES: 
     522****************************************************  
     523scream2ew.d: 
     524 
     525Added optional command SleepInterval, to set the number of milliseconds scream2ew sleeps after each message processing loop, the default value is 100 ms. John Patton 8/6/2001 
     526 
     527eqparam2html:  Added WaveformLinks command, to allow the html links at 
     528the bottom of the eqparam2html page to be configurable via the config  
     529file. DK 12/20/00 
     530 
     531shakemapfeed.d: 
     532Added optional MappingFile command to support the new XML writer. 
     533PNL 3/22/2001 
     534 
     535k2ew: Program now optionally writes the entire K2 header to a disk file. 
     536Name of file is specified by a new optional config parameter named 
     537"HeaderFile".  WMK 5/22/01 
     538 
     539k2ew  Version 2.20:  Improved handling of resend 
     540         requests (more focus on oldest waiting packet); added commands 
     541         "MaxBlkResends", "MaxReqPending", "ResumeReqVal",  "WaitResendVal", 
     542         "RestartComm"; improved debug log output messages; added logging of 
     543         K2 channel names; changed "# of packets lost" value so that it is 
     544         only the total after a restart (to be consistent with the "# of 
     545         packets received OK" total); added "Program start time", "# of 
     546         packet retries", "Packet error rating" and "Time of last output 
     547         seq err" to the summary listings; added logging of "in-process" 
     548         summary listing at each status output interval. 
     5492001-07-22  Eric Thomas <e.thomas@isti.com> 
     550 
     551k2ew Version 2.23:  Added "ChannelNames" and "InvPolFlags" parameters. 
     5522001-08-07  Eric Thomas <e.thomas@isti.com> 
     553 
     554K2ew:   Station name remapping:  added new directive to the .d 
     555        file to allow the station name to be specified there. An 
     556        example directive is:  StationID LAX 
     557        The purpose is to rename the station if the K2's STNID needs 
     558        to be something different (for legacy data purposes). 
     5592001-03-22  Paul Friberg <p.friberg@isti.com> 
     560 
     561localmag: changed single transport ring to and input and an output ring. 
     562Added ability to read multiple getEventsFrom commands; fixed handling of 
     563wave_servers in traceSource command. PNL 6/10/01 
     564 
     565gmew: changed single transport ring to and input and an output ring. 
     566Added ability to read multiple getEventsFrom commands; fixed handling of 
     567wave_servers in traceSource command. PNL 6/10/01 
     568 
     569startstop_nt: Added optional command "statmgrDelay" to set the number of seconds startstop 
     570waits after starting statmgr (if present).  This command should be placed  
     571after the KillDelay command, and before the first Process command.   
     572John Patton 6/28/2001 
     573 
     574startstop_sol: Added optional command "statmgrDelay" to set the number of seconds startstop 
     575waits after starting statmgr (if present).  This command should be placed  
     576after the KillDelay command, and before the first Process command.   
     577John Patton 7/16/2001 
     578 
     579KNOWN BUGS or DEFICIENCIES: 
     580************************** 
     581Failure of automatic restarts just after Earthworm startup (rare): 
     582  Automatic restarts are accomplished by a coordinated effort of the 
     583statmgr and startstop processes. Statmgr should be the first module listed  
     584in startstop's configuration file in order for automatic restarts to work  
     585most effectively.   
     586  Statmgr learns each module's processid from its heartbeat message. If a module stops  
     587beating its heart, statmgr will issue a TYPE_RESTART message containing the processid 
     588of the module that died.  Startstop watches for these TYPE_RESTART messages; 
     589when it receives one, it finds that processid in its list of child processes, 
     590then attempts to restart it.  So statmgr needs to get at least one heartbeat 
     591for a module before it can send a TYPE_RESTART message that startstop will 
     592be able to use.  If statmgr is not started before all other modules, it could  
     593in rare cases miss the one and only heartbeat from a terminal module.  
     594It would then send a restart message with a null processid and startstop 
     595wouldn't be able to find the child in its list. The dead module would have 
     596to be restarted manually (with the command-line program "restart") before 
     597auto-restarts would be functional for that module.  LDD 6/18/2001 
     598NOTE: The error above is now corrected by changes made to startstop. 
     599JMP 7/16/23001 
     600 
     601In import/export modules, there is a mistake in the way they are compiled.   
     602They should be compiled with "VOLATILE STATIC"; ask Alex for details. 
     603 
     604In Windows NT, the time resolution of sleep_ew() is about 16 msec (one clock 
     605tick).  On Solaris, the resolution is about 10 msec.  This is a problem for  
     606ringtocoax, since packet delays need to be set to a few milliseconds. 
     607 
     608Automatic restarts of adsend (using the "restartMe" line in the descriptor 
     609file) can cause an NT system to hang. Therefore, you should never 
     610use the autorestart feature with adsend, but you should bring down 
     611the entire Earthworm system if adsend needs to be restarted. 
     612LDD 5/31/2000 Comments added to adsend.desc, but leave this warning here! 
     613 
     614statmgr: A space is needed between "tsec:" and the value.  
     615If it isn't there, things fail. (Alex) 
     616 
     617threads functions: The KillThread function on WindowsNT and Solaris 
     618terminate the thread without ensuring that no mutexes are held. If a thread 
     619holds a mutex when it dies, no other thread can get that mutex. PNL 1/12/2000 
     620 
     621carlsubtrig:  The system time must be set to GMT and ew_nt.cmd must have  
     622TZ=GMT for carlsubtrig to work.  Comments in ew_nt.cmd done 5/25/00. Barbara 
     623         
     624 
     625ew2seisvole: on NT, exits with horrible crash when system is stopped. 
     626 
     627 Wave_viewer will display fictitious 2 to 3 sample gaps when scrolling the  
     628display. 
     629 This does not happen all of the time and is only visible when there are less  
     630than 
     631 200 samples on the display (2 seconds of data for 100hz data.) DK 2000/06/01 
     632 
     633 libsrc/util/putaway.c: there is no include file for the putaway routines, 
     634  thus any errors in arguments passed to putaway routines are not checked 
     635  by the compiler.   PNL 7/10/2000 
     636 
     637NUMBER OF RINGS LIMITED ON SOLARIS: 
     638Under Solaris 2.6 (and probably other versions as well), the maximum number  
     639of shared memory segments is six. This means that on an out-of-the-box machine 
     640you can only configure six rings. If you try to configure more than that, you 
     641will see a cryptic message from tport_create about too many open files.  The 
     642fix to this problem is to add the following lines to the /etc/system 
     643file, and then reboot the system. 
     644 
     645 set shmsys:shminfo_shmmax = 4294967295 
     646 set shmsys:shminfo_shmmin = 1 
     647 set shmsys:shminfo_shmmni = 100 
     648 set shmsys:shminfo_shmseg = 20 
     649 set semsys:seminfo_semmns = 200 
     650 set semsys:seminfo_semmni = 70 
     651 
     652This allows for 20 rings. 
     653 
     654     Lucky Vidmar (7/6/2000) 
     655 
     656 
     657startstop_solaris: There MAY be a problem with the signal that  
     658startstop sends to modules during the shutdown sequence. The shutdown  
     659sequence is started (after typing "quit" to startstop or running "pau") 
     660by startstop placing a terminate message on all transport rings. Modules 
     661should see this message and start their own shutdown. After a configurable 
     662delay, startstop checks to see that all modules have exitted. Any that are  
     663still running are sent a signal to terminate them. Currently that signal 
     664is SIG_TERM. But since wave_serverV has a handler for SIG_TERM, wave_serverV 
     665sees that as essentially the same as a terminate message. So if wave_serverV 
     666is having problems completing its shutdown, SIG_TERM won't do anything. The 
     667result is that startstop may give up and exit, leaving wave_serverV running. 
     668If that happens, the operator will have to terminate wave_serverV by doing 
     669"kill -9 ". That may leave shared memory and semaphores 
     670stranded in the kernel: run the command "ipcs -a" to see. If necessary, 
     671the stranded shared memory and semaphores may be cleaned up with the 
     672ipcrc command; must be run as root; see the man page. 
     673This problem only exists on Solaris/Unix, not on WindowsNT. 
     674PNL, 10/4/2000 
     675 
     676libsrc/utils/kom.c: The comment above k_open() says that only one file can 
     677be open at a time. Yet the Kbuf array has slots for MAXBUF (currently 4) open 
     678files. Does this work, or is the comment to be taken at it's word? 
     679PNL 10/15/00 
     680 
     681libsrc/utils/site.c: The strings used for station, channel and network are 
     682required to be fixed length with trailing spaces added to short names. If 
     683the strings given to site_index do not have these trailing blanks, SCN names 
     684will not match. This is not documented anywhere.  PNL 10/15/00 
     685 
     686libsrc/utils/logit.c: logit_init() requires a module_id number, which it uses 
     687to construct the log file name. This is not helpful, since the module_id 
     688number is not meaningful to people. Worse, it requires that the config file be 
     689read and earthworm.d lookups be completed before logit calls can be made. Thus 
     690errors in the config file can only be reported to stderr or stdout instead of 
     691being saved in a file.  PNL 11/29/00 
     692 
     693TRACEBUF messages. 
     694The definition of `endtime' of the TRACEBUF message is not documented. 
     695Some programmers are taking it as the "expected start time of the next 
     696TRACEBUF packet (if the sample interval is uniform.)" The more accepted 
     697practice is that `endtime' is the time of the last sample of the current 
     698TRACEBUF packet; that is, one sample interval less than the expected 
     699start time of the next TRACEBUF messsage. Using this last definition, if a 
     700TRACEBUF packet has exactly one sample, then its starttime and endtime are 
     701the identical. Clearly this distinction needs to be documented. The file 
     702waveform_format (in the /home/earthworm/DOC directory) gives no specifics  
     703about start or end times.  PNL 1/24/01 
     704  
     705usnsn_loc2ew: 
     706Reads from stdin into a buffer, but never checks for overflowing the 
     707buffer. This is especially bad since usnsn_loc2ew is run under to Unix 
     708inetd daemon, so anyone how connects to the socket for usnsn_loc2ew can 
     709cause it to crash, or worse.  PNL, 5/2/01 
     710 
     711usnsn_loc2trig: 
     712Reads a travel time table to estimate P and S arrivals. To pick a time before 
     713the P arrival for a given station, usnsn_loc2trig looks in the table for the 
     714next nearer distance and the next shallower depth (relative to the event 
     715location) to get the trigger start time for that station. It assumes that this 
     716time will be earlier than the P arrival time of the the event distance and 
     717depth. However, for most of the traveltime table, travel time decreases with 
     718increasing depth. For most of the table, the increase in time with distance 
     719makes up for the decrease in time with depth. But for distances beyond 165 
     720degrees this is not true: the time selected by usnsn_loc2trig will be AFTER 
     721the P arrival time, and that part of the trace will be missed. The same logic 
     722is applied for determining the end-of-trace time, suing the S 
     723wave. usnsn_loc2trig uses the next more distance and next deeper time for S 
     724arrival to get this end of time. Again, beyond 165 degrees, the assumption 
     725here is not valid. The trace end time will be earlier than the S arrival and 
     726the trace will be cut off too early.  PNL 5/2/01 
     727 
     728libsrc/utils/parse_usnsn: 
     729Has a memory leak: whenever it returns early with an error condition, the 
     730allocated memory in ParseNSNMsg is leaked. Since the size of the arrays 
     731is fixed (hard-coded) this memory leak could easily be avoided by simply 
     732declaring the array instead of allocating it. 
     733Also, the loop for parsing phase lines counts up to the number of "associated" 
     734phases as read from teh "nph" line of the message. Since this loop does not 
     735skip over phases that are marked as unused, the loop may end prematurely if 
     736any phases are so marked.  PNL 5/9/01 
     737 
     738sm_ew2ora: 
     739There is a bug in sm_ew2ora that involves having multipe time intervals for 
     740components and channels.  If a strong motion message containing information 
     741for a channel that the DB has never seen before, is loaded into the DB, and 
     742then later another message for the same channel with an earlier timestamp 
     743is loaded, the load of the second message will fail, due to problems with 
     744overlapping time intervals, and the call that sm_ew2ora uses to create 
     745those time intervals.  This problem only affects stations that were 
     746not previously loaded via one of the station loader programs stalist*2ora, 
     747and only when receiving SM data that is timestamped with a time that is 
     748prior to the original time for that channel.  The bug lies in the logic 
     749of ewdb_api_PutSMMessage(), and not in the underlying code. 
     750Davidk 05/25/01 
     751 
     752A change was made to ewdb_api_PutSMMessage() that dramatically affects 
     753sm_ew2ora.  Please see the note about that function.  Davidk 2001/07/26  
     754 
     755 
     756OTHER: 
     757************************** 
     758Earthworm DBMS Applications(oracle): linking: 
     759In order to build earthworm DBMS applications(ON A SOLARIS SYSTEM), a 
     760change must be made to an Oracle makefile (/opt/oracle/rdbms/lib/env_rdbms.mk) 
     761 
     762Go to the bottom of the file and comment out all lines in the file starting 
     763with the $(LIBCLNTSH) target definition, so that the file looks as below. 
     764The example provided is from Oracle8. 
     765 
     766#$(LIBCLNTSH): \ 
     767#            ${ORACLE_HOME}/lib/libclient.a ${ORACLE_HOME}/lib/libsql.a \ 
     768#            ${ORACLE_HOME}/lib/libnetv2.a ${ORACLE_HOME}/lib/libnttcp.a \ 
     769#            ${ORACLE_HOME}/lib/libnetwork.a ${ORACLE_HOME}/lib/libncr.a \ 
     770#            ${ORACLE_HOME}/lib/libcommon.a ${ORACLE_HOME}/lib/libgeneric.a \ 
     771#            ${ORACLE_HOME}/lib/libmm.a ${ORACLE_HOME}/rdbms/lib/xaondy.o \ 
     772#            ${ORACLE_HOME}/lib/libnlsrtl3.a ${ORACLE_HOME}/lib/libcore4.a \ 
     773#            ${ORACLE_HOME}/lib/libepc.a 
     774# $(SILENT)$(ECHO) "Building client shared library libclntsh.so ..." 
     775# $(SILENT)$(ECHO) "Call script $$ORACLE_HOME/bin/genclntsh ..." 
     776# $(GENCLNTSH) 
     777# $(SILENT)$(ECHO) "Built $$ORACLE_HOME/lib/libclntsh.so ... DONE" 
     778 
     779Davidk 2001/05/24 
     780}}}