ONTAP Discussions

Support date passed 2038.




We are a software company that allows our customers to store data on netApp. We have code that writes out files onto netAPP with retention period. We recently hit the issue of not being able to set retention passed 2038. We were testing against netApp 8.2. Intrestingly enough when a retention date passed 2038 was passed to netapp, and the file made read only, it automatically wraps it around. That behavior has been changed in 9.3, where it does not allow us to use date beyond 2038. So my questions are the following:


1. Should my code explicitly map date greater thatn 2038 to dates between 1970 and 2003?

2. Is the difference I mentioned between 8.2 and 9.3 correct?

3. If we have a customer that would like to retain files passed 2071, how do we do that?



Thank you for taking the time to read this and I await your response





Hi there,


I'm not sure of your familiarity, but this is going to be a problem with many unix based systems. Low precision time is a 32bit signed integer of the number of seconds since Jan 1, 1970. The date you've found in 2038 is the maximum value of this - https://en.wikipedia.org/wiki/Year_2038_problem


We are tracking this issue holistically, and have a number of BURTs open, including several specifically around snaplock and post 2038 dates, but there are also required compatibilities on client systems and NFS for full implementation. At this point we are aiming for support for dates to 2106, but under the advice in our now-archived TR-3738, a 2071 date was also mentioned. 


Because of the in-depth analysis required, the somewhat esoteric nature of this request, and the potential risks, I suggest opening a support case is probably the best way to obtain clear guidance here.


Sorry I can't be of more assistance.


Thank you for your reply.


I'm aware of the 32-bit problem. I knew about the wraparound in 8.2 I assumed it would have been somewhat fix in latest versions of snaplock.

Furthermore the diffrences between 8.2 and 9.3 seemed a bit strange to me. In 8.2 the device wrapped the date around if it sees dates greater than 20380118, but in 9.3 it does not, I just needed comfirmation. I tested it myself and that is what I saw. Can you send me a link to TR-3738, I can't seem to find it.


Thank you very much for taking the time to reply have a good day.




We have removed TR-3738 from our website and I can't seem to see a replacement unfortunately. I was only able to find an internally archived version.


Our support people will be able to reach out to product managers to find out how to map dates past 2038 now if it is no-longer functional in the manner previously specified.