[
https://issues.apache.org/jira/browse/HDDS-5614?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17403427#comment-17403427
]
Ritesh H Shukla edited comment on HDDS-5614 at 8/23/21, 11:27 PM:
------------------------------------------------------------------
Tried out the patch and I see a new client for each request and the close
occurring as well. During this time I am seeing around 6000 - 16k connections.
diff --git
a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/OzoneClientProducer.java
b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/OzoneClientProducer.java
index 4264f415a5..fa7c6cc26c 100644
---
a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/OzoneClientProducer.java
+++
b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/OzoneClientProducer.java
@@ -26,6 +26,7 @@
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.security.PrivilegedExceptionAction;
+import java.util.concurrent.atomic.AtomicInteger;
import org.apache.hadoop.hdds.conf.OzoneConfiguration;
import org.apache.hadoop.io.Text;
@@ -58,6 +59,8 @@
private static final Logger LOG =
LoggerFactory.getLogger(OzoneClientProducer.class);
+ private static final AtomicInteger COUNT = new AtomicInteger();
+ private int id = COUNT.incrementAndGet();
private OzoneClient client;
@Inject
@@ -77,12 +80,17 @@
@Produces
public OzoneClient createClient() throws OS3Exception, IOException {
+ LOG.info("client {}",id);
+ if (client != null) {
+ throw new AssertionError("client is not null, id=" + id);
+ }
client = getClient(ozoneConfiguration);
return client;
}
@PreDestroy
public void destroy() throws IOException {
+ LOG.info("close client{}",id);
client.close();
}
{{2021-08-23 16:16:51,870 INFO org.apache.hadoop.ozone.s3.OzoneClientProducer:
close client30399}}
{{2021-08-23 16:16:51,870 INFO org.apache.hadoop.ozone.s3.OzoneClientProducer:
client 30413}}
{{2021-08-23 16:16:51,871 INFO org.apache.hadoop.ozone.s3.OzoneClientProducer:
close client30400}}
{{2021-08-23 16:16:51,871 INFO org.apache.hadoop.ozone.s3.OzoneClientProducer:
close client30393}}
{{2021-08-23 16:16:51,871 INFO org.apache.hadoop.ozone.s3.OzoneClientProducer:
close client30395}}
{{2021-08-23 16:16:51,871 INFO org.apache.hadoop.ozone.s3.OzoneClientProducer:
close client30390}}
{{2021-08-23 16:16:51,872 INFO org.apache.hadoop.ozone.s3.OzoneClientProducer:
client 30414}}
{{2021-08-23 16:16:51,876 INFO org.apache.hadoop.ozone.s3.OzoneClientProducer:
client 30415}}
{{2021-08-23 16:16:51,877 INFO org.apache.hadoop.ozone.s3.OzoneClientProducer:
close client30389}}
{{2021-08-23 16:16:51,877 INFO org.apache.hadoop.ozone.s3.OzoneClientProducer:
client 30416}}
{{2021-08-23 16:16:51,877 INFO org.apache.hadoop.ozone.s3.OzoneClientProducer:
client 30417}}
{{2021-08-23 16:16:51,877 INFO org.apache.hadoop.ozone.s3.OzoneClientProducer:
client 30418}}
{{2021-08-23 16:16:51,878 INFO org.apache.hadoop.ozone.s3.OzoneClientProducer:
close client30402}}
{{2021-08-23 16:16:51,878 INFO org.apache.hadoop.ozone.s3.OzoneClientProducer:
close client30388}}
{{2021-08-23 16:16:51,878 INFO org.apache.hadoop.ozone.s3.OzoneClientProducer:
close client30398}}
{{2021-08-23 16:16:51,879 INFO org.apache.hadoop.ozone.s3.OzoneClientProducer:
client 30419}}
{{2021-08-23 16:16:51,879 INFO org.apache.hadoop.ozone.s3.OzoneClientProducer:
client 30420}}
{{2021-08-23 16:16:51,880 INFO org.apache.hadoop.ozone.s3.OzoneClientProducer:
client 30421}}
{{2021-08-23 16:16:51,881 INFO org.apache.hadoop.ozone.s3.OzoneClientProducer:
client 30422}}
{{2021-08-23 16:16:51,896 INFO org.apache.hadoop.ozone.s3.OzoneClientProducer:
close client30397}}
{{2021-08-23 16:16:51,897 INFO org.apache.hadoop.ozone.s3.OzoneClientProducer:
client 30423}}
was (Author: kerneltime):
Tried out the patch and I see a new client for each request and the close
occurring as well. During this time I am seeing around 6000 - 16k connections.
{{diff --git
a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/OzoneClientProducer.java
b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/OzoneClientProducer.java}}
{{index 4264f415a5..fa7c6cc26c 100644}}
{{---
a/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/OzoneClientProducer.java}}
{{+++
b/hadoop-ozone/s3gateway/src/main/java/org/apache/hadoop/ozone/s3/OzoneClientProducer.java}}
{{@@ -26,6 +26,7 @@}}
\{{ import java.io.IOException;}}
\{{ import java.nio.charset.StandardCharsets;}}
\{{ import java.security.PrivilegedExceptionAction;}}
{{+import java.util.concurrent.atomic.AtomicInteger;}}
{\{ import org.apache.hadoop.hdds.conf.OzoneConfiguration;}}
\{{ import org.apache.hadoop.io.Text;}}
{{@@ -58,6 +59,8 @@}}
\{{ private static final Logger LOG =}}
\{{ LoggerFactory.getLogger(OzoneClientProducer.class);}}
{{+ private static final AtomicInteger COUNT = new AtomicInteger();}}
{{+ private int id = COUNT.incrementAndGet();}}
\{{ private OzoneClient client;}}
{\{ @Inject}}
{{@@ -77,12 +80,17 @@}}
{\{ @Produces}}
\{{ public OzoneClient createClient() throws OS3Exception, IOException {}}
{{+ LOG.info("client {}",id);}}
{{+ if (client != null) {}}
{{+ throw new AssertionError("client is not null, id=" + id);}}
\{{+ }}}
\{{ client = getClient(ozoneConfiguration);}}
\{{ return client;}}
\{{ }}}
{\{ @PreDestroy}}
\{{ public void destroy() throws IOException {}}
{{+ LOG.info("close client{}",id);}}
\{{ client.close();}}
\{{ }}}
{{2021-08-23 16:16:51,870 INFO org.apache.hadoop.ozone.s3.OzoneClientProducer:
close client30399}}
{{2021-08-23 16:16:51,870 INFO org.apache.hadoop.ozone.s3.OzoneClientProducer:
client 30413}}
{{2021-08-23 16:16:51,871 INFO org.apache.hadoop.ozone.s3.OzoneClientProducer:
close client30400}}
{{2021-08-23 16:16:51,871 INFO org.apache.hadoop.ozone.s3.OzoneClientProducer:
close client30393}}
{{2021-08-23 16:16:51,871 INFO org.apache.hadoop.ozone.s3.OzoneClientProducer:
close client30395}}
{{2021-08-23 16:16:51,871 INFO org.apache.hadoop.ozone.s3.OzoneClientProducer:
close client30390}}
{{2021-08-23 16:16:51,872 INFO org.apache.hadoop.ozone.s3.OzoneClientProducer:
client 30414}}
{{2021-08-23 16:16:51,876 INFO org.apache.hadoop.ozone.s3.OzoneClientProducer:
client 30415}}
{{2021-08-23 16:16:51,877 INFO org.apache.hadoop.ozone.s3.OzoneClientProducer:
close client30389}}
{{2021-08-23 16:16:51,877 INFO org.apache.hadoop.ozone.s3.OzoneClientProducer:
client 30416}}
{{2021-08-23 16:16:51,877 INFO org.apache.hadoop.ozone.s3.OzoneClientProducer:
client 30417}}
{{2021-08-23 16:16:51,877 INFO org.apache.hadoop.ozone.s3.OzoneClientProducer:
client 30418}}
{{2021-08-23 16:16:51,878 INFO org.apache.hadoop.ozone.s3.OzoneClientProducer:
close client30402}}
{{2021-08-23 16:16:51,878 INFO org.apache.hadoop.ozone.s3.OzoneClientProducer:
close client30388}}
{{2021-08-23 16:16:51,878 INFO org.apache.hadoop.ozone.s3.OzoneClientProducer:
close client30398}}
{{2021-08-23 16:16:51,879 INFO org.apache.hadoop.ozone.s3.OzoneClientProducer:
client 30419}}
{{2021-08-23 16:16:51,879 INFO org.apache.hadoop.ozone.s3.OzoneClientProducer:
client 30420}}
{{2021-08-23 16:16:51,880 INFO org.apache.hadoop.ozone.s3.OzoneClientProducer:
client 30421}}
{{2021-08-23 16:16:51,881 INFO org.apache.hadoop.ozone.s3.OzoneClientProducer:
client 30422}}
{{2021-08-23 16:16:51,896 INFO org.apache.hadoop.ozone.s3.OzoneClientProducer:
close client30397}}
{{2021-08-23 16:16:51,897 INFO org.apache.hadoop.ozone.s3.OzoneClientProducer:
client 30423}}
> The OzoneClient in s3 endpoint is not closed correctly
> ------------------------------------------------------
>
> Key: HDDS-5614
> URL: https://issues.apache.org/jira/browse/HDDS-5614
> Project: Apache Ozone
> Issue Type: Bug
> Components: S3
> Reporter: Tsz-wo Sze
> Assignee: Tsz-wo Sze
> Priority: Major
>
> In [~kerneltime]'s S3 tests, we found that the close() method in
> EndpointBase.client, which is an OzoneClient, is never called.
> In OzoneClientProducer, client.close() is called in the destroy() method.
> However, the createClient() method keeps overwriting the "client" field. Only
> the last client will be closed.
> {code:java}
> //OzoneClientProducer.java
> @Produces
> public OzoneClient createClient() throws WebApplicationException,
> IOException {
> client = getClient(ozoneConfiguration);
> return client;
> }
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]