Uploaded image for project: 'Metron (Retired)'
  1. Metron (Retired)
  2. METRON-1775

Transient exception could prevent expired profiles from being flushed

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Done
    • Minor
    • Resolution: Done
    • None
    • 0.7.0
    • None

    Description

      In the Storm Profiler, the ProfileBuilderBolt uses a separate thread to flush expired profiles.  Expired profiles are those that have not received a message for an extended period of time.  That period of time is called the profile time-to-live (profiler.ttl).  This is done to avoid potential memory leaks.

      This separate thread is scheduled using java.util.concurrent.ScheduledExecutorService#scheduleAtFixedRate.  The documentation for scheduleAtFixedRate says that if an exception is thrown, subsequent executions will be suppressed.  We do not want this to happen.  If an exception occurs, we need to log it and continue, ensuring that expired profiles will continue to flush.

      I have no direct proof that this has caused a problem, but it certainly is a potential issue that should be addressed.

      Attachments

        Issue Links

          Activity

            People

              nickwallen Nick Allen
              nickwallen Nick Allen
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: