My Oracle Support Banner

Performance Testing For /oauth2/v1/token API Failing For Last 5 To 10 % Users In The Process using http://gatling.io tool (Doc ID 2358008.1)

Last updated on FEBRUARY 06, 2018

Applies to:

Identity Cloud Service (IDCS) - Version N/A to N/A
Information in this document applies to any platform.

Symptoms

On : IDCS 17.4.6

When attempting to do Performance testing for /oauth2/v1/token API the following error occurs.

ERROR
-----------------------

java.net.ConnectException: handshake timed out
at org.asynchttpclient.netty.channel.NettyConnectListener.onFailure(NettyConnectListener.java:168)
at org.asynchttpclient.netty.channel.NettyConnectListener$1.onFailure(NettyConnectListener.java:139)
at org.asynchttpclient.netty.SimpleFutureListener.operationComplete(SimpleFutureListener.java:26)
at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:507)
at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:500)
at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:479)
at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:420)
at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:122)
at io.netty.handler.ssl.SslHandler.notifyHandshakeFailure(SslHandler.java:1443)
at io.netty.handler.ssl.SslHandler.access$1100(SslHandler.java:161)
at io.netty.handler.ssl.SslHandler$5.run(SslHandler.java:1613)
at io.netty.util.concurrent.PromiseTask$RunnableAdapter.call(PromiseTask.java:38)
at io.netty.util.concurrent.ScheduledFutureTask.run(ScheduledFutureTask.java:120)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:399)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:464)
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:131)


STEPS
-----------------------
The issue can be reproduced at will with the following steps:
1) Run the following code with the gatling.io tool:

var baseURL = "https://idcs-xyz.identity.oraclecloud.com"
var usersData = jsonFile("user.json")

var httpProtocol = http
.baseURL(baseURL)
.acceptHeader("text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
.acceptEncodingHeader("gzip, deflate")
.acceptLanguageHeader("en-US,en;q=0.5")
.userAgentHeader("Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0")

var headers_1 = Map(
"Accept" -> "*/*",
"Content-Type" -> "application/x-www-form-urlencoded")

var signinScenario = scenario("Signin Scenario")
.feed(usersData.circular)
.exec(
http("Get Access Token")
.post("/oauth2/v1/token")
.headers(headers_1)
.basicAuth(clientId, clientSecret)
.formParam("grant_type", "client_credentials")
.formParam("scope", "urn:opc:idm:__myscopes__")
.check(status.is(200))
.check(jsonPath("$.access_token").saveAs("accessToken"))
)

setUp(signinScenario.inject(atOnceUsers(200))).protocols(httpProtocol)



BUSINESS IMPACT
-----------------------
The issue has the following business impact:
getting handshake timed out exception in below pattern,

For 20 users at the same time: failure to 2/3 users, getting token for others
For 50 users at the same time: failure to 5/6 users
For 100 users at the same time: failure to 12/10 users
For 200 users at the same time: failure to 2/3 users

Changes

 

Cause

To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!


In this Document
Symptoms
Changes
Cause
Solution


My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.