Changes between Initial Version and Version 1 of v7.1

01/17/12 12:51:56 (10 years ago)



  • v7.1

    v1 v1  
     3Earthworm Release Notes V7.1 
     5(April 5, 2007) 
     6New Modules 
     7Modifications/ Bug Fixes to Existing Modules  
     8Changes To Configuration Files And Descriptor Files 
     9Known Bugs  
     10Known Deficiencies 
     13Release Notes:  Earthworm Version "working" 
     14Cleaned out after release of v7.0 on 6/15/2006 
     15This release is EW V7.1 and has all of 7.0 SCNL upgrades. 
     17EW v7.1 released on April 5, 2007 
     19NEW MODULES: 
     22Added data_exchange/pickwasher, a prerequisite for glass. 
     23Source from Hydra project, tested and documented by Mitch,  
     24committed and makefiles cleaned up by Stefan. Makefiles for  
     25Solaris and Windows only at this point.  
     26Stefan Lisowski 20070403  
     28Created a 'params' directory at the root level of Earthworm 
     29containing the .d and .desc files for all modules. Each  
     30release of earthworm will require updating these files from 
     31the .src tree.  
     32Stefan Lisowski 200704  
     34Added in MAC OS X flags to compile on Intel and PPC chip 
     35sets. This works for all my test modules except, you 
     36guessed it, hyp2000_mgr which doesn't compile because 
     37of GNU g77 or gfortran issues. 
     38One thing you must do for Mac OS X is to increase 
     39the shared memory segments by adding in a /etc/sysctl.conf 
     40with these settings: 
     46To find out the default settings type this: 
     47sysctl -a | grep shm 
     48This work was done jointly by: 
     49Paul Friberg ISTI and Rae Yip (Caltech) 2007/03/28 
     51Added psn4putaway for PSN4 format  to libsrc/util for 
     52windows only, and added it to docs, trig2disk and 
     53waveman2disk .d files and makefile.nt's. 
     54Paul Friberg 2007/03/05 
     56Added ws2ew and psnadsend for windows for webtronics 
     57digitzers. These 2 modules were put in data_sources. 
     58Paul Friberg 2007/03/04 
     60tankplayer_tools/ms2tb - miniSEED to tracebuf converter 
     61for playing back miniSEED format time-series. 
     62Paul Friberg 2006/08/08 
     64condense_logo - Reads messages from a list of logos from one  
     65transport ring and writes them to another ring using its own  
     66installation and module id in the logo. Menlo Park 
     67contribution. (included/tested by Stefan 2006/11/22) 
     73q3302ew - new version based on lib330! This one 
     74is a vast improvement over the one based on Mountainair. 
     75Hal Schechner 2007/04/04 
     77startstop - all flavors, modified MAX_CHILD to 200 (was set 
     78to 100, probably to limit process usage or memory usage 
     79by startstop in the early days).  
     80Paul Friberg 2007/04/03 
     82localmag - 2.1.1 
     83INGV contributed a feature to write EVENT files in  
     84SHAKEMAP XML format to the SAC output directory. This optional feature 
     85is only usable when you also use the saveTrace option. 
     86Contributed by Matteo Quintiliani and Marco Oliveri of INGV. 
     87Integrated in with current version by Paul Friberg 2007/03/29 
     90Earthworm Class March 2007, added statistics flag to sniffwave 
     91y, n, or s options are now handled, tport function changed 
     94Many warnings under windows with MS 2005 compiler were 
     95fixed relating to time related variables using long instead 
     96of time_t. This had segmentation violations under some 
     97programs so we decided to fix all of the warnings. 
     98Here is the list: 
     99tankplayer, wave_serverV,condenselogo, ringdup, ws_clientIIx.h, 
     100file2ew, ringtocoax and II, config_ws, gaplist, arc2trig, 
     101localmag, gmew, pkfilter, statrigfilter 
     102Paul Friberg 2007/02/23 
     104archiving/trig2disk archiving/waveman2disk Solaris only 
     105Added Richard Luckett's support for writing miniseed format. 
     106This added Chad Trabant's libmseed to libsrc/util. Note 
     107an older version of this library is hiding in  
     108data_exchange/slink2ew/libslink as well. New stuff didn't 
     109seem to be directly backward compatible. At some point this 
     110shoudl be reconciled so we only have one libmseed!! 
     111Stefan Lisowski 2002/02/20 
     113diagnostic_tools/template - fixed a longstanding bug 
     114in template where long was used as the time type instead 
     115of time_t. 
     116Paul Friberg 2007/02/20 
     118lockfile_ew.c and lockfile.c added to libsrc for file locking 
     119for earthworm. See the lockfile.h in the include directory for 
     120the function declarations. Also, see the updated diagnostic_tools/template.c 
     121for an example of its use. The intent is to use this for 
     122startstop which should NEVER have more than one instance 
     123running per startstop_*.d file! This lockfile implementation 
     124works for both Windows, Linux, and Solaris (tested on each) 
     125Paul Friberg 2007/02/20 
     128scream2ew - the first call to logit_init needs to have 1 as 4th argument not the undefined config.writelog, otherwise the second call doesn't work. 
     129Richard Luckett 
     130committed to CVS by stefan 2007/02/19 
     132archiving/wave_serverV Linux patch 
     133The following patch is for wave_serverV.c to enable it to be compiled 
     134under linux (specifically gcc 3.3.6 doesn't seem to recognise the "#else 
     135if defined(...)" construct properly, at least with the default CFLAGS. 
     136Matthew van de Werken 
     137committed to CVS by stefan 2007/02/19 
     140I believe I have discovered a bug in earthworm 7.0. It seems there 
     141is now a 2-byte field called version in the trace header. This is 
     142never set up in the fir module, so that it outputs packets to the 
     143transport ring with no valid information in this field. I noticed 
     144this when I set up a carlstatrig module which kept crashing when 
     145being fed with data from fir - carlstatrig checks the trace header 
     146for a valid version. I solved the problem by adding the lines 
     147outHead->version[0] = TRACE2_VERSION0;  
     148outHead->version[1] = TRACE2_VERSION1; 
     149to firfilt.c at the point where data is being copied into the 
     150outgoing packet. 
     151David Scott. 2006/9/22 (commited to CVS 2006/12/30 stefan) 
     156linux makefile fixes per david J Scott 20060720  
     157(commited to CVS 2006/12/30 stefan) 
     159libsrc/qlib2 - an old (10 year) version of qlib2 was in data_sources/q2ew 
     160We now place qlib2 in libsrc. I populated directory libsrc/qlib2 
     161with the qlib2 from qlib2.tar.2006.313.gz downloaded from 
     162 and commited the src code 
     163to CVS 
     164Ilya Dricker 2006/11/16 
     168Fix for linux compilation. 
     169Laurence Withers, GSL 2006/10/23 
     172Michelle Kline of Utah added in STAtime as a configurable 
     173value (was statically set to 1 in the C code). This configuration 
     174is backward compatible to the old version and is an optional 
     175parameter. Michelle kindly updated the documentation too. 
     176committed to CVS 2006/10/20 Paul Friberg 
     179Michael Lofgren of CSIRO fixed a log message bug. 
     180commited to CVS 2006/10/18 Paul Friberg 
     183Changed gap- binning boundaries from 1.0 to 1.1 sec so that gaps from 
     1841 second timing errors will show up in a different bin from gaps caused 
     185by 1 missed packet (for most digital dataloggers). 2007/01/10 Lynn Dietz 
     188I grabbed Fred Klein's newest version of hypoinverse where he   
     189added the processing domain and version feature. The new command is:  
     190VER 'NC' '01'   / Processing domain and version 
     191Hypoinverse puts these two 2-character strings to the end of summary  
     192cards and at the top of print files. These six source files were changed: hycmd.for hysum.for hystl.for hyp.for hybda.for  
     194committed to CVS 2006/10/30 Lynn Dietz 
     195PS: someone needs to change hystl.fpp for Linux!! 
     196Incorporated Fred Klein's 11/09/2006 version of hyp2000 in which he changed 
     197the magnitude weight calculation from the sum of weights (float) to the 
     198count (int) of weighted station magnitudes. 
     199Committed to CVS 2007/1/4 Lynn Dietz 
     200Incorporated Fred Klein's 2/2007 version 1.1 of hyp2000. In this version 
     201Fred added the option to fix origin time (changes to, hyloc.for, 
     202hyp.for, hyphs.for) and did some minor tweaks to make the g77 compiler 
     203happy (changes to hydelt.f, hyedit.f, hyinp.for, hystl.for). 
     204I also removed a bunch of source files and .com files which are not 
     205used in either hyp2000 or hyp2000_mgr under Earthworm. 
     206Committed to CVS 2007/03/02 Lynn Dietz 
     207Incorporated Fred Klein's 3/21/2007 bug fixes. Minor logic changes in 
     208hyphs.for and hyloc.for related to fixing origin time or depth (which 
     209can now be fixed at 0.0). The program now does what the documentation 
     210says it will.  Committed to CVS 2007/03/23 Lynn Dietz 
     212hyp2000_mgr - windows issue 
     213The ew7.0 version of this for windows did not work properly 
     214due to a bad pass by value in the link to the fortran code. 
     215Fixed 2006/10/16 Paul Friberg 
     218David Scott of the BGS upgrade this to be SCNL compliant. Thanks! 
     219commited to CVS 2006/10/13 Paul Friberg 
     222Removed an fprint() from EncodeStatus() which was causing a partially 
     223completed EW status message to go to stderr after info from each 
     224child process was added to the status.  I think this was a debugging 
     225leftover. Lynn Dietz 2006/09/22 
     228Modified for TYPE_GCFSOH_PACKET output of SOH packets for SNW monitoring 
     229of state of health packets from guralps DM24. Same for scream2ew 
     230Paul Friberg, 2006/09/01 
     231Modified to correctly put in the TRACEBUF2 version  member values 
     232Paul Friberg, 2006/11/08 
     235Modified to correctly put in the TRACEBUF2 version  member values 
     236Ported to and tested on Linux (added makefile.ux support) 
     237Ilya Dricker, 2006/11/21 
     240Modified for TYPE_GCFSOH_PACKET output of SOH packets. 
     241Paul Friberg, 2006/09/01 
     242Laurence Withers, GSL 2006/10/23 provided linux compilation fix 
     244grab_bag/pick_recorder - made it SCNL compliant and added 
     245the app to the documentation. 
     246Paul Friberg 2006/09/01 
     248tankplayer_tools/sac2tb - fixed a minor bug in the TRACE2_HEADER that 
     249overwrote the version element of the trace header. This bug caused 
     250tankplayer to barf. 
     251Paul Friberg 2006/08/08 
     253heli_ewII -- heli_ewII.h 
     254samp_sec now a float instead of a long to accommodate sample rates  
     255less than 1 Hz   
     256Stefan Lisowski 20060726 
     258scn2scnl -- to_trace_scnl.c/ scn_convert.c 
     259I've fixed scn2scnl so that it will truncate invalid-length SCNL strings 
     260and prevent strings from overrunning their bounds.  I've attached the 
     261files that were changed.  Both of them live in 
     263to_trace_scnl.c contains the fix.  The function to_trace_scnl() will now 
     264force the last character of each SCNL buffer to be null.  This is needed 
     265because strncpy will not append a null character if the source string used 
     266during copies is as long or longer than the number of characters to count. 
     267scn_convert.c has a minor fix where some local variables in s2s_com() were 
     268declared twice.  I removed the redundant declaration to prevent any future 
     270Mark Morrison Mon, 26 Jun 2006 15:57:19 -0600 (MDT) 
     272sniffwave -- sniffwave.c 
     273additional significant digits for sample rates < 1hz 
     274Stefan Lisowski 20060726 
     276tankplayer -- tankplayer.c 
     277SendLate command in tankplayer.d did not appear to be working.  
     278The problem is that while tankplayer will play back 3 waveform types 
     279(TypeADBuf, TypeTraceBuf, TypeTraceBuf2) it would only set the time  
     280if the type was one of the first two. Should now work for TraceBuf2 as  
     282John Patton (Tested, compiled and added to CVS by Stefan 20060630) 
     284wave_serverV -- wave_serverV.c 
     285The problem was that the size of the tankfile is not an integer multiple  
     286of the packet size and so occasionally there is a mess up at the end of  
     287the file (mine were 3 in this example).  The result was that the data  
     288requested from the server was not returned and an event file failed to  
     289be written. 
     290[Fix was to add an else to wave_serverV_config] 
     291Richard R Luckett, BGS (Tested, compiled and added to CVS by Stefan 20060711) 
     292Laurence Withers, GSL provided a fix for linux 10/23/2006 
     294Signals were not being handled at all under linux (which caused SIGPIPE signals 
     295to take down the server).  I changed some ifdefs around so that the solaris 
     296signal handling is compiled in under linux as well. 
     297Hal Schechner 
     299Modified behavior so that client socket-disconnects between requests are no 
     300longer recorded/logged as socket-errors, even when the server thinks the  
     301socket was not closed cleanly.  This should get rid of messages like: 
     302>>>> 20060210_UTC_08:51:22 Wave_serverV:ListenForMsg: Bad socket read.  iReadResult = -1 
     303which cause people to think an error has occurred. 
     304Updated server_thread.c timestamp. 
     305David Kragness 2006/10/09 
     308ws_clientIIoc / ws_clientII.h 
     309Upped the max menu str len (as defined by wsREPLEN) so that it is large 
     310enough to handle a 5000+ SCNL menu from a single wave_server. 
     311Downside is that it must temporarily allocate 400kb instead of 80kb when 
     312parsing a menu.  This seemed like a reasonable tradeoff. 
     313Added protection against oversized SCNL fields in wave server menus: 
     314increased the size of the buffers used to capture SCNL values from the 
     315menu, in order to reduce the chance of clobbering memory if a channel 
     316with SCNL longer than the spec'd tracebuf2 sizes is found in a menu. 
     317Fixed a bug where wsGetTraceAsciiL() was returning WS_ERR_NONE even  
     318though there was a warning flag (with a WS_WRN_FLAGGED) return code 
     319from wsParseAsciiHeaderReplyL(). 
     320Added a work around for handling flagged wave_server returns where the  
     321datatype does not get properly filled in. 
     322DK 061906 
     325Modified to read per-channel parameters from more than one "StaFile". 
     326Final station list is sorted after all station files are input. 
     327Lynn Dietz 2006/09/20 
     328Modified to ignore channels in the "StaFile" whose pick flags are 
     329set to 0. Previously, those lines ended up in total count of channels. 
     330Lynn Dietz 2007/01/09 
     333Modified to be able to process multiple "StaFile" commands for setting 
     334per-channel picking parameters.   
     335Lynn Dietz 2006/09/20 
     336Changed name of index file to pick_ew_XXX.ndx where XXX is the moduleid 
     337of the current instance of pick_ew. This allows multiple instances of 
     338pick_ew to run on the same computer without competing for the same 
     339index file.    
     340Lynn Dietz 2006/11/16 
     343Modified to accept sample rates >= 1000hz. 
     344David Kragness  2006/10/09 
     345Modified format of left-hand column so that channel naming and other  
     346information is more compact. 
     347David Kragness  2006/10/26 
     350Now if you give station, channel, network and location codes on command line, 
     351sniffwave will sniff only for TYPE_TRACEBUF2 and TYPE_TRACE2_COMP_UA 
     352packets. Or if you give station, channel and network, then sniffwave will 
     353sniff only for TYPE_TRACEBUF or TYPE_TRACE_COMP_UA. This gives you more 
     354control over what sniffwave looks for. However, it means you can no long sniff 
     355for both TYPE_TRACEBUF and TYPE_TRACEBUF2 packets at the same time with a 
     356single instance of sniffwave. 
     357Pete Lombard 2006/12/28 
     360Now can perform complete mapping of SCNL names to SCN names, using 
     361configuration commands similar to those of scn2scnl. This is in place of the 
     362all-or-nothing approach of the previous scnl2scn. 
     363Pete Lombard 2006/12/28 
     366Fixed bug in scnl2scn.c: forgot to sort the explicit list. 
     367Added Debug option to log the configured mapping as well as logging how it 
     368maps (or not) each SCNL it sees. Very verbose, so run it with Debug on only as 
     369long as you need it. 
     370Pete Lombard 2007/01/17 
     373Incorporated Paul Whitmore's most recent code for processing tide gauge 
     374data from Nanometrics serial data streams. Paul added 5 new arguments 
     375to his "RequestChannel" command. See sample .d file for details. 
     376Lynn Dietz 2007/02/09 
     379Added a sanity check on number of samples in a packet. Packets with 
     380nsamp <= 0 are rejected.   
     381Modified samplerate comparison to allow for a bit of slop before  
     382declaring that a samplerate has "changed." This is to allow for the  
     383case where a datasource is reporting the actual sample rate instead  
     384of nominal sample rate.   
     385Re-worded the logic of the if() statements which limit the logging  
     386of bad packets and warnings. 
     387Lynn Dietz 2007/02/14 
     394Now requires commands to specify the mapping from SCNL to SCN. The commands 
     395are very similar to those used by scn2scnl. See the comments in scnl2scn.d 
     396Pete Lombard 2006/12/28 
     399Added Debug option to log the configured mapping as well as logging how it 
     400maps (or not) each SCNL it sees. Very verbose, so run it with Debug on only as 
     401long as you need it. 
     402Pete Lombard 2007/01/17 
     404KNOWN BUGS: 
     408liss2ew has been observed intermittantly producing malformed 
     409TRACE_BUF messages.  Currently the conditions for causing this problem 
     410are unknown.  Due to this, liss2ew should be treated as suspect.  Use at 
     411your own risk.  JMP 6-18-2003 
     414k2ew uses the k2hdr.rwParms.misc.channel_bitmap parameter to decide 
     415which channels it will see as streams from the K2.  This is actually the 
     416parameter which the K2 uses to decide which channels to record in an event 
     417file (see K2's  command).  The K2's  is the parameter 
     418that shows which channels the K2 is streaming out.  This is the parameter 
     419that k2ew should be using to decide what data it will see.  The big problem 
     420is that none of the header files from Kinemetrics (nkwhdrs.h) seem to 
     421show this parameter anywhere. This issue is only a problem for those folks 
     422who want to record more channels on the K2 than they want to stream continuously. 
     423Terry Dye (Univ of Utah) discovered this problem when trying to stream only 
     4243 channels of a 12 channel K2.  LDD 4/11/2002    FIXED PNL, 6/9/03 
     428it occasionally sends the following error to statmgr: 
     429UTC_Thu Sep 06 03:30:14 2001  WSV1/wave_serverV_nano ReadBlockData 
     430failed for tank [z:\nano57.tnk], with offset[999908] and record 
     431size[64]! errno[0] Mail sent. 
     432The nominal tank size is 1 megabyte, and the actual tank size is 999908. 
     433It looks like waveserver is trying to read off the end of the tank. 
     434WMK 9/6/01 
     437appears not to reply to requests for a single sample of data. I noticed 
     438when testing wave_viewer, that if the start time and end time of a request were 
     439equal (in which case there should be one sample of data) then wave_serverV did 
     440not reply to the request (ASCII request) at all. No Data, No Flags, No Reply, 
     441No Nothing.  It needs to issue a reply to every request. 
     442DavidK 09/25/01 
     445Wave server appears to be limited (on 32-bit systems) to 1GB tank sizes. 
     446A bug (a signed integer overflow of tmpoE at Line 1155 of  
     447serve_trace.c  (LocateRoughOffset())) 
     448prevents data retrieval from the tank under certain conditions when the 
     449tank size exceeds 1 GB. 
     450DavidK & PNL 09/27/04 
     452Automatic restarts of adsend (using the "restartMe" line in the descriptor 
     453file) can cause an NT system to hang. Therefore, you should never 
     454use the autorestart feature with adsend, but you should bring down 
     455the entire Earthworm system if adsend needs to be restarted. 
     456LDD 5/31/2000 Comments added to adsend.desc, but leave this warning here! 
     458libsrc/utils/site.c: The strings used for station, channel and network are 
     459required to be fixed length with trailing spaces added to short names. If 
     460the strings given to site_index do not have these trailing blanks, SCN names 
     461will not match. This is not documented anywhere.  PNL 10/15/00 
     463socket_ew: (libsrc/util/socket_ew_common.c libsrc/solaris/socket_ew.c 
     464    libsrc/winnt/socket_ew.c include/socket_ew.h) 
     465Fixed a bug in the connect_ew function(). 
     466When run in non-blocking mode (clients connecting to 
     467a server - using a timeout value), there was a bug in 
     468the connection code(discovered on Solaris) that caused 
     469the function to return a timeout-error when there was 
     470any kind of error during connection. 
     471The bug was discovered when connecting to a non-existent socket. 
     472When trying to connect to a non-existent wave_server on a machine, 
     473the underlying socket library was returning a Connection-Refused error, 
     474but the socket_ew library was passing back a timeout error. 
     476The change only applies when a socket-error occurs while the function is 
     477waiting for the connect to happen.  The instance where you will most-likely 
     478see a difference, is when you try connecting to a non-existent socket. 
     479Previously the function would return TIMEOUT, now it will return 
     480connection REFUSED. 
     482Added a new function: socketSetError_ew(), 
     483and defined a new socket_ew return code: CONNREFUSED_EW. 
     484DK 2003/02/04 
     487There is a bug in sm_ew2ora that involves having multipe time intervals for 
     488components and channels.  If a strong motion message containing information 
     489for a channel that the DB has never seen before is loaded into the DB, and 
     490then later another message for the same channel with an earlier timestamp 
     491is loaded, the load of the second message will fail, due to problems with 
     492overlapping time intervals, and the call that sm_ew2ora uses to create 
     493those time intervals.  This problem only affects stations that were 
     494not previously loaded via one of the station loader programs stalist*2ora, 
     495and only when receiving SM data that is timestamped with a time that is 
     496prior to the original time for that channel.  The bug lies in the logic 
     497of ewdb_api_PutSMMessage(), and not in the underlying code. 
     498Davidk 05/25/01 
     500A change was made to ewdb_api_PutSMMessage() that dramatically affects 
     501sm_ew2ora.  Please see the note about that function.  Davidk 2001/07/26 
     503ewdb_api_CreateWaveform()  (ewdb_internal_CreateSnippet.c 
     504                    ewdb_internal_CreateWaveformDesc.c) 
     505Added a call to release the cursors used by the internal functions, when they 
     506fail.  Fixes a bug which resulted in a DB cursor leak when a call to stuff 
     507a snippet into the DB failed. 
     508DK 2003/02/04 
     5111) Added a new function logit_core() 
     512int logit_core( char *flag, char *format, va_list ap); 
     513This function is the same as logit(), except that it takes a va_list argument 
     514for the variable length parameter instead of '...', and it has an int 
     515return value. 
     516This function can be called by other functions that receive a '...' variable 
     517argument list, where as logit() cannot.  logit_core() is to logit() 
     518what vsprintf() is to sprintf(). 
     5202) Moved all of the functionality in logit() to logit_core(), and modify 
     521logit to call logit_core(). 
     5233)  Added a new function get_prog_name2(), as an intended replacement 
     524of get_prog_name().  get_prog_name2() includes an additional 
     525parameter (the buffer length of the output buffer). 
     5274)  Modified logit_init() to use get_prog_name2() instead of get_prog_name() 
     529All four(4) of these changes should be backwards compatible with all existing 
     530earthworm code, and the modified logit.c has already been tested with several 
     531earthworm modules. 
     536Added new function ewdb_api_GetEventSummaryInfo() to retrieve summary 
     537information for an event(including the preferred szSource and szSourceEventID 
     538of the event).   011904 DK 
     544k2ew: Kinemetrics control software has been modified to configure location 
     545codes inside the K2 itself (in previously unused space). k2ew has not yet 
     546been modified to read these location codes from the K2 header. For the 
     547time-being, location codes must be set with the "LocationNames" command 
     548in the config file.  Lynn Dietz 2007/02/09 
     551In Windows NT, the time resolution of sleep_ew() is about 16 msec (one clock 
     552tick).  On Solaris, the resolution is about 10 msec.  This is a problem for 
     553ringtocoax, since packet delays need to be set to a few milliseconds. 
     555statmgr: A space is needed between "tsec:" and the value. 
     556If it isn't there, things fail. Artifcat of the kom routines. (Alex) 
     558threads functions: The KillThread function on WindowsNT and Solaris 
     559terminate the thread without ensuring that no mutexes are held. If a thread 
     560holds a mutex when it dies, no other thread can get that mutex. PNL 1/12/2000 
     563The system time must be set to GMT and ew_nt.cmd must have 
     564TZ=GMT for carlsubtrig to work.  Comments in ew_nt.cmd done 5/25/00. Barbara 
     567needs GMT set on the system 
     570on NT, exits with horrible crash when system is stopped. 
     573Under Solaris 2.6 (and probably other versions as well), the maximum number 
     574of shared memory segments is six. This means that on an out-of-the-box machine 
     575you can only configure six rings. If you try to configure more than that, you 
     576will see a cryptic message from tport_create about too many open files.  The 
     577fix to this problem is to add the following lines to the /etc/system 
     578file, and then reboot the system. 
     580set shmsys:shminfo_shmmax = 4294967295 
     581set shmsys:shminfo_shmmin = 1 
     582set shmsys:shminfo_shmmni = 100 
     583set shmsys:shminfo_shmseg = 20 
     584set semsys:seminfo_semmns = 200 
     585set semsys:seminfo_semmni = 70 
     587This allows for 20 rings. 
     589Lucky Vidmar (7/6/2000) 
     592Fixed bug in call to logit_init(). 
     593The program was printing error messages: 
     594Invalid arguments passed in. 
     595Call to get_prog_name failed. 
     596WARNING: Call logit_init before logit. 
     599There MAY be a problem with the signal that 
     600startstop sends to modules during the shutdown sequence. The shutdown 
     601sequence is started (after typing "quit" to startstop or running "pau") 
     602by startstop placing a terminate message on all transport rings. Modules 
     603should see this message and start their own shutdown. After a configurable 
     604delay, startstop checks to see that all modules have exitted. Any that are 
     605still running are sent a signal to terminate them. Currently that signal 
     606is SIG_TERM. But since wave_serverV has a handler for SIG_TERM, wave_serverV 
     607sees that as essentially the same as a terminate message. So if wave_serverV 
     608is having problems completing its shutdown, SIG_TERM won't do anything. The 
     609result is that startstop may give up and exit, leaving wave_serverV running. 
     610If that happens, the operator will have to terminate wave_serverV by doing 
     611"kill -9 ". That may leave shared memory and semaphores 
     612stranded in the kernel: run the command "ipcs -a" to see. If necessary, 
     613the stranded shared memory and semaphores may be cleaned up with the 
     614ipcrc command; must be run as root; see the man page. 
     615This problem only exists on Solaris/Unix, not on WindowsNT. 
     616PNL, 10/4/2000 
     618libsrc/utils/kom.c:  fix comment in k_open() 
     620The comment above k_open() says that only one file can 
     621be open at a time. Yet the Kbuf array has slots for MAXBUF (currently 4) open 
     622files. Does this work, or is the comment to be taken at it's word? 
     623PNL 10/15/00 
     625libsrc/utils/logit.c: logit_init() requires a module_id number, which it uses 
     626to construct the log file name. This is not helpful, since the module_id 
     627number is not meaningful to people. Worse, it requires that the config file be 
     628read and earthworm.d lookups be completed before logit calls can be made. Thus 
     629errors in the config file can only be reported to stderr or stdout instead of 
     630being saved in a file.  PNL 11/29/00 
     632libsrc/util/k2evt2ew.c: This library supports a maximum EVT data size 
     633of 800000 samples per channel per EVT file.  This value is hardcoded 
     634as MAXTRACELTH in include/k2evt2ew.h.  k2evt2ew() will return a warning 
     635if the EVT file exceeds this size, and process as much as the EVT file 
     636as the hardcoded limit allows. 
     637DK 2003/01/18 
     639import_ida:  Modified to build under WIN32(#ifdef'd a couple of includes 
     640and modified the NT makefiles.)  (saved under tag HYDRA_V1-20) 
     641Modified for SCNL and Tracebuf2. 
     642DK 2005/04/22 
     645TRACEBUF messages. 
     646The definition of `endtime' of the TRACEBUF message is not documented. 
     647Some programmers are taking it as the "expected start time of the next 
     648TRACEBUF packet (if the sample interval is uniform.)" The more accepted 
     649practice is that `endtime' is the time of the last sample of the current 
     650TRACEBUF packet; that is, one sample interval less than the expected 
     651start time of the next TRACEBUF messsage. Using this last definition, if a 
     652TRACEBUF packet has exactly one sample, then its starttime and endtime are 
     653the identical. Clearly this distinction needs to be documented. The file 
     654waveform_format (in the /home/earthworm/DOC directory) gives no specifics 
     655about start or end times.  PNL 1/24/01