Uploaded image for project: 'mod-circulation-storage'
  1. mod-circulation-storage
  2. CIRCSTORE-391

/scheduled-request-expiration hangs on invalid URL or unknown host

    XMLWordPrintable

Details

    • Bug
    • Status: Closed (View Workflow)
    • TBD
    • Resolution: Done
    • None
    • 16.0.0
    • None
    • CP: Sprint 156, CP: sprint 157
    • 1
    • Core: Platform
    • Implementation coding issue
    • Nolana (R3 2022), Morning Glory (R2 2022)

    Description

      Code in RequestExpiryImpl.java:

          context.runOnContext(v -> new ConfigurationClient(vertx, okapiHeaders).getTlrSettings()
            .compose(tlrSettings -> createRequestExpirationService(okapiHeaders, vertx, tlrSettings)
              .doRequestExpiration()
            .onComplete(result -> {
              if (result.succeeded()) {
                asyncResultHandler.handle(succeededFuture(respond204()));
              } else {
                asyncResultHandler.handle(succeededFuture(respond500WithTextPlain(
              }
            })
          ));
      

      Note that the identation is wrong and hides that onComplete runs inside the compose.

      If getTlrSettings() returns a failed Future no 500 response is generated and the request hangs forever.

      In addition getTlrSettings() may throw an exception that is not caught, this also makes the request hang forever. The exception origins from OkapiClient.

      There is a timer that makes Okapi call this code every other minute: https://github.com/folio-org/mod-circulation-storage/blob/v15.0.2/descriptors/ModuleDescriptor-template.json#L564-L579

      TestRail: Results

        Attachments

          Issue Links

            Activity

              People

                julianladisch Julian Ladisch
                julianladisch Julian Ladisch
                Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                  Created:
                  Updated:
                  Resolved:

                  TestRail: Runs

                    TestRail: Cases