You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ozone.apache.org by "Ritesh H Shukla (Jira)" <ji...@apache.org> on 2021/08/23 23:18:00 UTC
[jira] [Comment Edited] (HDDS-5614) The OzoneClient in s3 endpoint
is not closed correctly
[ 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:17 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
{{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: issues-unsubscribe@ozone.apache.org
For additional commands, e-mail: issues-help@ozone.apache.org