Saya telah menggunakan perintah Cygwin dari prompt Windows CMD saya selama beberapa bulan tanpa masalah. Dalam beberapa hari terakhir, setiap kali saya memanggil perintah Cygwin (ls
misalnya), perintah tersebut memerlukan beberapa detik untuk "memuat" sebelum benar-benar dijalankan. Jika saya mencoba perintah yang sama dari dalam bash prompt, perintah itu langsung berjalan ("memuat").
FAQ Cygwin menyebutkan bahwa drive jaringan di PATH dapat menyebabkan masalah, jadi saya telah mencoba beberapa permutasi variabel PATH
saya dan konektivitas jaringan. Di bawah, "penuh PATH
" berarti pengaturan jalur asli saya; "short PATH
" berarti jalur hanya dengan direktori Cygwin bin. Waktu dilaporkan melalui perintah time
.
Hasil pengaturan waktu untuk ls
Terhubung ke jaringan:
- Jalankan
ls
dalambash
: 0,124 detik - Jalankan
ls
dalam CMD (penuhPATH
): 41,29 detik - Jalankan
ls
dalam CMD (pendekPATH
): 38,56 detik
Terputus dari jaringan:
- Jalankan
ls
dalambash
: 0,125 detik - Jalankan
ls
dalam CMD (penuhPATH
): 0,17 detik - Jalankan
ls
dalam CMD (pendekPATH
): 0,19 detik
Hasil untuk cygcheck
Saya menjalankan cygcheck -s
dan memperhatikan:
Warning: There are multiple cygwin1.dlls on your path
meskipun ini mungkin karena menjalankan cygcheck
dari dalam direktori bin
Cygwin. Saya telah menghapus sepenuhnya dan menginstal ulang Cygwin dan masih melihat masalah yang sama.
Hasil dari netstat
Saya menjalankan netstat -a -n
sebelum mengeksekusi ls
Cygwin dan setelah eksekusi (saat terhenti). Saya melakukan ini beberapa kali dan menemukan satu baris dari setiap proses yang muncul secara konsisten selama penundaan:
UDP 127.0.0.1:55030 *:*
Nomor port berubah dari pengujian ke pengujian.
strace
hasil
Saya menjalankan strace
Cygwin pada perintah ls
. Sebagian besar penundaan dihabiskan untuk panggilan seperti:
11685 886560 [main] ls 10020 pwdgrp::fetch_account_from_windows: line: <xxxx>
Dan
12684 899244 [main] ls 10020 cyg_ldap::fetch_ad_account: No entry for (objectSid=\00\00\00\00) in xxxx DC=xxxx,DC=xxxx,DC=xxxx
netstat -a -n
selama periode penundaan dan cari koneksi dalam status SYN_SENT. Saya telah melihat gejala yang mirip dengan ini ketika perangkat lunak mencoba memvalidasi sertifikat SSL tetapi akses jaringan diblokir oleh firewall eksternal. (Biasanya jika Anda tidak memiliki koneksi jaringan sama sekali, upaya tersebut akan langsung gagal, sehingga akan konsisten.) Tidak harus SSL, akses jaringan lain akan memiliki efek serupa, misalnya, jika Cygwin mencoba melakukan self- pembaruan atau sesuatu. - person Harry Johnston   schedule 15.02.2015