Uploaded image for project: 'RAML Module Builder'
  1. RAML Module Builder
  2. RMB-755

2 locks and ignore exceptions for "tuple concurrently updated" when upgrading Q2 to Q3 (REVOKE)

    XMLWordPrintable

    Details

    • Template:
      Standard Bug Write-Up Format
    • Sprint:
      CP: Roadmap backlog, CP: sprint 101, CP: sprint 102
    • Story Points:
      1
    • Development Team:
      Core: Platform
    • Release:
      Not Scheduled
    • Affected Institution:
      TAMU

      Description

      mod-users and mod-circulation-storage have an ExpirationTool that regulary run a query against pg_catalog.pg_namespace.

      This may interfere with RMB's REVOKE command that writes to pg_catalog.pg_namespace during module upgrades.

      https://github.com/folio-org/mod-users/blob/v17.1.2/src/main/java/org/folio/rest/utils/ExpirationTool.java#L40

      select nspname from pg_catalog.pg_namespace where nspname LIKE '%_mod_users'
      

      https://github.com/folio-org/mod-circulation-storage/blob/v12.1.1/src/main/java/org/folio/support/ExpirationTool.java#L56

      select nspname from pg_catalog.pg_namespace where nspname LIKE '%_mod_circulation_storage';
      

      Or some other query reads or writes pg_catalog.pg_namespace.

      Task:
      Combine the locks of RMB-744 and RMB-750. Ignore any errors, the REVOKE will run again on next module upgrade.

      The "SELECT ... FOR UPDATE" locks the pg_catalog.pg_namespace rows for all queries, this works for unknown queries and for queries that do not request a lock.

        TestRail: Results

          Attachments

            Issue Links

              Activity

                People

                Assignee:
                julianladisch Julian Ladisch
                Reporter:
                julianladisch Julian Ladisch
                Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                  Dates

                  Created:
                  Updated:

                    TestRail: Runs

                      TestRail: Cases