Skip to content

Commit a7de71a

Browse files
authored
Merge pull request #822 from oracle/connection-cleanup
Clear network interceptors after async calls
2 parents fe3989b + 9101d42 commit a7de71a

File tree

5 files changed

+27
-2
lines changed

5 files changed

+27
-2
lines changed

kubernetes/charts/weblogic-operator/templates/_operator-dep.tpl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,10 @@ spec:
4444
- name: "MOCK_WLS"
4545
value: "true"
4646
{{- end }}
47+
resources:
48+
requests:
49+
cpu: "100m"
50+
memory: "512Mi"
4751
volumeMounts:
4852
- name: "weblogic-operator-cm-volume"
4953
mountPath: "/operator/config"

kubernetes/src/test/java/oracle/kubernetes/operator/create/CreateOperatorGeneratedFilesTestBase.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,13 @@
4444
import static org.hamcrest.MatcherAssert.assertThat;
4545
import static org.junit.Assert.fail;
4646

47+
import io.kubernetes.client.custom.Quantity;
4748
import io.kubernetes.client.models.ExtensionsV1beta1Deployment;
4849
import io.kubernetes.client.models.V1ClusterRole;
4950
import io.kubernetes.client.models.V1ClusterRoleBinding;
5051
import io.kubernetes.client.models.V1ConfigMap;
5152
import io.kubernetes.client.models.V1Namespace;
53+
import io.kubernetes.client.models.V1ResourceRequirements;
5254
import io.kubernetes.client.models.V1Role;
5355
import io.kubernetes.client.models.V1RoleBinding;
5456
import io.kubernetes.client.models.V1Secret;
@@ -210,6 +212,11 @@ protected ExtensionsV1beta1Deployment getExpectedWeblogicOperatorDeployment() {
210212
newEnvVar()
211213
.name("JAVA_LOGGING_LEVEL")
212214
.value(getInputs().getJavaLoggingLevel()))
215+
.resources(
216+
new V1ResourceRequirements()
217+
.putRequestsItem("cpu", Quantity.fromString("100m"))
218+
.putRequestsItem(
219+
"memory", Quantity.fromString("512Mi")))
213220
.addVolumeMountsItem(
214221
newVolumeMount()
215222
.name("weblogic-operator-cm-volume")

operator/src/main/java/oracle/kubernetes/operator/helpers/ClientPool.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,13 @@ private ApiClient getApiClient() {
8585
return client;
8686
}
8787

88+
@Override
89+
protected ApiClient onRecycle(ApiClient instance) {
90+
// Work around async processing creating, but not cleaning-up network interceptors
91+
instance.getHttpClient().networkInterceptors().clear();
92+
return super.onRecycle(instance);
93+
}
94+
8895
private static class DefaultClientFactory implements ClientFactory {
8996
private final AtomicBoolean first = new AtomicBoolean(true);
9097

operator/src/main/java/oracle/kubernetes/operator/helpers/Pool.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,12 +46,16 @@ protected Queue<T> getQueue() {
4646
* @param instance Pool object to recycle
4747
*/
4848
public final void recycle(T instance) {
49-
getQueue().offer(instance);
49+
getQueue().offer(onRecycle(instance));
5050
if (LOGGER.isFinerEnabled()) {
5151
LOGGER.finer("Recycling instance to pool, instances now in pool: " + getQueue().size());
5252
}
5353
}
5454

55+
protected T onRecycle(T instance) {
56+
return instance;
57+
}
58+
5559
/**
5660
* Creates a new instance of object. This method is used when someone wants to {@link #take()
5761
* take} an object from an empty pool. Also note that multiple threads may call this method

src/scripts/operator.sh

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,10 @@ cp /operator/logstash.conf /logs/logstash.conf
6262
# assumption is that we have mounted a volume on /logs which is also visible to
6363
# the logstash container/pod.
6464

65+
# Container memory optimizaton flags
66+
HEAP="-XX:+UnlockExperimentalVMOptions -XX:+UseCGroupMemoryLimitForHeap -XX:MaxRAMFraction=1 -XshowSettings:vm"
67+
6568
# Start operator
66-
java $MOCKING_WLS $DEBUG $LOGGING -jar /operator/weblogic-kubernetes-operator.jar &
69+
java $HEAP $MOCKING_WLS $DEBUG $LOGGING -jar /operator/weblogic-kubernetes-operator.jar &
6770
PID=$!
6871
wait $PID

0 commit comments

Comments
 (0)