From 052adc9791af8ba5460c2e0c94c4e0e8de4797b3 Mon Sep 17 00:00:00 2001 From: Stefano Franz Date: Fri, 15 Nov 2019 17:31:58 +0000 Subject: [PATCH 1/3] fix merge issue with sidecar image work (#5724) --- buildSrc/src/main/groovy/net/corda/testing/KubesTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/src/main/groovy/net/corda/testing/KubesTest.java b/buildSrc/src/main/groovy/net/corda/testing/KubesTest.java index 41ef3fe0f5..6a1a94732d 100644 --- a/buildSrc/src/main/groovy/net/corda/testing/KubesTest.java +++ b/buildSrc/src/main/groovy/net/corda/testing/KubesTest.java @@ -275,7 +275,7 @@ public class KubesTest extends DefaultTask { return new KubePodResult(podIdx, resCode, podOutput, binaryResults); }); } catch (Retry.RetryException e) { - Pod pod = getKubernetesClient().pods().inNamespace(namespace).create(buildPodRequest(podName, pvc)); + Pod pod = getKubernetesClient().pods().inNamespace(namespace).create(buildPodRequest(podName, pvc, sidecarImage != null)); downloadTestXmlFromPod(namespace, pod); throw new RuntimeException("Failed to build in pod " + podName + " (" + podNumber + "/" + numberOfPods + ") in " + numberOfRetries + " attempts", e); } From 129d8d1b344af1b519686e6ceb0ff09aeb538d27 Mon Sep 17 00:00:00 2001 From: Jonathan Locke <36930160+lockathan@users.noreply.github.com> Date: Mon, 18 Nov 2019 12:42:25 +0000 Subject: [PATCH 2/3] NOTICK: Mention platform version change in release notes (#5721) * NOTICK: Mention platform version change in release notes (#5721) Update the release notes to mention the platform version change. * NOTICK: Mention platform version change in release notes Added mention of preserved wire stability and compatibility across different versions. * Typo fixes * Corrected typo in release notes. * Reworded change according to feedback - greatly simplified it. * Slight rewording --- docs/source/release-notes.rst | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/docs/source/release-notes.rst b/docs/source/release-notes.rst index 42bdad9206..8c427ed816 100644 --- a/docs/source/release-notes.rst +++ b/docs/source/release-notes.rst @@ -11,7 +11,7 @@ Welcome to the Corda 4.3 release notes. Please read these carefully to understan Corda 4.3 ========= -Corda 4.1 was released with a great suite of new features to build on top of the success of Corda 4. Now, Corda 4.3 extends upon that with some powerful new capabilities. Corda 4.3 over 400 fixes and documentation updates to bring additional stability and quality of life improvements to those developing on the Corda platform. +Corda 4.1 was released with a great suite of new features to build on top of the success of Corda 4. Now, Corda 4.3 extends upon that with some powerful new capabilities. Corda 4.3 contains over 400 fixes and documentation updates to bring additional stability and quality of life improvements to those developing on the Corda platform. We recommend you upgrade from Corda 4.1 to Corda 4.3 as soon as possible. @@ -88,6 +88,13 @@ There have been several security upgrades, including changes to the Corda webser * Enhancements to attachment whitelisting: Transactions referencing contracts that are not installed on a node can still be accepted if the contract is signed by a trusted party. * Updated vulnerable dependency: Jolokia 1.2 to 1.6.0 are vulnerable to system-wide cross-site-request-forgery attacks. Updated to Jolokia 1.6.1 +Platform version change +~~~~~~~~~~~~~~~~~~~~~~~ + +Given the addition of a new API to support the Accounts feature, the platform version of Corda 4.3 has been bumped up from 4 to 5. This is to prevent CorDapps that use it being deployed onto nodes unable to host them. Note that the minimum platform version has not been changed - this means that older Corda nodes can still interoperate with Corda 4.3 nodes. Since the APIs added do not affect the wire protocol or have other zone-level implications, applications can take advantage of these new platform version 5 features even if the Corda 4.3 node is running on a network whose minimum platform version is 4. + +For more information on platform version, please see :doc:`versioning`. For more details on upgrading a CorDapp to use platform version 5, please see :doc:`app-upgrade-notes`. + Deprecations ~~~~~~~~~~~~ @@ -95,7 +102,7 @@ The Corda Finance library is now deprecated and has been superseded by the Corda Any confidential identities registered using the old API will not be reflected in the new tables after migration to Corda 4.3. However, the standard APIs work with both old and new confidential identities tables. For this reason, we do not recommend the use of both old and new confidential identities APIs in the same deployment. The old confidential identities API will be deprecated in a future release. -Issued Fixed +Issues Fixed ~~~~~~~~~~~~ * Register custom serializers for jackson as well as amqp [`CORDA-3152 `_] From 831ca33ed5a84e8fe0aea88d07a3e2fee531eeb6 Mon Sep 17 00:00:00 2001 From: Stefano Franz Date: Mon, 18 Nov 2019 13:45:43 +0000 Subject: [PATCH 3/3] try increase websocket timeout due to azure EOF exceptions (#5729) --- .../groovy/net/corda/testing/KubesTest.java | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/buildSrc/src/main/groovy/net/corda/testing/KubesTest.java b/buildSrc/src/main/groovy/net/corda/testing/KubesTest.java index 6a1a94732d..d47979c0c5 100644 --- a/buildSrc/src/main/groovy/net/corda/testing/KubesTest.java +++ b/buildSrc/src/main/groovy/net/corda/testing/KubesTest.java @@ -64,6 +64,10 @@ public class KubesTest extends DefaultTask { */ private static final String REGISTRY_CREDENTIALS_SECRET_NAME = "regcred"; + private static int DEFAULT_K8S_TIMEOUT_VALUE_MILLIES = 60 * 1_000; + private static int DEFAULT_K8S_WEBSOCKET_TIMEOUT = DEFAULT_K8S_TIMEOUT_VALUE_MILLIES * 30; + private static int DEFAULT_POD_ALLOCATION_TIMEOUT = 60; + String dockerTag; String fullTaskToExecutePath; String taskToExecuteName; @@ -78,10 +82,8 @@ public class KubesTest extends DefaultTask { private final Set remainingPods = Collections.synchronizedSet(new HashSet()); public static String NAMESPACE = "thisisatest"; - int k8sTimeout = 50 * 1_000; - int webSocketTimeout = k8sTimeout * 6; + int numberOfPods = 5; - int timeoutInMinutesForPodToStart = 60; DistributeTestsBy distribution = DistributeTestsBy.METHOD; PodLogLevel podLogLevel = PodLogLevel.INFO; @@ -139,11 +141,11 @@ public class KubesTest extends DefaultTask { @NotNull private KubernetesClient getKubernetesClient() { io.fabric8.kubernetes.client.Config config = new io.fabric8.kubernetes.client.ConfigBuilder() - .withConnectionTimeout(k8sTimeout) - .withRequestTimeout(k8sTimeout) - .withRollingTimeout(k8sTimeout) - .withWebsocketTimeout(webSocketTimeout) - .withWebsocketPingInterval(webSocketTimeout) + .withConnectionTimeout(DEFAULT_K8S_TIMEOUT_VALUE_MILLIES) + .withRequestTimeout(DEFAULT_K8S_TIMEOUT_VALUE_MILLIES) + .withRollingTimeout(DEFAULT_K8S_TIMEOUT_VALUE_MILLIES) + .withWebsocketTimeout(DEFAULT_K8S_WEBSOCKET_TIMEOUT) + .withWebsocketPingInterval(DEFAULT_K8S_WEBSOCKET_TIMEOUT) .build(); return new DefaultKubernetesClient(config); @@ -460,7 +462,7 @@ public class KubesTest extends DefaultTask { try (KubernetesClient client = getKubernetesClient()) { getProject().getLogger().lifecycle("Waiting for pod " + pod.getMetadata().getName() + " to start before executing build"); try { - client.pods().inNamespace(pod.getMetadata().getNamespace()).withName(pod.getMetadata().getName()).waitUntilReady(timeoutInMinutesForPodToStart, TimeUnit.MINUTES); + client.pods().inNamespace(pod.getMetadata().getNamespace()).withName(pod.getMetadata().getName()).waitUntilReady(DEFAULT_POD_ALLOCATION_TIMEOUT, TimeUnit.MINUTES); } catch (InterruptedException e) { throw new RuntimeException(e); }