
WATCH AT EASE · 實用指南
科技
解決日常問題,核實內容的目前適用性。
97–120 / 343



遇到 UnsupportedClassVersionError?改 Java 前先證明類別檔與載入 JVM
錯誤已指出相容性不符的兩端。先保留類別檔主版本、產物與真實啟動器,再決定升級 runtime 或重新設定建置目標,清除陳舊輸出,並在本機、CI 與類生產入口驗證同一產物。

JSONDecodeError 停在第 1 行第 1 欄?先檢查位元組再改解析器
字元零只說明失敗位置,不說明原因。先保留狀態碼、媒體類型、本文長度與安全位元組指紋,區分空本文、HTML、解碼或截斷,再修復產生端或呼叫端契約,並以有效、空與無效樣本驗收。

npm 顯示「getaddrinfo EAI_AGAIN」?改 DNS 前先證明解析環境
固定正確的 registry 主機名與失敗的 shell、CI、WSL 或容器,在同一環境驗證解析,再分開檢查 npm proxy、TLS 與 registry。

Redis 顯示「MISCONF…無法持久化到磁碟」?恢復寫入前先證明 RDB 失敗邊界
不要把關閉 stop-writes-on-bgsave-error 當成修復證明。先記錄錯誤、RDB 路徑、服務日誌、檔案系統與 INFO persistence;只修一個已量測原因,再要求 BGSAVE 成功、快照更新和代表性寫入通過。

Linux 顯示「fork: Resource temporarily unavailable」?先證明耗盡的是哪一層工作預算
提高限制、終止程序或重新啟動前,先區分使用者、cgroup、systemd 與核心的 PID 或執行緒上限。

PostgreSQL 顯示「could not resize shared memory segment」?先證明哪個檔案系統耗盡
ENOSPC 不代表資料庫磁碟已滿。先保留完整分配錯誤,從 PostgreSQL 所在命名空間檢查掛載,把峰值連到失敗工作負載,再只改一個已證實的邊界並重跑同一操作。

Linux 顯示「Text file busy」?覆寫或重試前先鎖定執行中的 inode
ETXTBSY 可能表示部署正在寫入執行中的可執行檔,也可能表示啟動器要執行仍以寫入模式開啟的檔案。終止任何程序前先保留失敗系統呼叫、程序、inode 與命名空間,再修正競態或原子替換路徑。

Nginx 顯示「upstream prematurely closed connection」?加逾時前先對齊後端時間線
這表示 Nginx 已連到上游,但對端在預期回應完成前結束交換。先保存精確階段與上游位址,把同一請求和程序退出或重啟對齊,再只改一個邊界並安全重播。

Linux 顯示「inotify 監看數已達上限」?調高 sysctl 前先證明程序與限制
inotify 回傳 ENOSPC,可能是單一使用者的實例耗盡、監看項耗盡,也可能另有事件佇列溢位。先把活動描述元與監看物件歸屬到真實程序,再縮小範圍,或只提高已證實的邊界。

NFS 顯示「Stale file handle」?重新掛載前先證明哪個伺服器身分改變
ESTALE 表示已保存的參照不再指向有效物件。先分開掛載時 export 故障與操作時物件失效,修好伺服器邊界,再讓一台客戶端重新連線並驗收。


rsync 顯示「Broken pipe (32)」?調整 SSH 前先找出第一個失敗端
傳送端訊息常出現在接收端或遠端 shell 已失敗之後。保留兩端記錄、排序錯誤、修復首個邊界,再驗證續傳結果。

Git 顯示分支已在另一個 worktree 檢出?prune 或強制前先證明所有者
列出所有關聯 worktree,保存未提交或未推送工作,再區分真實所有者、已移動、離線或缺少路徑,選擇 remove、repair、prune、游離檢出或新分支。




GNU make 顯示 jobserver unavailable?加入 -j 前先證明遞迴邊界
子 make 因未繼承協調通道而退回單一工作。找出第一個父配方或包裝器,只修正真正理解 jobserver 的邊界,再量測共享上限。

Git 顯示「detected dubious ownership」:加入 safe.directory 前先查擁有權邊界
把致命錯誤視為身分不一致,而非惱人的警告。先核對 Git 程序使用者、儲存庫擁有者、掛載路徑與設定範圍,再決定是否只放行一條精確路徑。

curl 錯誤 77?更換憑證前先證明哪個 CA 檔案或目錄載入失敗
錯誤 77 表示 curl 無法讀取所選 CA 憑證位置。先確認二進位檔、TLS 後端、覆寫設定與實際路徑,再檢查目錄穿越、檔案位元組和儲存結構,只修復一個輸入,並在不使用 insecure 模式下複測。

curl 錯誤 18?重試或續傳前先證明缺失位元組
CURLE_PARTIAL_FILE 表示實際收到的大小與對端先前宣告的大小不一致。先保留殘缺檔案、回應標頭與追蹤,再區分訊息分幀、協定和中介層,最後決定重新下載或綁定驗證器的續傳。

出現「Invalid cross-device link」?複製或刪除前先證明系統呼叫
EXDEV 可能是跨掛載點 rename,也可能是路徑政策拒絕。保存呼叫者與系統呼叫、比較掛載身分,再選擇驗證目標前保留來源的傳輸契約。

systemd 顯示 status=218/CAPABILITIES?先證明管理器、核心與能力集合
程式可能根本未執行。保存第一條 journal 錯誤、讀取生效 unit、區分系統、使用者與容器邊界,只修改證據證明無效的能力轉換。