Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-7134

Never-ending timeout in IgniteSpiOperationTimeoutHelper.nextTimeoutChunk()

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Critical
    • Resolution: Won't Fix
    • 2.3
    • None
    • general
    • None

    Description

      org.apache.ignite.spi.IgniteSpiOperationTimeoutHelper#nextTimeoutChunk
      
      long curTs = U.currentTimeMillis();
      
      timeout = timeout - (curTs - lastOperStartTs);
      

      Timeout will not be decreased at all if delay between successive calls to nextTimeoutChunk() is smaller than U.currentTimeMillis() discretization. Such behaviour could be easily achieved when getting an error right after the nextTimeoutChunk() invocation and do the retry.

      Only rare calls (the first right before U.currentTimeMillis() and the second right after that) may decrease timeout, so actual IgniteSpiOperationTimeoutHelper timeout could be much bigger than the failureDetectionTimeout.

      My opinion to not split failureDetectionTimeout between network operations, but initialize first operation timestamp at first call to nextTimeoutChunk(), and then calculate the timeout as a difference between the current timestamp and the first operation timestamp.

      Attachments

        Issue Links

          Activity

            People

              ein Alexandr Kuramshin
              ein Alexandr Kuramshin
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 20m
                  20m