Uploaded image for project: 'Erlang/OTP'
  1. Erlang/OTP
  2. ERL-1448

Lingering odbcserver processes after timeouts

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 22.3
    • Fix Version/s: OTP-23.3
    • Component/s: odbc
    • Labels:
      None

      Description

      OTP-22.3.4.9
      odbc-2.12.4

      We have a problem with hanging odbcserver processes after SQL queries timed out. It seems that even though the client erlang process terminates due to the timeout, causing the odbc process (i.e. the gen_server implemented by odbc.erl) to close the port to the odbcserver port program, the port program itself does not terminate.

      It does not seem to matter if the DB query actually completes after this, the odbcserver lives forever and the database session is never closed causing multiple database sessions just lingering.

      We started detecting this after upgrading from rhel6 to rhel7, but have currently no way to test it on rhel6 so can’t rule out that it even happened there without us detecting it.

      We can easily reproduce the problem by spawning off a process which does odbc:connect/2, and then odbc:sql_query/3 with a short timeout ensuring that the query times out.

      Notice that it does not happen if we just crash the client process in any other way than by triggering this timeout.

        Attachments

          Activity

            People

            Assignee:
            otp_team_ps Team PS
            Reporter:
            siri Siri Hansen
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: