Uploaded image for project: 'OpenIDM'
  1. OpenIDM
  2. OPENIDM-5470

Managed user creation with POST timeout due to response time increase

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: OpenIDM 4.5.0
    • Fix Version/s: OpenIDM 4.5.0
    • Component/s: Performance
    • Labels:
    • Environment:
      IDM latest trunk build(around March 19, 2016) run on a CentOS with PostgreSQL as repo, Java 7.

      Description

      This regression stress test issue has been seen for recent IDM builds. HTTP create managed user request with POST would time out due to server response time increase.
      In earlier builds, 30K create requests with POST would take 300 seconds to finish.
      In recent builds, requests start time out after around 13200 requests succeed.
      the time took for these requests are around 190seconds. with this rate, if all requests succeed, it would take around 434 seconds to finish 30k requests. It's a degration from 300 seconds for 30k requests. Repeated tests show the same symptom. In most cases, no errors in OpenIDM log file, occasionally maybe when started testing this in a slower machine, IDM has following 500 errors for the POST requests as Brendan also observed:

      Caused by: org.forgerock.script.exception.ScriptThrownException: Error: Module "roles/conditionalRoles" not found. (4EA8AB0D9B468265B03668A6202113955EAE10EF#1) in 4EA8AB0D9B468265B03668A6202113955EAE10EF at line number 1 at column number 0 {message=Module "roles/conditionalRoles" not found., fileName=4EA8AB0D9B468265B03668A6202113955EAE10EF, lineNumber=1}
      
      Caused by: org.forgerock.script.exception.ScriptThrownException: Error: Module "lib/lodash" not found. (file:/home/brmiller/forgerock-4.1/pyforge/results/20160331-164300/idm/CrudManUsers/openidm1/openidm/bin/defaults/script/roles/conditionalRoles.js#24) in file:/home/brmiller/forgerock-4.1/pyforge/results/20160331-164300/idm/CrudManUsers/openidm1/openidm/bin/defaults/script/roles/conditionalRoles.js at line number 24 at column number 0 {message=Module "lib/lodash" not found., fileName=file:/home/brmiller/forgerock-4.1/pyforge/results/20160331-164300/idm/CrudManUsers/openidm1/openidm/bin/defaults/script/roles/conditionalRoles.js, lineNumber=24}
      

      To reproduce run QA stress test, under pyforge/:
      Do necessary setup and clone the QA test source:
      git clone ssh://git@stash.forgerock.org:7999/~<your username>/pyforge.git
      and make sure JAVA_HOME env is set properly.
      Under pyforge/, do the following:
      1. ./configure.py OpenIDM
      2. open config/config.cfg
      and change stress_tool_name to gatling
      change num_user to 100, and duration to 300
      change repo_type to postgres
      3. Make sure the postgres user has password postgres for the PostgreSQL server.
      4. Run the command to start the test(manually copy the IDM zip file to pyforge/archives folder before the test)
      python -u run-pybot.py -c stress -i gatling -s CrudManUsers -t IDM_Managed_User_Create_Post OpenIDM

      Observer:
      When the test finishes, the console would have output like
      IDM Managed User Create Post :: REST Managed User Create Post                            | FAIL |
      Error found - cf file /home/testuser/pyforge/results/20160330-170226/idm/graph/openidm.ManUsersCreatePost_20160330-170332.out.

      Note: The issue is only seen with PostgreSQL so far, Didn't see the same symptom with MySQL.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                dhogan Dirk Hogan
                Reporter:
                Tinghua.Xu Tinghua.Xu
                QA Assignee:
                Tinghua.Xu
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: