Uploaded image for project: 'Derby'
  1. Derby
  2. DERBY-3198

Using setQueryTimeout will leak sections

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

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 10.3.1.4
    • 10.4.1.3
    • JDBC, Network Client
    • None

    Description

      The implementation of setQueryTimeout relies on NetStatementReply.writeSetSpecialRegister() which will allocate a dynamic section when called. No reference to this Section object is kept, and so Section.free() never gets called on it. Executing the same statment repeatedly with a query timeout set results in the client driver throwing an exception because the number of Sections exceeding 32000.

      Attachments

        1. repro.diff
          0.7 kB
          Dyre Tjeldvoll
        2. derby-3198.v6.diff
          8 kB
          Dyre Tjeldvoll
        3. derby-3198.v5.diff
          8 kB
          Dyre Tjeldvoll
        4. derby-3198.v4.diff
          7 kB
          Dyre Tjeldvoll
        5. derby-3198.v3.diff
          5 kB
          Dyre Tjeldvoll
        6. derby-3198.v2.diff
          5 kB
          Dyre Tjeldvoll
        7. derby-3198.v1.diff
          5 kB
          Dyre Tjeldvoll

        Issue Links

        Activity

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

          People

            dyret Dyre Tjeldvoll
            dyret Dyre Tjeldvoll
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment