Kod VS powoduje losowe i całkowite zawieszenie 17.10, 18.04

16

Przeczytaj : Zobacz ostatni bit. Nie sądzę, że jest to problem związany z Ubuntu, ale raczej VS Code.

Ostatnio, poniżej 17.10 i 18.04 (właśnie zaktualizowałem dzisiaj), Ubuntu będzie losowo i całkowicie zawiesza się. Nie mogę przesunąć kursora ani użyć klawiatury. Oczywiście bezskutecznie próbowałem przejść na sesję TTY. Za każdym razem muszę uciekać się do SysRq+ REISUB, który (oczywiście) nie jest preferowany.

Próbowałem zmienić sterowniki graficzne, zgodnie z teorią, że tak może być. Pierwotnie korzystałem ze sterownika nVidia o otwartym kodzie źródłowym i bezskutecznie przełączyłem się na prawnie zastrzeżone. Obecnie używam sterownika open source.

Wszystko, co zwykle mam otwarte, to Firefox (nie ma załadowanych ton kart ) i VS Code, z najwyżej kilkoma plikami i otwartym terminalem.

Jakieś pomysły?

Aktualizacja: dzienniki systemowe nie wskazują na nic, co się dzieje, nie mówiąc już o czymś złym. Nie wiem, czy jest to powiązane, ale czasami (a zwłaszcza po uruchomieniu) programy zajmują dużo czasu (> 5-10 sekund), nawet programy z linii poleceń.

Kolejna aktualizacja! - Nawet przy wyłączonych wszystkich rozszerzeniach GNOME wciąż się zawiesił. Próbowałem XFCE, który wciąż się zawiesił.

Podsumowanie : Ubuntu całkowicie zawiesza się w pozornie losowych momentach, nie pozostawiając śladu w logach i nie jest związany z żadnym konkretnym środowiskiem graficznym ani rozszerzeniami GNOME.

(prawdopodobnie ostateczna) aktualizacja: Jestem przekonany, że jest to problem z kodem VS. GNOME działam od wielu dni, przy otwartych innych aplikacjach Electron (Slack, Pulse itp.) I nie miałem ani jednego zamrożenia. Mam kod DM'd VS na Twitterze i prawdopodobnie złożę raport o błędzie, ponieważ jeszcze nie odpowiedzieli.

jhpratt GOFUNDME RELICENSING
źródło
1
Zacznij od swoich dzienników. To o wiele łatwiejsze niż mawianie ze sterownikami wideo.
user535733,
@ user535733 Który konkretnie dziennik?
jhpratt GOFUNDME RELICENSING
Cześć jhpratt, dla mnie pracował ten askubuntu.com/a/870235/790920 .
abu_bua
@jhpratt Sugeruję metodyczne przeszukiwanie WSZYSTKICH dzienników w / var / log. Dość szybko powinno być jasne, które z nich są istotne, a które nie. Oczywiście szukasz kilku sekund, zanim nastąpi zamrożenie, a nie tylko żmudne czytanie wszystkiego ... więc pomaga, jeśli śledzisz DOKŁADNY czas zdarzenia.
user535733,
1
journalctl -b -1 -xepokaże Ci logi na końcu poprzedniego rozruchu. Ile masz pamięci RAM? Ile wymiany? free;swaponpowiem Ci.
waltinator,

Odpowiedzi:

8

Okazuje się więc, że nie jest to specyficzne dla Ubuntu, ale i tak opublikuję to tutaj w celu odniesienia w przyszłości.

Najwyraźniej, mimo że ignoruję niektóre pliki przy użyciu tego files.excludeustawienia (zwłaszcza ./node_moduleskatalogu), VS Code nadal obserwuje te pliki pod kątem zmian.

Aby rozwiązać ten problem, po prostu skopiuj listę z files.excludedo files.watcherExclude. Zapobiegnie to przeszukiwaniu przez VS Code wielu tysięcy plików znajdujących się w node_modulesinnych podobnych katalogach. W ten sposób pozostawi trochę pamięci RAM dla Chrome.

jhpratt GOFUNDME RELICENSING
źródło
cześć @jhpratt, czy te zmiany dotyczą zmian, które należy wprowadzić w settings.jsonpliku VS Code ?
cryanbhu
1
@ cryanbhu Tak, to prawda. Według mojej najlepszej wiedzy, te informacje również są dokładne.
jhpratt GOFUNDME RELICENSING
2
Widzę, że node_modulesto już watcherExcludekoniec, ale wciąż mam ten sam problem.
Mohammad Faisal
**/.git/objects/**, **/.git/subtree-cache/**i **/node_modules/**są domyślnie uwzględnione wfiles.watcherExclude
noraj
3

Właśnie na to wpadłem. Po uruchomieniu w dużym projekcie mój system zawiesił się po ~ 20 sekundach i przestał odpowiadać (Ubuntu 18.04). Uruchomienie htopa podczas uruchamiania VSCode pokazało, że zajęło to wszystkie rdzenie do 100% (i7-8700K), zjadłem całą pamięć (16 gb), a następnie zamianę. Zamrożenie nastąpiło chwilę później. Działo się tak z powodu złego rozszerzenia, w moim przypadku był to CSS Peek.

Spróbuj więc uruchomić vscode z wyłączonymi rozszerzeniami (kod --disable-extensions) i sprawdź, czy nadal tak się dzieje. Jeśli nie wyśledzi uszkodzonego rozszerzenia i wyśle ​​go do piekła .

Miałem przypadkowe pełne zawieszenia i spędziłem kilka godzin, próbując dowiedzieć się, dlaczego. Po ponownym uruchomieniu dzienniki naprawdę nie były pomocne. Początkowo myślałem, że to sterownik NVIDIA, ale nie - tylko rozszerzenie VSCode.

neculaesei
źródło
3

Ten sam problem występuje w moim Ubuntu 16.04.

Wyłączyłem git.autorefresh w Ustawieniach , a następnie działa bezbłędnie i płynnie

Kumar Immanuel
źródło
1
Też mi pomógł, dzięki.
ivan.ukr
Ten parametr jest domyślnie wyłączony.
noraj
2

Miałem ten sam problem. Aby to naprawić w przypadku konkretnego projektu, musisz zaktualizować go, .vscode/settings.jsonaby wyglądał mniej więcej tak:

{
  "python.pythonPath": "/usr/bin/python3",
  "files.exclude": {
    "**/.git": true,
    "**/.svn": true,
    "**/.hg": true,
    "**/CVS": true,
    "**/.DS_Store": true,
    "**/node_modules": true,
    "**/.firebase": true
  },
  "files.watcherExclude": {
    "**/.git/objects/**": true,
    "**/.git/subtree-cache/**": true,
    "**/node_modules/**": true
  }
}
Rudolf Olah
źródło
1
te 3 files.watcherExcludesą domyślne w kodzie vs
1.42.1
1

Doświadczyłem tego samego problemu. W końcu zdałem sobie sprawę, że w moim przypadku problem kończy się w pamięci (mam RAM 8 GB i tylko 1 GB partycji wymiany na dysku). Naprawiłem to, przydzielając dodatkową przestrzeń wymiany za pomocą pliku w moim katalogu głównym:

sudo fallocate -l 1G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

Spowoduje to tymczasowe włączenie dodatkowych 8 GB wymiany dla twojego systemu. Jeśli to pomoże, tutaj można przeczytać dalsze instrukcje umożliwiające nowego swapa stale.

Inne opcje to: fizyczne dodanie pamięci RAM lub dodanie / powiększenie partycji wymiany.

Użyłem nowej wymiany jako pliku, ponieważ mam zaszyfrowany system luks + lvm, a zmiana rozmiaru istniejącej partycji wymiany jest zbyt skomplikowana i ryzykowna w moim przypadku.

PS Mam Ubuntu 18.04

Artem S.
źródło
Prawdopodobnie nikt nie wyda czasu / pieniędzy na zwiększenie pamięci RAM z powodu „edytora tekstu”.
matousc
@ matousc dobrze masz rację, i dlatego jest to druga opcja. Najpierw dodaj swap
Artem S.
@matousc VS Code jest pełnoprawnym IDE, a także edytorem tekstu.
prooffreader
1

Mam również przypadkowe awarie systemu podczas uruchamiania VSC. Próbowałem nawet zacząć bez rozszerzeń, co wcale mi nie pomogło. Kilka razy mój system zawiesił się przy starcie VSC.

Jednak sprawdziłem dzienniki i stwierdziłem, że te awarie mogą korelować ze sterownikiem graficznym (NVidia GTX 660).

Rozwiązanie w moim przypadku: przejście z Nouveau na własny sterownik (wybrałem pakiet meta)

Btw: Korzystanie z Ubuntu 18.04

Gordon
źródło