JMeter 4 remote testing in cloud with SSL keystore - performance

I am setting up JMeter 4.0 for load testing in the cloud (GCE). I am creating VM images for the master and slave with the only difference being the slaves run jmeter-server on boot. I ran bin/create-rmi-keystore.sh per http://jmeter.apache.org/usermanual/remote-test.html#setup_ssl and ensured the .jks file is on the master/client and all the slaves.
Now, when I create multiple slave instances (new slave IPs), the load test fails due to SSL errors -
Configuring remote engine: 10.150.0.11
error during JRMP connection establishment; nested exception is:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Failed to configure 10.150.0.11
Can I avoid having to manually regenerate the keystore every time I plan a test run?

If you have created rmi_keystore.jks on your master , copy that on your slave's bin directory. You can restart jmeter-server.bat on slave after that.

Related

Error inside docker container: Could not download spring-boot-gradle-plugin-2.5.4.jar (org.springframework.boot:spring-boot-gradle-plugin:2.5.4)

I have a spring batch application configured with docker-compose.yml. To run the project there is a run.sh file and it spinup several containers. DB container gets up and running without issues. But the container which runs the spring application fails with the below error.
Could not resolve all artifacts for configuration ':classpath'.
> Could not download spring-boot-gradle-plugin-2.5.4.jar (org.springframework.boot:spring-boot-gradle-plugin:2.5.4)
> Could not get resource 'https://plugins.gradle.org/m2/org/springframework/boot/spring-boot-gradle-plugin/2.5.4/spring-boot-gradle-plugin-2.5.4.jar'.
> Could not GET 'https://plugins.gradle.org/m2/org/springframework/boot/spring-boot-gradle-plugin/2.5.4/spring-boot-gradle-plugin-2.5.4.jar'.
> The server may not support the client's requested TLS protocol versions: (TLSv1.2, TLSv1.3). You may need to configure the client to allow other protocols to be used. See: https://docs.gradle.org/7.2/userguide/build_environment.html#gradle_system_properties
> PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
> Could not download sonarqube-gradle-plugin-3.3.jar (org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:3.3)
> Could not get resource 'https://plugins.gradle.org/m2/org/sonarsource/scanner/gradle/sonarqube-gradle-plugin/3.3/sonarqube-gradle-plugin-3.3.jar'.
> Could not GET 'https://plugins.gradle.org/m2/org/sonarsource/scanner/gradle/sonarqube-gradle-plugin/3.3/sonarqube-gradle-plugin-3.3.jar'.
`
But I can download those jar files from my local machine. So jars are residing in those locations. I think this container can't access the internet to download these files. There's no way to use a terminal inside the container to execute a ping command since it is exiting right after giving this error. (But I pinged google.com in DB container and it worked.So this problem is only for that particular container)
There was a workaround to add this rootProject.buildFileName = 'build.gradle.kts' in settings.gradle. But then it says Task 'bootRun' not found in root project '*'. So I think no use in this workaround and what I want to solve is the network connection issue of the container.
Issue was with this part of the error msg: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
To fix, you have to download the certificate of https://plugins.gradle.org/ and add that to cacerts file of the jdk (refer this link to see how to install the certificate)
Since I had this problem inside a container I manually replaced the cacerts file inside the container with the local cacerts file (which already contains the certificate of gradle.org).
So this whole problem is with the jdk image which was used to create the container.

Jmeter Remote Start : Error during JRMP connection establishment;

I am trying to connect to a Slave from the Jmeter MAster, however when I click on RUN > Start Remote > select the Remote machine i get the following error :
Error during JRMP connection establishment; nested exception is:
javax.net.ssl.SSLHandshakeException:
sun.security.validator.ValidatorException: PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException: unable to
find valid certification path to requested target
Prior to this as I do not need a secure connection I edited the USER PROPERTY file in the Jmeter bin directory with the following statement :
server.rmi.ssl.disable=true
I also started the Jmeter-server bat file,
then restarted Jmeter for it to take effect, but no joy.

Invoke HTTP error : certification path to requested target

I have a cluster managed with cloudera, I have installed CFM (Nifi) with the tutorial; also secured the nifi nodes with TLS/SSL.
When I tried the invokeHTTP processor, I have the following bulletin:
InvokeHTTP[id=3c2dea7a-0172-1000-0000-0000350072f1] Yielding processor due to exception encountered as a source processor: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
I have tried with and without a secured cluster (with the help of Nifi CA toolkit service), without any success.
I also tried to create a controller service to force path of the trustore and keystore.
Now I am clueless on what to do, any ideas?
Thank you for your help,
#pdeuxa you need to configure the SSLContextService for the resource you are connecting to not the nifi cluster. You do this by adding the resource's SSL Certificates to a local nifi truststore, then tell NiFi where the truststore is. The files need to be properly owned for nifi and copied to all nifi nodes.
It works with SSLcontext configuration!
I copied the cacert from java jdk on each nifi nodes, and grant ownership to the cacert to nifi user.
On the SSL context configuration I added the path of the copied cacert for keystore and trustore (the defaut password for java cacert is "changeit").
Then I forced invokehttp "proxy type" property on "http"

Xcode Application Loader - communications error

Attempting to upload a binary that has passed 'validation' I get:
Communications error. Please use diagnostic mode to check connectivity. You need to have outbound access to TCP port 443
An exception has occurred: sun.security.validator.Validator.Exception: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Could not connect to Apple's web service
Unable to authenticate the package: 617269104.itms
Transport update failed with unexpected exception
An exception has occurred: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.ceertpath.SunCertPathBuilder\exception: unable to find valid certification path to requested target
I still have this problem despite trying all the suggestions in various similar SO threads. Running App Loader 2.9.1; Java version 7 build 1.7.0.; Yosemite beta 4; Xcode 5.1.1. Also tried all the settings in Java Control Panel General/Network Settings. All firewall ports open for outbound traffic.
Any new/further suggestions appreciated...

TeamCity: Test connection failed due to I/O-Exception

I’m starting to use TeamCity and getting few problems:
I'm trying to create an ssh connection to a unix server(e.g isk-vsrv131)in order to run commands/scripts on the unix server.
I used "Administration->Edit Build Configuration->Edit VCS Root" to configure a new vsc root but as i'm testing the connection i'm getting the following error:
Connection failed!
Test connection failed in TestU1 :: test_bc. I/O-Exception: isk-vsrv13 (isk-vsrv13)
i've tried different configurations including the server local ip/full domain/using Private key instead of ssh password - nothing works.
on teamcity-vcs.log is see the following:
[2012-03-26 17:41:33,827] WARN [on=editVcsRoot ] - jetbrains.buildServer.VCS - Error occurred in test connection
jetbrains.buildServer.vcs.VcsException: I/O-Exception: isk-vsrv13 (isk-vsrv13)
.
.
.
Caused by: java.net.UnknownHostException: isk-vsrv13
.
.
.
How can i fixed that?
I’ve created a "Build Steps" which includes a 'Runner type: Command Line" - how can i connect those to a specific ssh connection?
Thanks
It seems server machine where TeamCity is installed cannot resolve host name isk-vsrv13, hence the java.net.UnknownHostException error. I would try to specify fully qualified name of this host.

Resources