-----------------------------------------------------------
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

Reply via email to