Bug 35801 - facter "зависает"
Summary: facter "зависает"
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: ruby-facter (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: majioa@altlinux.org
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-12-20 13:26 MSK by Andrey Cherepanov
Modified: 2018-12-21 00:28 MSK (History)
11 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Andrey Cherepanov 2018-12-20 13:26:06 MSK
Запускаем facter, он долго чего-то ждёт. При нажатии Ctrl+C:

^CTraceback (most recent call last):
        44: from /usr/bin/facter:20:in `<main>'
        43: from /usr/lib/ruby/site_ruby/facter/application.rb:46:in `run'
        42: from /usr/lib/ruby/site_ruby/facter.rb:126:in `to_hash'
        41: from /usr/lib/ruby/site_ruby/facter/util/collection.rb:104:in `load_all'
        40: from /usr/lib/ruby/site_ruby/facter/util/loader.rb:45:in `load_all'
        39: from /usr/lib/ruby/site_ruby/facter/util/loader.rb:45:in `each'
        38: from /usr/lib/ruby/site_ruby/facter/util/loader.rb:47:in `block in load_all'
        37: from /usr/lib/ruby/site_ruby/facter/util/loader.rb:47:in `each'
        36: from /usr/lib/ruby/site_ruby/facter/util/loader.rb:49:in `block (2 levels) in load_all'
        35: from /usr/lib/ruby/site_ruby/facter/util/loader.rb:115:in `load_file'
        34: from /usr/lib/ruby/site_ruby/facter/util/loader.rb:130:in `kernel_load'
        33: from /usr/lib/ruby/site_ruby/facter/util/loader.rb:130:in `load'
        32: from /usr/lib/ruby/site_ruby/facter/ec2.rb:63:in `<top (required)>'
        31: from /usr/lib/ruby/site_ruby/facter.rb:117:in `value'
        30: from /usr/lib/ruby/site_ruby/facter/util/collection.rb:130:in `value'
        29: from /usr/lib/ruby/site_ruby/facter/util/fact.rb:110:in `value'
        28: from /usr/lib/ruby/site_ruby/facter/util/fact.rb:145:in `searching'
        27: from /usr/lib/ruby/site_ruby/facter/util/fact.rb:112:in `block in value'
        26: from /usr/lib/ruby/site_ruby/facter/util/fact.rb:152:in `find_suitable_resolutions'
        25: from /usr/lib/ruby/site_ruby/facter/util/fact.rb:152:in `find_all'
        24: from /usr/lib/ruby/site_ruby/facter/util/fact.rb:152:in `each'
        23: from /usr/lib/ruby/site_ruby/facter/util/fact.rb:152:in `block in find_suitable_resolutions'
        22: from /usr/lib/ruby/site_ruby/facter/core/suitable.rb:111:in `suitable?'
        21: from /usr/lib/ruby/site_ruby/facter/core/suitable.rb:111:in `all?'
        20: from /usr/lib/ruby/site_ruby/facter/core/suitable.rb:111:in `each'
        19: from /usr/lib/ruby/site_ruby/facter/core/suitable.rb:111:in `block in suitable?'
        18: from /usr/lib/ruby/site_ruby/facter/util/confine.rb:40:in `true?'
        17: from /usr/lib/ruby/site_ruby/facter/ec2.rb:28:in `block (3 levels) in <top (required)>'
        16: from /usr/lib/ruby/site_ruby/facter/ec2/rest.rb:28:in `reachable?'
        15: from /usr/lib/ruby/open-uri.rb:35:in `open'
        14: from /usr/lib/ruby/open-uri.rb:735:in `open'
        13: from /usr/lib/ruby/open-uri.rb:165:in `open_uri'
        12: from /usr/lib/ruby/open-uri.rb:224:in `open_loop'
        11: from /usr/lib/ruby/open-uri.rb:224:in `catch'
        10: from /usr/lib/ruby/open-uri.rb:226:in `block in open_loop'
         9: from /usr/lib/ruby/open-uri.rb:755:in `buffer_open'
         8: from /usr/lib/ruby/open-uri.rb:337:in `open_http'
         7: from /usr/lib/ruby/net/http.rb:909:in `start'
         6: from /usr/lib/ruby/net/http.rb:920:in `do_start'
         5: from /usr/lib/ruby/net/http.rb:935:in `connect'
         4: from /usr/lib/ruby/timeout.rb:103:in `timeout'
         3: from /usr/lib/ruby/timeout.rb:93:in `block in timeout'
         2: from /usr/lib/ruby/net/http.rb:937:in `block in connect'
         1: from /usr/lib/ruby/net/http.rb:937:in `open'
/usr/lib/ruby/net/http.rb:937:in `initialize': Interrupt
Comment 1 Малъ Скрылевъ 2018-12-20 23:22:48 MSK
Оно пытается вычитать с адреса "http://169.254.169.254/latest/meta-data/" сведения, это API метаданных амазона, в рядовом случае (то есть не будучи читано из облака) оно не отвечает, и так 10 минут, после чего выдает уже сведения всякие. Это из виртуалки, с машины в локальной сети все выдается быстро и по этому адресу не обращается.

Смысл в том, что этот бисер определяет, что он запущен внутри виртуалки и считает, что он внутри ec2 (т.е. облака амазона), после чего обращается по тому адресу. Я могу уменьшить просто в спеке таймаут с доступом по ому адрему, до полутора секунд, чтобы не тормозил.
Comment 2 Малъ Скрылевъ 2018-12-21 00:28:39 MSK
Починено в 2.5.1-alt2