Поток тупиковых ситуаций при простых операциях в pry - PullRequest
0 голосов
/ 04 июля 2018

[Примечание: я «исправил» эту проблему, создав и используя новый набор гемов. Мне все еще интересно, почему возникла проблема, но она больше не блокирует меня.]

[Я знаю, что есть похожая проблема в Deadlock в Ruby join () , но я попробовал предложенный там параметр времени ожидания, и он не помогает. Я подозреваю, что там есть проблема, специфичная для pry.]

При выполнении приведенного ниже кода я получаю сообщение об ошибке ниже, но только при выполнении в сеансе pry. Этот код не был изменен и долгое время работал нормально, и я понятия не имею, почему это проблема сейчас. Я использую pry версии 0.11.3 на Ruby 2.5.1. Кроме того, этот код отлично работает при вставке в pry; он не работает в моем приложении wifi-wand, которое запускает pry в контексте одного из своих объектов (gem install wifi-wand для установки, https://github.com/keithrbennett/wifiwand - это страница проекта).

domains = %w(google.com  baidu.com)
puts "Calling dig on domains #{domains}..." if @verbose_mode

threads = domains.map do |domain|
  Thread.new do
    output = `dig +short #{domain}`
    output.length > 0
  end
end

threads.each(&:join)


[1] pry(#<WifiWand::CommandLineInterface>)> ci
Calling dig on domains ["google.com", "baidu.com"]...
fatal: No live threads left. Deadlock?
3 threads, 3 sleeps current:0x00007fbd13d0c5a0 main thread:0x00007fbd13d0c5a0
* #<Thread:0x00007fbd14069c20 sleep_forever>
   rb_thread_t:0x00007fbd13d0c5a0 native:0x00007fff89c2b380 int:0
   /Users/kbennett/work/wifi-wand/lib/wifi-wand/models/base_model.rb:89:in `join'
   /Users/kbennett/work/wifi-wand/lib/wifi-wand/models/base_model.rb:89:in `each'
   /Users/kbennett/work/wifi-wand/lib/wifi-wand/models/base_model.rb:89:in `block in connected_to_internet?'
   /Users/kbennett/work/wifi-wand/lib/wifi-wand/models/base_model.rb:126:in `connected_to_internet?'
   /Users/kbennett/work/wifi-wand/lib/wifi-wand/command_line_interface.rb:264:in `cmd_ci'

1 Ответ

0 голосов
/ 10 июля 2018

Странно, проблема была решена удалением и переустановкой гема awesome_print. Понятия не имею почему.

...