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:
To reproduce run QA stress test, under pyforge/:
Do necessary setup and clone the QA test source:
git clone ssh://email@example.com: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
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.