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

ODBC driver should handle ungraceful tcp disconnects

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 2.1
    • 2.4
    • odbc

    Description

      It is found that ungraceful TCP disconnect makes ODBC driver stuck at socket recv().
      Ungraceful TCP disconnect could be caused:
      1. Network failure (or new firewall rules)
      2. Remote party shutdown (Half Closed Connection)

      So, the proposal is:
      setup socket options:
      1) SO_KEEPALIVE enabled
      2) TCP_KEEPIDLE to 60 sec. It is 2 hour by default
      3) TCP_KEEPINTVL to 1 sec. It is 1 sec at Win and 75 sec at Linux by default.
      4) send/receive buffers to some greater value (8k by default)

      Attachments

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            isapego Igor Sapego
            alexey.tank2 Alexey Popov
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment