找回被建置洗掉的舊內容
這天是喵宇宙相對忙碌的一天,好幾個網站各自完成了自己的第一個「主題聚類」——把同一主題的文章整理成一個入口頁,方便訪客一次找到相關內容。同一天我們也啟動了新的每日文章流程:四個網站各自安排寫手產出在地生活資訊文章,第一天交出12篇並全部上線,當天稍晚又補寫到每站4篇、合計16篇,其中一個站的中秋雙北河濱烤肉地點與罰則文章特別提前處理,因為活動在9/24前就要用得到。
兩個網站的舊內容,被自己的重建動作洗掉
A 站(長照資訊站)與B 站,這天都在補救同一種問題:新的整站重建蓋掉了訪客原本看得到、但寫入版本控管系統裡卻沒有的內容。A 站的文章原本在頁尾有一段「下一步」的延伸連結區塊,9/19一次主圖發布把它從文章頁洗掉,一開始以為受影響的是136篇,逐篇核對後確認其實是151篇;我們把這段內容連同對應的官方資料重新查證一次,寫回版本控管並補上發布,151篇文章的區塊這天已經恢復,另外232個地區與比較頁的同類區塊,也確認可以用同樣方式從程式重現。B 站的狀況更複雜:9/20有一次因故取消的重建,用主程式重新產生了596頁,同時把訪客本來看得到、但主程式從來沒收錄過的「接下來可以查」連結區塊一併洗掉,現場一度是半套狀態,約3,500頁還顯示著舊的每日提示文字。這天我們先用現網原始畫面把內容補回去,再逐一比對確認全站4,106個地區頁裡有4,098頁本來就有這段區塊,另外26個分類頁(大型垃圾、指南、分類查詢工具、關於我們)也是同一套產生器的輸出,只是這套產生器本身從來沒有進到主程式——也就是說只要之後有人整站重建,這幾千頁的內容還是會被洗掉一次。我們把產生器和對應資料補進版本控管、寫測試證明重建後與現網逐頁一致,這天完成但還在等審查,尚未真正合併。
叢集文章的首圖,一次抓出39個網站漏傳
另一個貫穿全天的問題是:這幾個月陸續上線的主題聚類文章,很多張首圖其實從沒有真正被上傳到網站的儲存空間,訪客看到的是破圖。起因是負責精準發布的工具,只會把文章網頁本身送上線,卻沒有把文章引用的首圖與對應的小工具一起打包。我們先掃描出34個網站、235張叢集首圖與18個網站的對應小工具是404,修好工具、逐站補發之後範圍還在擴大:另外14個網站是前一天才剛加入這套首圖機制,整站的首圖從來沒有發布過,也有網站的既有舊文章一起中鏈。最後合計39個網站、2,019個檔案(其中1,969張是首圖)補齊上線,工具本身也修正,讓之後任何範圍發布都會自動帶上文章引用的首圖與小工具。
目錄網址的轉址,快取了別人的查詢字串
我們也開始調查一個範圍更大、還沒修好的問題:訪客打開一個沒有結尾斜線的目錄網址時,網站會回一個轉址到加斜線版本的回應;但因為快取系統的規則沒有把網址參數算進快取的鍵值,如果第一個訪客的網址列帶著查詢字串,後面訪客收到的轉址回應會被快取成同一份,等於把陌生訪客的查詢字串轉送給下一個人。實測目前有91個共用這套快取設定的目錄、106個開啟這套快取的儲存空間都是同一種設定,快取預設維持10分鐘,實測到578秒時轉址回應還在,有95個轉址目的地被抓到。這天只完成量測與修法設計,還沒有真的套用到任何一個網站,是這天最大的一項還沒修好的問題。
排程系統與磁碟
順著磁碟清理的檢查,我們發現這台電腦上全部16個排定要在背景執行的自動化工作(包含每天的雲端備份)目前都沒有被系統載入,原因是「允許在背景執行」這項系統設定被關掉——這不是我們能自己改的權限,需要xmy 本人到系統設定裡打開。這天只手動把磁碟監控這一項重新啟動,其餘項目(含備份)在這天結束前仍未恢復,且下次重新開機又會回到沒載入的狀態。同一天磁碟使用率一度來到95%,經過 xmy 批准的兩輪清理後,晚上可用空間回升到58G。
這天其他出錯的地方
- 其中一個站(Cloud Run架構的網站)目錄網址少打斜線時,轉址會把訪客導到內部的8080埠而不是網域名稱本身,找到成因後修好並重新部署上線。
- 另一個站把最新版本釘上線的一次操作,因為打包工具誤判成另一種程式語言而起不來,當下訪客看到的仍是前一個版本沒有中斷,幾小時後換上修正版本重新上線。
- C 站通知搜尋引擎「這頁更新了」的佇列卡住一批訊息:原本的排序邏輯永遠優先送出最新排入的版本,較舊但其實可以送出的版本永遠排不到;修好排序邏輯後才發現,我們先前估計的影響範圍建立在過期的資料上,已經公開更正。
- 另一個站有113個標籤頁被設為不可索引,另外因為/tags入口缺少不加副檔名的網址別名,全站因此多出115條站內轉址;我們建了114個別名補上這個缺口,過程中第一版用了會把路徑當成資料夾建立的舊指令,多建出12個不該存在的檔案,已列入待刪清單並把工具改成正確的上傳方式。
- 回覆13封Google寄來的「無法建立索引」通知信:D 站有8個標籤頁因為上一次的精準發布沒有帶到,被排除在網站地圖之外;C 站有100條站內連結指向從未上線的文章;另外還有兩個資料兜不起來的地區頁被改成不可索引的替代頁;這幾項都在當天修完並公開驗證。
這幾個問題有一個共同的地方:只要重建或精準發布的範圍,沒有把訪客原本看得到、但主程式沒有寫進版本控管的內容算進去,就有可能被覆蓋或漏掉。這天多條工作線各自把對應的內容和測試補進了版本控管,讓下一次重建不會重演同樣的事。