W usłudze OpenAI Codex występuje błąd, który może doprowadzić do uszkodzenia dysku SSD w ciągu niecałego roku

Jeśli korzystają Państwo z interfejsu CLI Codex firmy OpenAI i pozostawią Państwo to narzędzie uruchomione przez dłuższy czas, Państwa dysk SSD może być nadmiernie obciążany.
Użytkownik serwisu GitHub o pseudonimie 1996fanrui opisał ten problem 14 czerwca po tym, jak zauważył niezwykle wysoką aktywność dysku na swoim komputerze. Po dokładniejszym zbadaniu sprawy odkrył, że Codex nieustannie obciążał lokalną bazę danych SQLite (przechowywaną w pliku ~/.codex/logs_2.sqlite) zapisami dzienników diagnostycznych. W ciągu 21 dni pracy dysk przyjął około 37 TB danych zapisu. W ujęciu rocznym daje to około 640 terabajtów. Typowy konsumencki dysk SSD o pojemności 1 TB ma żywotność wynoszącą około 600 TBW — zatem ten błąd, jeśli nie zostanie naprawiony, może wyczerpać całą gwarantowaną wytrzymałość dysku w mniej niż rok.
Winowajcą jest konfiguracja rejestrowania, której prawdopodobnie nikt nie zamierzał udostępniać użytkownikom końcowym. Moduł rejestrujący dane SQLite firmy Codex domyślnie działa na globalnym poziomie TRACE — najbardziej „hałaśliwym” z możliwych ustawień. Rejestruje on wszystko, od surowych danych przesyłanych przez WebSocket po prozaiczne zdarzenia systemu plików, takie jak otwieranie plików „passwd” i „ld.so.cache”. Ignoruje on również standardową zmienną środowiskową RUST_LOG, więc nie ma oczywistego sposobu na ograniczenie tego logowania. Około 71% rejestrowanych danych to „szum” na poziomie TRACE, który nie ma rzeczywistego znaczenia diagnostycznego – przynajmniej dla przeciętnego użytkownika.
Sytuację pogarsza amplifikacja zapisu. Baza danych nie tylko się powiększa, ale także wykonuje dziesiątki tysięcy operacji wstawiania i usuwania na minutę. Fizycznie zapisuje na dysku znacznie więcej danych, niż sugerowałby rozmiar pliku.
Jest to w rzeczywistości znany problem występujący w różnych postaciach co najmniej od kwietnia, a w ciągu roku zgłoszono wiele powiązanych zgłoszeń. Najnowszy dziennik zmian OpenAI zawierał pewne poprawki dotyczące niezawodności SQLite, ale nie poruszył kwestii szybkości zapisu. Problem ten pozostaje nadal nierozwiązany.
W międzyczasie, system Linux oraz macOS mogą utworzyć dowiązanie symboliczne pliku „~/.codex/logs_2.sqlite” do katalogu „/tmp/”, aby przekierować operacje zapisu do pamięci RAM. Plik ten nie zawiera żadnych danych dotyczących rozmów, więc jego utrata po ponownym uruchomieniu systemu nie stanowi problemu.









