----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/75278/ -----------------------------------------------------------
(Updated April 21, 2025, 8:33 a.m.) Review request for atlas, Jayendra Parab, Pinal Shah, and Sheetal Shah. Bugs: ATLAS-4924 https://issues.apache.org/jira/browse/ATLAS-4924 Repository: atlas Description ------- When client timezone is UTC and server is on PST timezone, search filters will process the result according to the system timezone i.e PST and hence, the results are wrongly fetched. This is an intermittent issue as if the entities were created according to PST timezones then the search filter could have fetched proper results. Steps to reproduce: ------------------ Scenario : Using "Today" filter with timerange operator, also client and server are on different timezones say UTC and PST: 1. Create two entities in UTC timezones. For example: If Today is 18th Nov'24 set one entity createTime as "1731888000000" and other as "1731974399000" which are basically start and end time of the day. 2. Search that entity with its typedef and select "createTime" as attributeName and operator as "Time Range" and value as "Today". Results: -------- Expectation: Both the entities should be fetched. Actual: Only one entity is getting fetched having createTime as "1731974399000". Fix: ----- The entities must be created in UTC timezone and we have fixed the timezone while processing search filter to UTC as it is considered as standard time globally and hence, eliminating the dependency of processing the result according to the server timezone. The results will be seen as per the local timezone of the client. Meaning the startTime and endTime for "Today" timerange will be in UTC format and displaying of the results will be in Local timezone of the client. Note: ----- In scenarios where the server and the client are having date difference (for example: if the server was on UTC timezone and client on PST timezone) then the result will vary as the filteration of the data will always be in UTC timezone.(i.e if the request was called on or after 4pm PST then "TODAY" timerange will be from 19th and not 18th as the date changes for UTC timezone) Diffs (updated) ----- repository/src/main/java/org/apache/atlas/discovery/SearchProcessor.java 6594b88a9 Diff: https://reviews.apache.org/r/75278/diff/2/ Changes: https://reviews.apache.org/r/75278/diff/1-2/ Testing ------- Manual Testing: Scenario 1: The server was on PST timezone and client was in UTC timezone. 1. Created two entities having createTime in UTC timezone. 2. Applied search filter with timerange operator and value as "Today". Result was it fetched the results properly. Scenario 2: The server was on UTC timezone and client on PST timezone and perform the both steps mentioned above. Result was it fetched the results properly. Thanks, Priyanshi Shah