Apache AWF
  1. Apache AWF
  2. AWF-182

Close channel if we (during read) reach EOF and there is nothing to write

    Details

    • Type: Improvement Improvement
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Labels:
      None

      Description

      Proposal: In AS.handleRead(..) add
      if (read == -1) { // EOF
      reachedEOF = true;
      ioLoop.updateHandler(channel, interestOps &= ~SelectionKey.OP_READ);
      if (writeBuffer.position() == 0)

      { invokeCloseCallback(); }

      return;
      }

      (the invokeCloseCallback() + surronding if statement is new)

      Found this issue during DEFT-151 (disitributed demo application).

      The problem is that its easy to leak connection if we dont handle this case. The problem is that you never will get a notification/callback that the client/server is down (if you only are reading from the asynchronous socket, as soon as you try to write to the socket, you will get a close callback....but that is only if you acctually try to write on the socket).

      1. deft-170.patch
        0.7 kB
        umesh awasthi

        Activity

        Roger Schildmeijer created issue -
        Roger Schildmeijer made changes -
        Field Original Value New Value
        Fix Version/s 0.4.0 [ 12317348 ]
        umesh awasthi made changes -
        Attachment deft-170.patch [ 12488419 ]
        Johnathan Meehan made changes -
        Assignee Johnathan Meehan [ jmeehan ]
        Johnathan Meehan made changes -
        Status Open [ 1 ] In Progress [ 3 ]
        Johnathan Meehan made changes -
        Status In Progress [ 3 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Tony Stevenson made changes -
        Project Deft [ 12311521 ] Apache AWF [ 12313220 ]
        Key DEFT-170 AWF-182
        Fix Version/s 0.4.0 [ 12317348 ]

          People

          • Assignee:
            Johnathan Meehan
            Reporter:
            Roger Schildmeijer
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development