Guard: Ctrl-C crash guard

Dibuat pada 16 Jun 2016  ·  21Komentar  ·  Sumber: guard/guard

Setiap kali saya mencoba untuk membatalkan tes yang sedang berjalan (dengan plugin guard-rspec) shell pelindung lumpuh dan tes berlanjut. Saya dapat mereproduksi hanya dengan membuka guard dan menekan ctrl-c. Output sesi debug lengkap dan info diagnostik di bawah ini. Ini mungkin terkait dengan versi Ruby karena berfungsi dengan baik pada 2.3.0 tetapi tidak pada 2.3.1.

$ bundle exec guard --debug
13:09:37 - DEBUG - Notiffany: gntp not available (Please add "gem 'ruby_gntp'" to your Gemfile and run your app with "bundle exec".).
13:09:37 - DEBUG - Notiffany: growl not available (Unsupported platform "linux-gnu").
13:09:37 - DEBUG - Notiffany: terminal_notifier not available (Unsupported platform "linux-gnu").
13:09:37 - DEBUG - Notiffany: libnotify not available (Please add "gem 'libnotify'" to your Gemfile and run your app with "bundle exec".).
13:09:37 - DEBUG - Command execution: which notify-send
13:09:37 - DEBUG - Notiffany: notifysend not available (libnotify-bin package is not installed).
13:09:37 - DEBUG - Notiffany: notifu not available (Unsupported platform "linux-gnu").
13:09:37 - DEBUG - Command execution: {"ALTERNATE_EDITOR"=>"false"} emacsclient --eval '1'
13:09:37 - DEBUG - Notiffany: emacs not available (Emacs client failed).
13:09:37 - DEBUG - Command execution: tmux -V
13:09:37 - DEBUG - Notiffany: file not available (No :path option given).
13:09:37 - DEBUG - Command execution: tmux -V
13:09:37 - DEBUG - Notiffany is using Tmux to send notifications.
13:09:37 - DEBUG - Command execution: tmux list-clients -F '#{client_tty}'
13:09:37 - DEBUG - Command execution: tmux show -t /dev/pts/0
13:09:37 - DEBUG - Notiffany is using TerminalTitle to send notifications.
13:09:37 - DEBUG - Command execution: hash stty
13:09:37 - DEBUG - Guard starts all plugins
13:09:37 - DEBUG - Hook :start_begin executed for Guard::RSpec
13:09:37 - INFO - Guard::RSpec is running
13:09:37 - DEBUG - Hook :start_end executed for Guard::RSpec
13:09:38 - INFO - Guard is now watching at '/mnt/data1/home/andrew/projects/039-disciple/disciple-api'
13:09:38 - DEBUG - Start interactor
[1] guard(main)>  [ pressed ctrl-c here ]
[1] guard(main)> ⏎                                                                                                                                                                                                                                                                                                            $  [typed a few random characters]
$ aError: Input/output error - read
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:198:in `readline'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:198:in `block in input_readline'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/input_lock.rb:115:in `interruptible_region'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:197:in `input_readline'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:183:in `block in read_line'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:129:in `handle_read_errors'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:170:in `read_line'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:98:in `read'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:68:in `block in repl'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:67:in `loop'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:67:in `repl'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:38:in `block in start'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/input_lock.rb:61:in `__with_ownership'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/input_lock.rb:79:in `with_ownership'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:38:in `start'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:15:in `start'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/pry_class.rb:169:in `start'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-byebug-3.4.0/lib/pry-byebug/pry_ext.rb:11:in `start_with_pry_byebug'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/guard-2.14.0/lib/guard/jobs/pry_wrapper.rb:102:in `block (2 levels) in _switch_to_pry'
[... this section below repeats several times ...]
[1] guard(main)> Error: Input/output error - read
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:198:in `readline'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:198:in `block in input_readline'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/input_lock.rb:115:in `interruptible_region'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:197:in `input_readline'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:183:in `block in read_line'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:129:in `handle_read_errors'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:170:in `read_line'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:98:in `read'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:68:in `block in repl'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:67:in `loop'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:67:in `repl'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:38:in `block in start'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/input_lock.rb:61:in `__with_ownership'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/input_lock.rb:79:in `with_ownership'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:38:in `start'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:15:in `start'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/pry_class.rb:169:in `start'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-byebug-3.4.0/lib/pry-byebug/pry_ext.rb:11:in `start_with_pry_byebug'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/guard-2.14.0/lib/guard/jobs/pry_wrapper.rb:102:in `block (2 levels) in _switch_to_pry'
[... end of repeating section ...]
[1] guard(main)> Error: Input/output error - read
FATAL: Pry failed to get user input using `Readline`.
To fix this you may be able to pass input and output file descriptors to pry directly. e.g.
  Pry.config.input = STDIN
  Pry.config.output = STDOUT
  binding.pry

13:11:22 - DEBUG - Interactor was stopped or killed
13:11:22 - DEBUG - Guard stops all plugins
13:11:22 - DEBUG - Command execution: tmux set -q -u -t /dev/pts/0 status-left-bg
13:11:22 - DEBUG - Command execution: tmux set -q -u -t /dev/pts/0 status-right-bg
13:11:22 - DEBUG - Command execution: tmux set -q -u -t /dev/pts/0 status-left-fg
13:11:22 - DEBUG - Command execution: tmux set -q -u -t /dev/pts/0 status-right-fg
13:11:22 - DEBUG - Command execution: tmux set -q -u -t /dev/pts/0 message-bg
13:11:22 - DEBUG - Command execution: tmux set -q -u -t /dev/pts/0 message-fg
13:11:22 - DEBUG - Command execution: tmux set -q -u -t /dev/pts/0 display-time
$ uname -a
Linux triton.avito.uk 4.5.0-x86_64-linode65 #2 SMP Mon Mar 14 18:01:58 EDT 2016 x86_64 x86_64 x86_64 GNU/Linux
$ ruby -v
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-linux]

Sejauh yang saya tahu Ruby 2.3.1 saya dikompilasi dengan dukungan Readline:

$ ruby -rreadline -e 'puts Readline::VERSION'
6.3

Sayangnya saya tidak yakin apa langkah selanjutnya untuk men-debug ini.

bug help needed work in progress

Komentar yang paling membantu

Saya tidak yakin apakah terkait, tetapi ketika saya CTRL-C selama RSpec saya jatuh kembali, tetapi penjaga tidak akan pernah menjalankan apa pun lagi. Saya belum mencoba men-debug terlalu banyak. Perilakunya sama dengan dan tanpa bundle exec. Saya mencoba menjalankan dengan cabang yang Anda tentukan di atas dan itu membuat perbedaan di mana penjaga saya akan keluar setelah menghentikan RSpec.

Ada ide? Apakah ini terkait dengan ini? Saya senang untuk menggali internal jika Anda tidak memiliki ide langsung tentang ini. Kami memiliki banyak spesifikasi lambat dan dapat menghentikan spesifikasi di tengah jalan akan menghemat banyak waktu. :)

Semua 21 komentar

Saya juga mengalami ini di 2.2.5.

Saya juga mengalami ini (efektif jejak tumpukan yang sama), tetapi menggunakan Ruby v2.3.0 , Guard v2.13.0 .

Jika saya menjalankan Guard melalui bundle exec guard dan kemudian menekan Ctrl-C pada prompt, saya melihat masalahnya. Namun, jika saya menjalankan guard tidak melalui bundel, Menekan Ctrl-C tidak menyebabkan masalah.

Versi Ruby dan Readline lengkap:

$ ruby -v
ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-darwin15.5.0]
$ ruby -rreadline -e 'puts Readline::VERSION'
6.3

Setelah kesalahan Prompt Pry keluar, saya mendapatkan korupsi terminal yang mirip dengan apa yang dijelaskan di sini:
https://github.com/pry/pry/issues/1275
https://github.com/pry/pry/issues/1183
https://github.com/guard/guard/issues/719

Jika saya menginstal permata rb-readline secara manual, ini memperbaiki masalah korupsi yang terjadi setelahnya, tetapi Ctrl-C menghasilkan stacktrace yang sama. Dengan permata ini terpasang, penjaga melaporkan versi Readline saya sebagai berikut:

[1] guard(main)> Readline::VERSION
=> "5.2"

Mendapatkan masalah yang persis sama di sini ... seperti yang disarankan @WilHall ,

$ ruby -v
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin14]
$ guard -v
Guard version 2.14.0

Versi Readline saya adalah 6.3 baik di dalam maupun di luar.

Sepertinya kombinasi dari beberapa hal.

Saya mungkin akan membuat cabang "perbaikan cepat" dan kemudian mencari cara untuk mengintegrasikannya.

Oke, saya membuat cabang dengan beberapa peretasan: https://github.com/guard/guard/tree/experimental_fixes

Berikut cara menggunakan in dalam Gemfile :

gem 'guard', github: 'guard/guard', branch: 'experimental_fixes'

Kemudian bundle update dan bundle exec guard seperti biasa.

Selain itu, Anda mungkin ingin mencoba menonaktifkan notifikasi untuk melihat apakah itu juga membantu:

bundle exec guard -n f

Silakan laporkan masalah serta perbaikannya.

Beberapa masalah yang harus diperbaiki:

  1. Pry harus berhenti mogok saat keluar dari penjaga dengan ctrl-C
  2. Output setelah baris terakhir seharusnya tidak menyembunyikan prompt shell di bawahnya
  3. Pemberitahu TMux dan TerminalTitle tampaknya menyebabkan masalah dengan keluaran
  4. Saya belum memeriksanya tetapi ada kemungkinan bahwa logging LumberJack menggunakan waktu pembilasan padahal seharusnya tidak.
  5. Aliran STDERR tidak lagi ditutup
  6. Pry tidak lagi terbunuh dan bergabung - itu dibangunkan sebagai gantinya (jadi seharusnya tidak "menggantung" mengingat tweak lainnya)

Beberapa regresi/masalah:

  1. Jika penjaga/tugas mengacaukan output berwarna, itu tidak akan diperbaiki (mengatur ulang konsol telah dinonaktifkan).
  2. Tidak ada tes untuk ini (saya mencoba melihat apakah saya dapat memperbaiki masalah terlebih dahulu)
  3. Tidak diuji pada Ruby selain MRI 2.3.1

Solusi lainnya:

Jika Anda putus asa, Anda dapat mencoba menggunakan Guard tanpa Pry dan tanpa pemberitahuan:

bundle exec guard -n f -i

Beri tahu saya jika ini membantu atau memiliki masalah lain, sehingga saya dapat bekerja untuk memperbaiki dan merilis secara resmi.

Jangan ragu untuk mengirimkan PR yang secara selektif menggunakan salah satu dari perbaikan ini (meskipun tes akan baik).

Saya telah mendorong beberapa tweak.

Anda dapat menarik perubahan itu (atau bundle update jika Anda menggunakan baris Gemfile ) tambahkan ini ke Guardfile untuk melihat apakah itu membantu:

UI.options.merge!(flush_seconds: 0, level: :debug, device: 'guard.log')
notification :off

Itu juga akan mencatat kesalahan ke guard.log . (Meskipun itu dapat memicu pemindaian seluruh direktori di OSX).

Terima kasih @e2 , sayangnya saya belum beruntung:

  • Perilaku mogok pada Ctrl-C tetap sama dengan cabang "experimental_features" saat dijalankan tanpa tanda tambahan.
  • Memasok -n f tidak ada bedanya.
  • Menggunakan parameter -i mencegah crash saat Ctrl-C'ing dalam tes (meskipun sulit untuk berhenti!).

Saya sering mendapatkan salah satu pengecualian berikut sekarang ketika berhenti dengan Ctrl-D, mungkin kondisi balapan:

19:56:17 - INFO - Bundle already up-to-date
19:56:17 - INFO - Guard is now watching at '/mnt/data1/home/andrew/projects/042-joinly/joinly-app'
^Clog writing failed. can't modify frozen IOError
➜  joinly-app git:(master) ✗
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/bundler/gems/guard-d299ad21cfa8/lib/guard/commander.rb:69:in `stop': undefined method `destroy' for #<Guard::Jobs::Sleep:0x0056104497dd80> (NoMethodError)
        from /home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/bundler/gems/guard-d299ad21cfa8/lib/guard/commander.rb:53:in `start'
        from /home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/bundler/gems/guard-d299ad21cfa8/lib/guard/cli/environments/valid.rb:16:in `start_guard'
        from /home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/bundler/gems/guard-d299ad21cfa8/lib/guard/cli.rb:122:in `start'
[...]

Dan

19:56:29 - INFO - Bundle already up-to-date
19:56:30 - INFO - Guard is now watching at '/mnt/data1/home/andrew/projects/042-joinly/joinly-app'
^CE, [2016-08-01T19:56:38.584021 #10597] ERROR -- : run() in thread failed: stream closed:\n /home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rb-inotify-0.9.7/lib/rb-inotify/notifier.rb:300:in `readpartial'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rb-inotify-0.9.7/lib/rb-inotify/notifier.rb:300:in `readpartial'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rb-inotify-0.9.7/lib/rb-inotify/notifier.rb:271:in `read_events'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rb-inotify-0.9.7/lib/rb-inotify/notifier.rb:238:in `process'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rb-inotify-0.9.7/lib/rb-inotify/notifier.rb:221:in `run'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/listen-3.1.5/lib/listen/adapter/linux.rb:39:in `_run'
[...]

Baris Guardfile dengan bundle exec guard -n f tampaknya menyebabkan penundaan pada kesalahan. Menekan Ctrl-C selama uji coba masih menyebabkan Pry terlepas dengan pengujian yang terus menulis ke STDOUT bercampur dengan prompt aktif. Tapi itu berakhir dengan cara yang sama:

[1] guard(main)> Error: Input/output error - read
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.4/lib/pry/repl.rb:198:in `readline'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.4/lib/pry/repl.rb:198:in `block in input_readline'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.4/lib/pry/input_lock.rb:115:in `interruptible_region'

Terima kasih @Odaeus untuk memeriksa ini.

Pertama, saya mengacaukan interaksi non-cungkil. (Saya baru saja mendorong komit, untuk memperbaikinya).

Kedua, Anda mengalami bug rb-inotify ini: https://github.com/nex3/rb-inotify/pull/59

Untuk itu saya membuat perbaikan (belum digabung atau dirilis).

Sampai saat itu, Anda menggunakan ini di Gemfile :

gem 'rb-inotify', github: 'e2/rb-inotify', branch: 'e2-fix_ioerror_when_closed'

Itu akan menyelesaikan masalah 2.

Untuk masalah 3 - itu mungkin sedang dalam proses, tetapi pastikan Anda memiliki Guardfile :

UI.options.merge!(flush_seconds: 0, level: :debug, device: 'guard.log')
notification :off

Dan Anda dapat menggunakan tail -f guard.log pada output di jendela lain.

Saya khawatir seluruh penanganan sesi Pry harus didesain ulang untuk memperbaikinya dengan benar. Itu mungkin akan memakan waktu sepanjang hari Sabtu untuk berolahraga :(

Jika saya memiliki tambalan lagi, saya akan memberi tahu semua orang di sini secepatnya.

Oke, ini seharusnya berhasil (sejauh yang saya tahu):

Di Gemfile :

 gem "guard", github: "guard/guard",
                branch: "experimental_fixes", ref: "c6ab8a0"

 gem "listen", require: false, github: "guard/listen",
                branch: "advanced_thread_debugging", ref: "31053de"

  gem "guard-rspec", require: false, github: "guard/guard-rspec",
                     branch: "ctrl_c_workaround", ref: "ee0b21d"

  gem "rb-inotify", require: false, github: "e2/rb-inotify",
                    branch: "e2-fix_ioerror_when_closed", ref: "99d2101"

Ini sedikit tambalan - jangan ragu untuk meninjau, berkomentar, dan mengirim PR untuk membantu saya menguji dan merilis tambalan ini secepat mungkin.

Terima kasih!

@ e2 Perilaku ini jauh lebih baik, Anda dapat melihat di mana saya menekan ctrl-c, itu turun kembali ke command prompt tetapi prosesnya sedang keluar. Ini menimbulkan pengecualian di akhir, dan tampaknya keluar dari penebang pohon, tetapi spesifikasinya berhenti berjalan. Terima kasih untuk melihat ini. Semoga ini membantu!

^CGuard: INT signal, handling inside trap...                                                                                                             |  ETA: 00:02:03
Guard Pry job: handling interrupt
Guard Pry job: no thread, interrupting Guard

RSpec is shutting down and will print the summary report... Interrupt again to force quit.
Guard::RSpec: Interrupted by user. Waiting for RSpec to die...
➜  source_code git:(development) ✗  3/17 |========== 17 ==========>                                                                                                                         |  ETA: 00:02:28
Pending: (Failures listed here are expected and do not affect your suite's status)

  1) items can export items pdf export
     # Temporarily skipped with xit
     # ./spec/features/items_spec.rb:38


Top 3 slowest examples (25.2 seconds, 83.1% of total time):
  items can click export button and walk through modals
    14.92 seconds ./spec/features/items_spec.rb:26
  items appear in proper time periods
    10.28 seconds ./spec/features/items_spec.rb:51
  items can export pdf export
    0.00005 seconds ./spec/features/items_spec.rb:38

Finished in 30.33 seconds (files took 1.14 seconds to load)
3 examples, 0 failures, 1 pending

Randomized with seed 54136

Coverage report generated for RSpec to /Users/justin/dev/source_code/coverage. 1759 / 3324 LOC (52.92%) covered.

➜  source_code git:(development) ✗
10:18:10 - INFO - Inspecting Ruby code style: spec/features/items_spec.rb
Inspecting 1 file
.

1 file inspected, no offenses detected

10:18:11 - INFO - Bye bye...
/Users/justin/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/lumberjack-1.0.10/lib/lumberjack/device/writer.rb:89:in `close': closed stream (IOError)
    from /Users/justin/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/lumberjack-1.0.10/lib/lumberjack/device/writer.rb:89:in `close'
    from /Users/justin/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/lumberjack-1.0.10/lib/lumberjack/logger.rb:140:in `close'
    from /Users/justin/dev/source_code/vendor/cache/guard-c6ab8a0b70a3/lib/guard/aruba_adapter.rb:51:in `execute'
    from /Users/justin/dev/source_code/vendor/cache/guard-c6ab8a0b70a3/lib/guard/aruba_adapter.rb:20:in `execute!'
    from /Users/justin/dev/source_code/vendor/cache/guard-c6ab8a0b70a3/bin/_guard-core:11:in `<main>'

@jetheredge - terima kasih telah menguji ini.

Saya tidak akan punya waktu untuk melihat ini terlalu cepat :(

Saya senang itu lebih bermanfaat.

Berdasarkan contoh Anda, RSpec seharusnya berhenti dan Guard harus kembali ke prompt Pry.

Saya pikir masalahnya di sini adalah bahwa Guard menjebak sinyal INT. Seharusnya tidak. Seharusnya hanya digunakan untuk membunuh Pry, tetapi seharusnya tidak melakukan apa pun jika Pry tidak berjalan (dan tidak ada pekerjaan).

Saya akan menerima PR untuk ini jika seseorang ingin menguji. (Pada dasarnya, "Pekerjaan Penjaga Pry: tidak ada utas, mengganggu Penjaga" seharusnya tidak terjadi - interupsi seharusnya diabaikan di PryWrapper).

@e2 terima kasih! Saya akan melihat membuat PR minggu depan.

@jetheredge - Saya pikir itu cukup untuk mengganti baris ini:

https://github.com/guard/guard/blob/c6ab8a0/lib/guard/jobs/pry_wrapper.rb#L108

hanya dengan "kembali".

Juga, Ctrl-C seharusnya tidak keluar dari penjaga.

@e2 - Terima kasih atas bimbingannya, minggu ini sangat sibuk, saya akan segera membuat PR.

Kita semua, percayalah;)

(Jika Anda tidak percaya, lihat daftar masalah di Guard -
hampir semuanya adalah fitur).

Pada Kam, 11 Agustus 2016 pukul 04:10:08 -0700, Justin Etheredge menulis:

@e2 - Terima kasih atas bimbingannya, minggu ini sangat sibuk, saya akan segera membuat PR.

Anda menerima ini karena Anda disebutkan.
Balas email ini secara langsung atau lihat di GitHub:
https://github.com/guard/guard/issues/842#issuecomment -239132345

Saya minta maaf, saya masih belum melupakan ini, itu ada di daftar saya, saya baru saja dikubur belakangan ini. Saya masih berencana melakukan ini, hanya butuh waktu lebih lama dari yang diharapkan.

Aku dikuburkan juga. Mudah-mudahan saya akan mendapatkan patch selesai dan dirilis.

Saya tidak yakin apakah terkait, tetapi ketika saya CTRL-C selama RSpec saya jatuh kembali, tetapi penjaga tidak akan pernah menjalankan apa pun lagi. Saya belum mencoba men-debug terlalu banyak. Perilakunya sama dengan dan tanpa bundle exec. Saya mencoba menjalankan dengan cabang yang Anda tentukan di atas dan itu membuat perbedaan di mana penjaga saya akan keluar setelah menghentikan RSpec.

Ada ide? Apakah ini terkait dengan ini? Saya senang untuk menggali internal jika Anda tidak memiliki ide langsung tentang ini. Kami memiliki banyak spesifikasi lambat dan dapat menghentikan spesifikasi di tengah jalan akan menghemat banyak waktu. :)

Saya juga mengalami masalah ini di MacOs Sierra.

Saat saya membatalkan tes, perubahan berikutnya pada file tidak menjalankan tes. Itu berhenti menonton.

Saya mengalami masalah yang sama. Ada pembaruan tentang ini?

Masalah yang sama disini. Menggunakan macOS Catalina.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat