Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ConnectionProvider should not connect objects in the connection lock #2880

Closed
davidnich opened this issue Jun 23, 2018 · 0 comments
Closed

Comments

@davidnich
Copy link
Contributor

davidnich commented Jun 23, 2018

unnecessary serialization leads to very slow performance for connections when there are connection timeouts - ex:

TID 65
 1: Mutex::lock() called at /appl/msepl/gsi-it-b05/qlib/ConnectionProvider.qm:433 (builtin function)
 2: AbstractConnection::get() called at qorus-system.ql:1472 (user function)
 3: ConnectionDependencyManager::get() called at qorus-system.ql:2665 (user function)
 4: QorusUserConnections::get() called at qorus-common-server-api.ql:1135 (user function)
 5: get_user_connection() called at <run-time-loaded: service method: it-00-egwh_bulk_rest-oracle_cloud v1.0 (121) authenticate (1042)>:2 (source "/appl/msepl/gsi-it-b05/user/src/00-ORACLE_CLOUD/msepl_at/it-00-egwh_bulk_rest-oracle_cloud-v1.0.qsd":40) (user function)
 6: authenticate() called at <run-time-loaded: service method: it-00-egwh_bulk_rest-oracle_cloud v1.0 (121) checkObject (1046)>:2 (source "/appl/msepl/gsi-it-b05/user/src/00-ORACLE_CLOUD/msepl_at/it-00-egwh_bulk_rest-oracle_cloud-v1.0.qsd":145) (user function)
 7: checkObject() called at ServiceManager.qc:1356 (user function)
 8: Program::callFunctionArgs() called at ServiceManager.qc:1356 (builtin function)
 9: Service::callMethod() called at ServiceManager.qc:2524 (user function)
 10: ServiceManager::callMethod() called at qorus-common-server-api.ql:97 (user function)
 11: ServiceMethodGate::externalMethodGateArgs() called at QorusSystemAPI.qc:2105 (user function)
 12: <anonymous closure>() called at qorus-system.ql:462 (user function)
 13: call_function_args() called at qorus-system.ql:462 (builtin function)
 14: call_system_api_as_user() called at qorus-system.ql:155 (user function)
 15: SystemApiHelper::callArgs() called at QorusRestApiHandler.qc:5544 (user function)
 16: ServiceMethodRestClass::putCall() called at /appl/msepl/gsi-it-b05/qlib/RestHandler.qm:694 (user function)
 17: call_object_method_args() called at /appl/msepl/gsi-it-b05/qlib/RestHandler.qm:694 (builtin function)
 18: AbstractRestClass::dispatch() called at QorusRestApiHandler.qc:1078 (user function)
 19: QorusRestClass::dispatch() called at /appl/msepl/gsi-it-b05/qlib/RestHandler.qm:653 (user function)
 20: AbstractRestClass::dispatchStream() called at /appl/msepl/gsi-it-b05/qlib/RestHandler.qm:637 (user function)
 21: AbstractRestClass::handleRequest() called at /appl/msepl/gsi-it-b05/qlib/RestHandler.qm:631 (user function)
 22: AbstractRestClass::handleRequest() called at /appl/msepl/gsi-it-b05/qlib/RestHandler.qm:631 (user function)
 23: AbstractRestClass::handleRequest() called at /appl/msepl/gsi-it-b05/qlib/RestHandler.qm:631 (user function)
 24: AbstractRestClass::handleRequest() called at /appl/msepl/gsi-it-b05/qlib/RestHandler.qm:1139 (user function)
 25: RestHandler::handleRequest() called at QorusRestApiHandler.qc:14760 (user function)
 26: WebAppHandler::handleRequest() called at /appl/msepl/gsi-it-b05/qlib/HttpServer.qm:1552 (user function)
 27: HttpServer::handleRequest() called at /appl/msepl/gsi-it-b05/qlib/HttpServer.qm:2258 (user function)
 28: HttpListener::connectionThread() called at /appl/msepl/gsi-it-b05/qlib/HttpServer.qm:2067 (user function)
 29: HttpListener::<anonymous closure>() called at :-1 (user function)
TID 66
 1: HTTPClient::connect() called at /appl/msepl/gsi-it-b05/qlib/RestClient.qm:377 (builtin function)
 2: RestClient::constructor() called at /appl/msepl/gsi-it-b05/qlib/RestClient.qm:956 (user function)
 3: RestConnection::getImpl() called at /appl/msepl/gsi-it-b05/qlib/ConnectionProvider.qm:447 (user function)
 4: AbstractConnection::get() called at qorus-system.ql:1472 (user function)
 5: ConnectionDependencyManager::get() called at qorus-system.ql:2665 (user function)
 6: QorusUserConnections::get() called at qorus-common-server-api.ql:1135 (user function)
 7: get_user_connection() called at <run-time-loaded: service method: it-00-egwh_bulk_rest-oracle_cloud v1.0 (121) authenticate (1042)>:2 (source "/appl/msepl/gsi-it-b05/user/src/00-ORACLE_CLOUD/msepl_at/it-00-egwh_bulk_rest-oracle_cloud-v1.0.qsd":40) (user function)
 8: authenticate() called at <run-time-loaded: service method: it-00-egwh_bulk_rest-oracle_cloud v1.0 (121) checkObject (1046)>:2 (source "/appl/msepl/gsi-it-b05/user/src/00-ORACLE_CLOUD/msepl_at/it-00-egwh_bulk_rest-oracle_cloud-v1.0.qsd":145) (user function)
 9: checkObject() called at ServiceManager.qc:1356 (user function)
 10: Program::callFunctionArgs() called at ServiceManager.qc:1356 (builtin function)
 11: Service::callMethod() called at ServiceManager.qc:2524 (user function)
 12: ServiceManager::callMethod() called at qorus-common-server-api.ql:97 (user function)
 13: ServiceMethodGate::externalMethodGateArgs() called at QorusSystemAPI.qc:2105 (user function)
 14: <anonymous closure>() called at qorus-system.ql:462 (user function)
 15: call_function_args() called at qorus-system.ql:462 (builtin function)
@davidnich davidnich added this to the 0.8.13.6 milestone Jun 23, 2018
@davidnich davidnich self-assigned this Jun 23, 2018
@davidnich davidnich changed the title ConnectionProvider should not execute connections in the global lock ConnectionProvider should not connect objects in the global lock Jun 23, 2018
@davidnich davidnich modified the milestones: 0.8.13.6, 0.8.13.7 Jul 11, 2018
@davidnich davidnich changed the title ConnectionProvider should not connect objects in the global lock ConnectionProvider should not connect objects in the connection lock Jul 23, 2018
davidnich added a commit that referenced this issue Jul 23, 2018
sejvlond added a commit that referenced this issue Jul 23, 2018
…ider_fix

refs #2880 removed unnecessary serialization from ConnectionProvider …
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant