Browse Source

[3673] One more update to the comment in the time conversion for PgSQL.

Marcin Siodelski 10 years ago
parent
commit
6e7fe23502
1 changed files with 5 additions and 4 deletions
  1. 5 4
      src/lib/dhcpsrv/pgsql_lease_mgr.cc

+ 5 - 4
src/lib/dhcpsrv/pgsql_lease_mgr.cc

@@ -315,10 +315,11 @@ public:
         int64_t expire_time_64 = static_cast<int64_t>(cltt) +
             static_cast<int64_t>(valid_lifetime);
 
-        // On 32-bit systems the time_t is implemented as the int32_t value.
-        // We want to detect overflows beyond maximum int32_t value here
-        // to avoid the overflow in the PostgreSQL database. The PostgreSQL
-        // doesn't catch those overflows on its own.
+        // It has been observed that the PostgreSQL doesn't deal well with the
+        // timestamp values beyond the LeaseMgr::MAX_DB_TIME seconds since the
+        // beginning of the epoch (around year 2038). The value is often
+        // stored in the database but it is invalid when read back (overflow?).
+        // Hence, the maximum timestamp value is restricted here.
         if (expire_time_64 > LeaseMgr::MAX_DB_TIME) {
             isc_throw(isc::BadValue, "Time value is too large: " << expire_time_64);
         }