Calva: Windows 10 WSL hang saat menghubungkan ke nrepl / memulai Figwheel Main

Dibuat pada 28 Sep 2019  ·  20Komentar  ·  Sumber: BetterThanTomorrow/calva

Hai, yang di sana,

Saya melihat WSL menggantung / dibiarkan tidak dapat digunakan setelah Calva mencoba terhubung..

Langkah:

  1. Luncurkan VSCode
  2. Buka terminal WSL (bash)
  3. Mulai server nrepl clj -Adev:nrepl-server
  4. Terhubung dari Calva
  5. Pilih Clojure CLI + Figwheel Main
  6. Konfirmasi host yang ditampilkan: port

Diharapkan: Calva terhubung, membuka perwakilan CLJ, membuka perwakilan CLJS

Aktual: Calva terhubung, membuka repl CLJ, lalu WSL hang saat membuka repl CLJS.. Proses WSL tidak dapat dimatikan, tidak ada terminal WSL baru yang dapat dibuka, dan Windows perlu di-restart untuk menggunakan WSL lagi!!

A. keluaran server nrepl

2019-09-28 12:43:40.375:INFO::nRepl-session-6d0bbcfd-d687-4002-92e9-fb5abb864022: Logging initialized <strong i="21">@48570ms</strong> to org.eclipse.jetty.util.log.StdErrLog  
[Figwheel] Compiling build dev to "target/node/dev/dev-main.js"
[Figwheel] Successfully compiled build dev to "target/node/dev/dev-main.js" in 5.623 seconds.
[Figwheel] Watching paths: ("src") to compile build - dev
[Figwheel] Starting Server at http://localhost:9500
[Figwheel] Starting REPL

<WSL hangs here>

B. Keluaran log koneksi Calva

Prompt will show when REPL connects to evaluation environment (i.e. Node)
Figwheel Main Controls:
          (figwheel.main/stop-builds id ...)  ;; stops Figwheel autobuilder for ids
          (figwheel.main/start-builds id ...) ;; starts autobuilder focused on ids
          (figwheel.main/reset)               ;; stops, cleans, reloads config, and starts autobuilder
          (figwheel.main/build-once id ...)   ;; builds source one time
          (figwheel.main/clean id ...)        ;; deletes compiled cljs target files
          (figwheel.main/status)              ;; displays current state of system
Figwheel REPL Controls:
          (figwheel.repl/conns)               ;; displays the current connections
          (figwheel.repl/focus session-name)  ;; choose which session name to focus on
In the cljs.user ns, controls can be called without ns ie. (conns) instead of (figwheel.repl/conns)
    Docs: (doc function-name-here)
    Exit: :cljs/quit
 Results: Stored in vars *1, *2, *3, *e holds last exception object
Starting node ... 
Node output being logged to: target/node/dev/node.log
For a better development experience:
  1. Open chrome://inspect/#devices ... (in Chrome)
  2. Click "Open dedicated DevTools for Node"

<WSL hangs here>

C. Calva mengatakan keluaran

Connecting ...
Hooking up nREPL sessions...
Connected session: clj
Creating cljs repl session...
Connecting cljs repl: Clojure CLI + Figwheel Main...
The Calva Connection Log might have more connection progress information.
Starting cljs repl for: Clojure CLI + Figwheel Main...
CLJS REPL ready to connect. Please, start your ClojureScript app.
Cljs builds started

<WSL hangs here>

D.deps.edn

{:paths ["src"]
 :deps
 {org.clojure/clojure {:mvn/version "1.10.1"}
  org.clojure/clojurescript {:mvn/version "1.10.520"}}
 :aliases {:dev {:extra-deps {^:depot/ignore org.clojure/tools.namespace {:mvn/version "0.2.11"}}}
           :nrepl-server {:extra-deps {cider/cider-nrepl {:mvn/version "0.22.3"}
                                       cider/piggieback {:mvn/version "0.4.1"}
                                       com.bhauman/figwheel-main {:mvn/version "0.2.3"}}
                          :main-opts ["-m" "nrepl.cmdline"
                                      "--middleware" "[cider.nrepl/cider-middleware,cider.piggieback/wrap-cljs-repl]"]}
           :outdated {:extra-deps {olical/depot {:mvn/version "1.8.4"}}
                      :main-opts ["-m" "depot.outdated.main"]}}}

E. dev.cljs.edn

{:main hello-world.core
 :target :nodejs}

F. src/hello_world/core.cljc

(ns hello-world.core
  #?(:clj (:gen-class)))

(defn -main
  [& args]
  (println "Hello, World!"))

#?(:cljs (set! *main-cli-fn* -main))
jack-in upstream

Komentar yang paling membantu

@PEZ

Saya menemukan penyebab koneksi hang. Tampilan web tidak dimuat sama sekali dan oleh karena itu tidak diinisialisasi dan proses koneksi menunggu tampilan web untuk menjawab. Ini adalah bug vscode:

Semua 20 komentar

Tidak bagus Bisakah Anda mempublikasikan proyek yang mengekspos ini?

Tidak bagus Bisakah Anda mempublikasikan proyek yang mengekspos ini?

Hai @PEZ ,

Saya telah membuat repo di sini: https://github.com/alzadude/cljc-hello-world

Silakan lihat tangkapan layar di bawah untuk efek WSL hang.

Untitled

Catatan, saya mendapatkan hasil yang sama terlepas dari apakah saya menggunakan connect to nrepl, atau jack-in.

Ketika saya terhubung/jack-in, saya memilih alias 'dev' hanya dari daftar drop-down.

Satu pengamatan berguna lainnya, adalah bahwa ini kadang-kadang terjadi saat menghubungkan, dan di lain waktu itu akan terhubung dengan baik, tetapi kemudian setelah beberapa saat WSL akan hang, dan kemudian saya melihat pesan "Mencoba untuk menyambung kembali"...

Hai @PEZ ,

Saya baru saja menemukan ini, kedengarannya mirip: https://superuser.com/questions/1430009/windows-wsl-ubuntu-hangs-freezes-randomly-when-listening-to-ports

"Mendengarkan port" bisa jadi Figwheel Main dalam kasus ini, jadi mungkin ini adalah masalah umum WSL..

@alzadude @PEZ

Saya dapat mereproduksi perilaku ini di sistem saya - tetapi dengan versi 2.0.49 saat ini Anda dapat mengklik tombol nREPL - trying to connect di bilah status untuk menghentikan proses koneksi dan mengatur vscode dan terminal kembali ke status yang dapat digunakan.

Saya tidak yakin bagaimana mengatasi masalah ini tetapi saya mencoba untuk men-debug ini.

@PEZ

Saya menemukan penyebab koneksi hang. Tampilan web tidak dimuat sama sekali dan oleh karena itu tidak diinisialisasi dan proses koneksi menunggu tampilan web untuk menjawab. Ini adalah bug vscode:

@PEZ

Saya menemukan penyebab koneksi hang. Tampilan web tidak dimuat sama sekali dan oleh karena itu tidak diinisialisasi dan proses koneksi menunggu tampilan web untuk menjawab. Ini adalah bug vscode:

Kerja luar biasa @cfehse kerja bagus menemukan penyebabnya! Saya berharap perbaikannya tidak memerlukan perubahan dalam VSCode, karena saya kira itu bisa memakan waktu cukup lama (saya tidak menggunakan build orang dalam) ...

@alzadude

Versi 1.39.2 dari vscode baru saja dirilis yang memperbaiki setidaknya bug terkait tampilan web yang mencegah jendela REPL kami dimulai (ekstensi git vscode tampaknya masih bermasalah).

Saya menguji repro pengujian Anda, koneksi apa pun berfungsi dengan baik:

calva-remote-wsl-connect

Silakan mencobanya dan bagikan bagaimana perilakunya di sistem kami.

@cfehse

Saya mencoba dengan VSCode 1.39.2, Remote - WSL 0.39.9 dan Calva 2.0.51, mengulangi langkah yang sama persis dalam deskripsi masalah, tetapi sayangnya saya mendapatkan hasil yang sama: WSL hang, dan saya mendapatkan "Mencoba untuk menyambung kembali" pesan... Saya tidak dapat memulai sesi WSL baru, satu-satunya cara untuk membuatnya berfungsi kembali adalah dengan me-restart Windows

@alzadude
Ini tampaknya menjadi masalah dengan vscode atau ekstensi jarak jauh dari Microsoft - lihat ini misalnya microsoft/vscode-remote-release#1646. Ada banyak masalah serupa di sekitar tetapi perilaku tersebut tampaknya tidak dapat direproduksi dengan mudah.

Dalam diskusi di atas, "solusi" berikut disebutkan untuk "sesuatu" berfungsi:

  • Di sisi Windows hapus C:\Users\<yourname>\AppData\Roaming\Code
    (konfigurasi Windows di profil pengguna saat ini)
  • Di sisi WSL hapus ~/.vscode
    (konfigurasi WSL untuk pengguna WSL)
  • Coba lagi

Ini memang radikal tapi apakah Anda ingin mencobanya? Sejujurnya saya sedikit kehabisan ide saat ini. Saya akan mengamati masalah di sisi vscode untuk melihat apakah ada temuan yang terjadi di sana.

@cfehse terima kasih, saya mencoba langkah-langkah ini tetapi sayangnya saya mendapatkan hasil yang sama..

nb Ketika saya mencari ~/.vscode , saya hanya menemukan ~/.vscode-server , jadi saya menghapusnya saja.

Hai @cfehse ada lagi ide/berita tentang yang satu ini?

Reporter masalah hulu tampaknya puas bahwa dalam kasus mereka, penyebabnya adalah adanya beberapa ekstensi lain (meja kerja IoT) yang ketika dihapus, membuat masalah tersebut hilang. Namun, jelas dalam kasus saya, ini bukan penyebabnya. Jadi saya bertanya-tanya apakah ini masalah yang berbeda.

Tidak yakin apa yang harus dilakukan selanjutnya...

Hai @alzadude

Saya masih tidak dapat mereproduksi ini dan masalah Anda yang lain (#387) di salah satu sistem saya. Jika Anda ingin mengambil alih dan mencoba sistem Windows yang berbeda untuk melihat apakah ada perbedaan perilaku. Saya sedikit kehabisan ide sekarang. Maaf.

Saya masih tidak dapat mereproduksi ini dan masalah Anda yang lain (#387) di salah satu sistem saya. Jika Anda ingin mengambil alih dan mencoba sistem Windows yang berbeda untuk melihat apakah ada perbedaan perilaku. Saya sedikit kehabisan ide sekarang. Maaf.

Hai @cfehse pembaruan cepat dari saya: Saya baru saja mencoba VS Code 1.40.0, Remote WSL 0.40.2 dan sayangnya saya masih mendapatkan hasil yang sama

Agar Anda dapat melihat apa yang saya lihat, inilah video yang saya rekam: https://drive.google.com/open?id=1kP7jqCUDJ9pC8wTGdbrCyBQj7q18MqQ4

Dalam hal mencoba sistem Windows yang berbeda, sayangnya saya hanya memiliki satu laptop.. Saya kemudian mengalami gelombang otak, dan berpikir saya dapat menggunakan "Windows Sandbox" baru di Windows 10 Pro, tetapi "Fitur Windows" tidak ada di dalamnya, jadi Saya tidak dapat menginstal WSL! Oh, Microsoft ️

Jadi seperti berdiri saya juga kehabisan ide.. Saya telah beralih menggunakan VSCode di Windows yang tepat daripada WSL karena masalah ini, tetapi sayangnya Figwheel Main saat ini memiliki bug yang berarti tidak berfungsi di Windows: https:/ /github.com/bhauman/figwheel-main/issues/19

Jadi saya cukup terjebak saat ini! aku akan terus menyelidiki..

@alzadude

Saya tidak tahu mengapa bintang rock ini tidak memperbaiki masalah di sana, atau membuat perangkat lunak setidaknya open source (ekstensi jarak jauh) sehingga orang lain dapat melihatnya.

Satu-satunya ide yang saya miliki saat ini untuk masalah Anda -> linux pada mesin virtual.

Saya sangat menyesal.

@alzadude

Hai Alex,
Saya hanya menguji konfigurasi proyek Anda di semua tempat untuk melihat apakah saya menemukan masalah dalam konfigurasi saya. Saya melihat di video bahwa proyek Anda terletak di drive Windows D:. Sudahkah Anda menguji untuk mengkloning sumber di direktori home Anda di bawah WSL dan terhubung di sana? Saya tidak punya masalah menghubungkan dan memulai aplikasi cljs di linux (dan ketika saya mengubah target\node\dev\dev-main.js yang dihasilkan untuk memperbaiki nama path) dan Windows.

Hai @cfehse terima kasih atas sarannya,

Saya baru saja mencoba dan sayangnya saya masih mendapatkan hasil yang sama. Ini dengan proyek yang terletak di ~/Projects/cljc-hello-world , jadi di dalam direktori home WSL alih-alih drive Windows yang terpasang. Itu berhasil selama sekitar 5 detik (lihat tangkapan layar di bawah), tetapi kemudian masih hang

Jika itu berhasil untuk Anda dan bukan untuk saya, saya mencurigai beberapa keadaan berbeda pada mesin saya untuk beberapa alasan, tetapi siapa yang tahu apa itu. Saya sudah mencoba menginstal ulang WSL, VSCode dll dan juga menghapus C:\Users\<yourname>\AppData\Roaming\Code dan ~/.vscode-server , tetapi itu tidak mempengaruhi hasil untuk saya.

Mungkin saya bisa mengekor log untuk VSCode dan Remote WSL, apakah Anda tahu di mana lokasinya?

image

Saya dapat mengatur ulang PC saya, tetapi tentu saja saya enggan untuk melakukannya sejauh itu.

Penyelidikan berlanjut..

Saya telah beralih menggunakan VSCode pada Windows yang tepat daripada WSL karena masalah ini, tetapi sayangnya Figwheel Main saat ini memiliki bug yang berarti tidak berfungsi pada Windows: bhauman/figwheel-main#19

Setidaknya saya menemukan cara untuk menghindari masalah kompilasi dengan file js utama (sebenarnya ini bukan masalah dengan figwheel-main ini lebih merupakan masalah dengan kompiler ClojureScript). Saya membuat PR untuk proyek demo Anda untuk melihat perubahan yang diperlukan.

Hai @cfehse kabar baik!

Setelah melakukan langkah-langkah berikut, masalah tampaknya telah teratasi dengan sendirinya:

  • Copot pemasangan VSCode
  • Hapus C:\Users\<yourname>\AppData\Roaming\Code
  • Hapus C:\Users\<yourname>\.vscode
  • Hapus ~/.vscode-server
  • Hapus instalasi distro WSL (Debian Stretch)
  • Hapus fitur WSL
  • Menyalakan ulang
  • Tambahkan fitur WSL
  • Instal distro WSL (Debian Stretch)
  • Instal Java (openjdk-11-jdk-headless), Clojure (1.10.1), NodeJS (10.17.0-1nodesource1) di WSL
  • Instal VSCode (1.40.1)
  • Instal Jarak Jauh - WSL (0.40.3)
  • Instal Calva (2.0.66)

Saya masih tidak tahu apa masalah mendasarnya sebelumnya, tetapi sekarang berhasil. Saya hanya berdoa masalahnya tidak kembali

Terima kasih untuk bantuannya! 🙂.

@alzadude
Ya Tuhan! Apa prosedur. :(
Di sistem saya, WSL dengan Remote Extension berfungsi dengan cukup baik. Mari kita tetap menyilangkan jari. gg

Saya menutup masalah ini untuk saat ini.

Hai @cfehse Saya minta maaf untuk mengatakan, masalah ini telah kembali

VSCode 1.41.1
Jarak Jauh - WSL 0.41.9
Calva 2.0.75

Sayangnya sudah lama sejak saya mencoba memulai jenis proyek Clojure CLI + Figwheel Main , jadi saya tidak tahu kapan proyek itu berhenti bekerja

Saya belum mencoba mengulangi daftar lengkap langkah-langkah di atas yang menyelesaikannya untuk saya terakhir kali, tetapi saya mencoba tiga langkah berikut saja yang sayangnya tidak berhasil sendiri:

  • Hapus C:\Users\<yourname>\AppData\Roaming\Code
  • Hapus C:\Users\<yourname>\.vscode
  • Hapus ~/.vscode-server

Saya tidak mengerti mengapa saya tampak sendirian dalam mengalami masalah ini! 😕.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat