fix(schedule): 條目長度那道警告本來說不出話
新加的長度閘門用了 warn 來報「距離上限不到 100」,而這一支只定義 note。 殼回一句「warn: not found」到 stderr,那句提醒一次都沒印出來。 一道說不出話的檢核,跟沒有那道檢核是同一件事——而且它連自己壞了都只在 stderr 留一行,正常輸出上看不出任何異常。 修掉之後它第一次開口就說出一件要處理的事:這台機器的條目有 973 個位元組, 距上限只剩 27。長度大半來自 wiki 存取庫那一系列變數的快照,一支約 40 個 位元組——再多一支頁型變數就裝不起來,而那一次只會回 command too long。 所以訊息裡把這個來源講出來,人才知道要縮哪裡。 這一支之前就踩過同一個坑(另一段檢核也寫了 warn),所以註解裡寫明它只有 note,沒有 warn。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+4
-1
@@ -731,8 +731,11 @@ crontab_install() {
|
||||
if [ "$_len" -ge "$CRON_LINE_MAX" ]; then
|
||||
die 4 "$_job 的條目有 $_len 個位元組,達到 cron 一行的上限 $CRON_LINE_MAX,這一批裝不進去。條目長度的來源是環境變數快照($SNAPSHOT_NAMES)與 PATH 快照——先看哪一個值特別長,多半是掃描起點或排除清單寫得太長。縮短那個值,或用 JSC_ASSIST_CRON_LINE_MAX 覆寫上限(覆寫之前先確認這台機器的 cron 真的收得下)。"
|
||||
fi
|
||||
# 這一支只定義 note,沒有 warn。這裡本來寫 warn,於是殼回一句「warn: not found」而那句
|
||||
# 提醒一次都沒印出來——條目長到 973 個位元組、距上限只剩 27,而該說話的那道檢核是啞的。
|
||||
# 一道說不出話的檢核跟沒有那道檢核是同一件事,而且它連自己壞了都只在 stderr 留一行。
|
||||
if [ "$_len" -ge $((CRON_LINE_MAX - 100)) ]; then
|
||||
warn "$_job 的條目有 $_len 個位元組,距離 cron 一行的上限 $CRON_LINE_MAX 不到 100。再多加一個環境變數快照就會裝不進去,而那一次的錯誤訊息只會說 command too long。"
|
||||
note "$_job 的條目有 $_len 個位元組,距離 cron 一行的上限 $CRON_LINE_MAX 不到 100。再多加一個環境變數快照就會裝不進去,而那一次的錯誤訊息只會說 command too long。條目長度大半來自 wiki 存取庫那一系列變數的快照,一支約 40 個位元組。"
|
||||
fi
|
||||
done
|
||||
|
||||
|
||||
Reference in New Issue
Block a user