Inserting point with nano time precision are dropped because of Retention policy

System info:
Influx db version: 1.3.7
Influx java client: 2.7

Steps to reproduce:
create default retention policy for one year:
CREATE RETENTION POLICY one_year ON winner DURATION 365d PERCISREPLICATION 1 DEFAULT;

Insert point:

  Point point = Point.measurement(metricName)
                        .addField("aa", "valA")
                        .time(System.nanoTime(), TimeUnit.NANOSECONDS)
                        .tag("cc", "tagC")
                        .build();

Expected behavior: Points will be added with nano percision since my retention policy is for the current year and point are new.

Actual behavior: No point was inserted. Got this exception:
{“error”:“partial write: points beyond retention policy dropped=1”}

From github help I got that
the System.nanotime() gives us 401609508779220 which is 1970-01-05 15:33:29.50877922 +0000 UTC

How can I get this right with a real nanotime?

This seems to be an issue with the System.nanoTime() not generating a time that is within the retention policy.

I’ve been reading about some of the nuances of System.nanoTime(), and it looks like it better used for elapsed time than wallclock time.