CACTI 與 2020/9/13

正確地來說,是 unix timestamp = 1600000000 這件事。

CACTI 在檢查 graph start/end 日期與時間時,把檢查 timestamp 的公式寫死在程式碼中了,1600000000 就這樣變成 timestamp 的上限值。這在 2001 年 CACTI 誕生時是沒問題的,可是沒想到大家一用就是19年過去了,這個 BUG 才在上個月讓大家「同時」遇到。

細節的部份請大家看:

Unix timestamps after Sep 13 2020 are rejected as graph start/end arguments

Timestamp BUG #3798

雖然官方其實早在半年前就更新了⋯⋯但如果你的系統不方便升級 CACTI 版本的話(很多人都是這樣的,所以才會現在一大堆人也遇到),就手動改吧,改法就照上面第二個連結教的:

1. 如果你 CACTI 目錄下有 graph_json.php 這隻檔案,那就是用 vi 修理它,找出 1600000000 這個字串,會有兩個地方有(分別用來檢查 graph_start 與 graph_end 變數),把它們都改成 2600000000 就能將這個 BUG 的發作時間延後到 2052/5/22 了。

2. 如果你 CACTI(通常是 0.8.x 版)目錄下有 graph_image.php 與 graph_xport.php,就抓這兩隻程式來修理,照上面的改法。

至於官方的改法也很妙,就只是把這個常數拉到 include/global_constants.php 定義成 FILTER_VALIDATE_MAX_DATE_AS_INT,但這樣做(目前是定義 2088385563)一樣只是把 BUG 發作時間延到 2036/3/6 呀⋯⋯

總之,不管是哪個改法,請把上面對應的日期加到你的行事曆吧。

沒有留言:

張貼留言

CACTI 與 2020/9/13

正確地來說,是 unix timestamp = 1600000000 這件事。 CACTI 在檢查 graph start/end 日期與時間時,把檢查 timestamp 的公式寫死在程式碼中了,1600000000 就這樣變成 timestamp 的上限值。這在 2001 ...