[
https://issues.apache.org/jira/browse/HDDS-13781?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
ASF GitHub Bot updated HDDS-13781:
----------------------------------
Labels: pull-request-available (was: )
> Certificate expiry date should consider time zone daylight saving impact
> ------------------------------------------------------------------------
>
> Key: HDDS-13781
> URL: https://issues.apache.org/jira/browse/HDDS-13781
> Project: Apache Ozone
> Issue Type: Bug
> Reporter: Sammi Chen
> Assignee: Sammi Chen
> Priority: Major
> Labels: pull-request-available
>
> This is the “ozone admin cert list” output from one cluster,
> {code:java}
> [root@quasar-gpbqby-1 systest]# ozone admin cert list
> Certificate list:(Type=VALID, BatchSize=20, CertCount=15)
> SerialNumber Valid From Expiry
> Subject
> Issuer
>
> 1 Tue Oct 07 05:00:17 PDT 2025 Fri Nov 15 05:00:17 PST 2030
>
> [email protected],OU=ccb54a4d-280c-475e-b7e0-78a2707f62e1,O=CID-bdfb77b9-5929-43c1-9ad7-afeae89c653a,SERIALNUMBER=1
>
> [email protected],OU=ccb54a4d-280c-475e-b7e0-78a2707f62e1,O=CID-bdfb77b9-5929-43c1-9ad7-afeae89c653a,SERIALNUMBER=1
> [root@quasar-gpbqby-1 systest]# date
> Thu Oct 9 07:48:45 PM PDT 2025 {code}
> From this output, it looks like the hour of two date matches. But if convert
> Date to epoch, there is a 60 min unexpected gap, and this is caused by
> {{LocalDateTime}} doesn’t consider time zone. The current way of specify
> endDate({color:#1d1c1d}
> {color}[https://github.com/apache/ozone/blob/master/hadoop-hdds/framework/src/main/java/or[…]p/hdds/security/x509/certificate/authority/DefaultCAServer.java|https://github.com/apache/ozone/blob/master/hadoop-hdds/framework/src/main/java/org/apache/hadoop/hdds/security/x509/certificate/authority/DefaultCAServer.java#L246])
> works well on time zone which doesn’t have Daylight Saving, but it will
> cause the endDate one hour ahead or after the expected endDate, if the
> beginDate and endDate, one with Daylight Saving, while another without.
>
> a. beginDate PDT, endDate PST
> {code:java}
> begin = Fri Oct 24 19:46:50 PDT 2025
> end = Mon Dec 02 19:46:50 PST 2030
> zoneId = America/Los_Angeles, durationEpoch = 161136000000
> beginEpoch = 1761360410000, endEpoch = 1922500010000, diff(endEpoch -
> beginEpoch) = 161139600000
> is diff match duration? false, gap(diff - durationEpoch) = 60 min {code}
> b. beginDate PST, endDate PDT
> {code:java}
> begin = Mon Feb 24 19:46:50 PST 2025
> end = Thu Apr 04 19:46:50 PDT 2030
> zoneId = America/Los_Angeles, durationEpoch = 161136000000
> beginEpoch = 1740455210000, endEpoch = 1901587610000, diff(endEpoch -
> beginEpoch) = 161132400000
> is diff match duration? false, gap(diff - durationEpoch) = -60 min {code}
> c. both beginDate and endDate PDT
> {code:java}
> begin = Sat May 24 19:46:50 PDT 2025
> end = Tue Jul 02 19:46:50 PDT 2030
> zoneId = America/Los_Angeles, durationEpoch = 161136000000
> beginEpoch = 1748141210000, endEpoch = 1909277210000, diff(endEpoch -
> beginEpoch) = 161136000000
> is diff match duration? true, gap(diff - durationEpoch) = 0 min {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]