[ 
https://issues.apache.org/jira/browse/HDDS-5614?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17403427#comment-17403427
 ] 

Ritesh H Shukla commented on HDDS-5614:
---------------------------------------

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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to