Custom Query (541 matches)

Filters
 
Or
 
  
 
Columns

Show under each result:


Results (34 - 36 of 541)

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
Ticket Resolution Summary Owner Reporter
#42 fixed add Carol Bryan's rsam and ssam to Contrib build paulf paulf
Description

The USGS wanted these recorded somewhere. They differ from the ones in the official distro in that they write the rsam and ssam to disk.

#43 fixed wave_severV fix for end of tank reads paulf paulf
Description

As reported on the EW List, I think there is a bug in wave_serverV code. I don't have my machine setup to access the current EW repository, and don't think I have the latest code (although I'm guessing the code section in question hasn't changed).

I think the source of the bug is a bad Offset pointer to ReadBlockData?() in LocateExactOffset?() for a FLAG_R search. It looks like it's possible to have LocatreRoughOffset?() return a record pointer to the end of the tank for a FLAG_R search. When the time for this record is prior to the search time, it's possible for that pointer to be passed directly into ReadBlockData?().

The problem lies just above the last call to ReadBlockData?() in LocateExactOffset?() in serve_trace.c. In the version of the code I have, it's ~ line 1023

A fix would be to wrap the current offset if it is >= the tanksize, before adjusting the temp offset.

Added code for the fix is highlighted in bold below (tagged with DK 20100311).

Like I said above, I don't have my machine configured to access the EW code repository, and I don't have the facilities to test the fix. Could anyone else test and integrate this fix?

-david

/************** CODE SNIPPET  ***********/
  else  /*  flag == FLAG_R */
  {
    long int tmp = off-rsz;

    if(tmp < 0)
      tmp+=tsz;

    if ( ReadBlockData(tfp, tmp, (long int) sizeof(TRACE2_HEADER),
                       (char*) &trace_h ) != R_DONE )
    {
      strncpy(szFileFunction,"ReadBlockData",sizeof(szFileFunction));
      szFileFunction[sizeof(szFileFunction)]= 0;
      iFileOffset     = tmp;
      iFileBlockSize  = sizeof(TRACE2_HEADER);
      szFileTankName  = t->tankName;   /* don't copy just point */
      goto ReadBlockDataFailed;
    }
    while (trace_h.starttime > reqt)  /* if reqt is to the left keep going */
    {
      off=tmp;
      tmp-=rsz;
      DFIP+=rsz;
      if(DFIP <= 0 || DFIP >= tsz)
      {
        logit("t","Failed DFIP comparison #3\n");
        goto OHCRAP;
      }

      /* for the left boundary, set off = 0 if off == tsz */
      if ( tmp < 0 )
        tmp += tsz;
     
      if ( ReadBlockData( tfp, tmp, (long int) sizeof(TRACE2_HEADER),
                          (char*) &trace_h ) != R_DONE )
      {
        strncpy(szFileFunction,"ReadBlockData",sizeof(szFileFunction));
        szFileFunction[sizeof(szFileFunction)]= 0;
        iFileOffset     = tmp;
        iFileBlockSize  = sizeof(TRACE2_HEADER);
        szFileTankName  = t->tankName;   /* don't copy just point */
        goto ReadBlockDataFailed;
      }
    }  /* End while(acct < reqt) */

    if(trace_h.endtime + GRACE_PERIOD >= reqt)
    {
      /* We've found our spot.  trace_h.starttime < reqt <= trace_h.endtime.
         Pack it up and go home */
      *acttp=trace_h.endtime;
      *offp=off;
    }
    else
    {
      /* There was some sort of a minor snaffu.  Throw it in reverse,
         but keep track of what we've got.
      */
      double tempEnd=trace_h.endtime;

      while (trace_h.endtime + GRACE_PERIOD < reqt)
        /* Use GRACE_PERIOD to account for sloppy timestamps */
      {
        /* Keep going backwards until we hit the wall, or get to a good time */
        /* LocateRoughOffset can return off = tsz, and if the rough-offset return
           was ahead of our target time, we could read off the end of the tank.
           DK 20100311 */
        if ( off >=tsz ) 
          off=0;
        tmp=off;
        off += rsz;
        DFIP -= rsz;
        if(DFIP <= 0 || DFIP >= tsz)
        {
          logit("t","Failed DFIP comparison #4\n");
          goto OHCRAP;
        }
        if ( off >=tsz )
          off=0;
        tempEnd=trace_h.endtime;
        if ( ReadBlockData( tfp, tmp, (long int) sizeof(TRACE2_HEADER),
                            (char*) &trace_h ) != R_DONE )
        {
          strncpy(szFileFunction,"ReadBlockData",sizeof(szFileFunction));
          szFileFunction[sizeof(szFileFunction)]= 0;
          iFileOffset     = tmp;
          iFileBlockSize  = sizeof(TRACE2_HEADER);
          szFileTankName  = t->tankName;   /* don't copy just point */
          goto ReadBlockDataFailed;
        }


/************** END CODE SNIPPET  ***********/

#44 fixed Sniffwave segfaults on linux w/ no params except data flag somebody stefan
Description

"sniffwave WAVE_RING" is fine. "sniffwave WAVE_RING y" seg faults. "sniffwave WAVE_RING wild wild wild wild y" is fine.

This is a 64 bit Ubuntu 9.1 Linux box.

earthworm@polar:/media/data2mirror/tankplayer_queue$ sniffwave WAVE_RING y
Segmentation fault
earthworm@polar:/media/data2mirror/tankplayer_queue$ sniffwave WAVE_RING wild wild wild wild y
Sniffing WAVE_RING for wild.wild.wild.wild
20100313_UTC_03:24:46 sniffwave: inRing flushed 494 packets of 1037400 bytes total.
MCM.1.SI.-- (0x2 0x0) 0 s2 1018 10.0 2010/03/09 06:48:20.40 (1268117300.4000) 2010/03/09 06:50:02.10 (1268117402.1000)  i255 m25 t19 len2100 [333284.87]
    88     82     81     92     89     83     97    106     89     90 
    87     83     83     89     84     90     94     86     73     67 
    71     98     83     82     92     97     90     85     89     89 
    91     99     87     82     96     96     91     82     84     88 
    91     87     88     86     98     97     87     90     92     85 
    85     82     88     87     80     87     87     87     96     99 
    95     86     90    101     90     87     94     94     93     92 
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
Note: See TracQuery for help on using queries.