Bug 53555

Summary: Не создаётся rails проект
Product: Branch p11 Reporter: Alexander Makeenkov <amakeenk>
Component: gem-railsAssignee: majioa <majioa>
Status: NEW --- QA Contact: qa-p11 <qa-p11>
Severity: normal    
Priority: P5 CC: 3aHyga
Version: unspecified   
Hardware: x86_64   
OS: Linux   
Attachments:
Description Flags
логи выполнения rails new
none
логи выполнения rails new + task 374139 none

Description Alexander Makeenkov 2025-03-20 17:23:40 MSK
- Версии пакетов:
ruby-3.1.4-alt4.4
rails-6.1.7.7-alt1
gem-activesupport-6.1.7.7-alt1

- Шаги воспроизведения:
# apt-get install rails libruby-devel gem-sass-rails
# useradd rubyuser && \
usermod rubyuser -aG ruby && \
su - rubyuser
$ rails new hello_world

- Получаемый результат:
/var/cache/ruby/gemie/gems/activesupport-6.1.7.10/lib/active_support/logger_thread_safe_level.rb:16:in `<module:LoggerThreadSafeLevel>': uninitialized constant ActiveSupport::LoggerThreadSafeLevel::Logger (NameError)

    Logger::Severity.constants.each do |severity|
    ^^^^^^
        from /var/cache/ruby/gemie/gems/activesupport-6.1.7.10/lib/active_support/logger_thread_safe_level.rb:9:in `<module:ActiveSupport>'
        from /var/cache/ruby/gemie/gems/activesupport-6.1.7.10/lib/active_support/logger_thread_safe_level.rb:8:in `<main>'
        from /var/cache/ruby/gemie/gems/bootsnap-1.18.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
        from /var/cache/ruby/gemie/gems/bootsnap-1.18.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
        from /var/cache/ruby/gemie/gems/activesupport-6.1.7.10/lib/active_support/logger_silence.rb:5:in `<main>'
        from /var/cache/ruby/gemie/gems/bootsnap-1.18.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
        from /var/cache/ruby/gemie/gems/bootsnap-1.18.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
        from /var/cache/ruby/gemie/gems/activesupport-6.1.7.10/lib/active_support/logger.rb:3:in `<main>'
        from /var/cache/ruby/gemie/gems/bootsnap-1.18.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
        from /var/cache/ruby/gemie/gems/bootsnap-1.18.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
        from /var/cache/ruby/gemie/gems/activesupport-6.1.7.10/lib/active_support.rb:29:in `<main>'
        from /var/cache/ruby/gemie/gems/bootsnap-1.18.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
        from /var/cache/ruby/gemie/gems/bootsnap-1.18.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
        from /var/cache/ruby/gemie/gems/railties-6.1.7.10/lib/rails/command.rb:3:in `<main>'
        from /var/cache/ruby/gemie/gems/bootsnap-1.18.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
        from /var/cache/ruby/gemie/gems/bootsnap-1.18.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
        from /var/cache/ruby/gemie/gems/railties-6.1.7.10/lib/rails/commands.rb:3:in `<main>'
        from /var/cache/ruby/gemie/gems/bootsnap-1.18.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
        from /var/cache/ruby/gemie/gems/bootsnap-1.18.4/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
        from /home/rubyuser/hello_world/bin/rails:5:in `<top (required)>'
        from /var/cache/ruby/gemie/gems/spring-4.3.0/lib/spring/client/rails.rb:28:in `load'
        from /var/cache/ruby/gemie/gems/spring-4.3.0/lib/spring/client/rails.rb:28:in `call'
        from /var/cache/ruby/gemie/gems/spring-4.3.0/lib/spring/client/command.rb:7:in `call'
        from /var/cache/ruby/gemie/gems/spring-4.3.0/lib/spring/client.rb:30:in `run'
        from /var/cache/ruby/gemie/gems/spring-4.3.0/bin/spring:49:in `<top (required)>'
        from /var/cache/ruby/gemie/gems/spring-4.3.0/lib/spring/binstub.rb:11:in `load'
        from /var/cache/ruby/gemie/gems/spring-4.3.0/lib/spring/binstub.rb:11:in `<top (required)>'
        from <internal:/usr/lib/ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
        from <internal:/usr/lib/ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
        from /home/rubyuser/hello_world/bin/spring:10:in `block in <top (required)>'
        from <internal:kernel>:90:in `tap'
        from /home/rubyuser/hello_world/bin/spring:7:in `<top (required)>'
        from bin/rails:2:in `load'
        from bin/rails:2:in `<main>'
Comment 1 Малъ Скрылевъ 2025-03-20 19:11:26 MSK
Какъ у васъ въ этой папкѣ /var/cache/ruby/gemie/gems/activesupport-6.1.7.10/lib/active_support/ оказались версіи gem-овъ? 

сдѣлайте пжъ на тестовой машинѣ:

gem list|grep logger
Comment 2 Alexander Makeenkov 2025-03-21 09:43:27 MSK
(Ответ для Малъ Скрылевъ на комментарий #1)
> Какъ у васъ въ этой папкѣ
> /var/cache/ruby/gemie/gems/activesupport-6.1.7.10/lib/active_support/
> оказались версіи gem-овъ?

Как-то само, чистая система, никаких пакетов ruby ранее установлено не было, выполнены только те действия, которые написаны в описании.

> gem list|grep logger

logger (1.6.6, default: 1.5.0)

$ rpm -qa | grep -c logger
0

-------------------

- Дополнение:

С заданием 374139 ошибка другая:

/usr/lib/ruby/bundler/runtime.rb:308:in `check_for_activated_spec!': You have already activated stringio 3.0.1, but your Gemfile requires stringio 3.1.5. Since stringio is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports stringio as a default gem. (Gem::LoadError)
        from /usr/lib/ruby/bundler/runtime.rb:25:in `block in setup'
        from /usr/lib/ruby/bundler/spec_set.rb:155:in `each'
        from /usr/lib/ruby/bundler/spec_set.rb:155:in `each'
        from /usr/lib/ruby/bundler/runtime.rb:24:in `map'
        from /usr/lib/ruby/bundler/runtime.rb:24:in `setup'
        from /usr/lib/ruby/bundler.rb:161:in `setup'
        from /usr/lib/ruby/bundler/setup.rb:10:in `block in <top (required)>'
        from /usr/lib/ruby/bundler/ui/shell.rb:136:in `with_level'
        from /usr/lib/ruby/bundler/ui/shell.rb:88:in `silence'
        from /usr/lib/ruby/bundler/setup.rb:10:in `<top (required)>'
        from <internal:/usr/lib/ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
        from <internal:/usr/lib/ruby/rubygems/core_ext/kernel_require.rb>:85:in `require'
        from /home/rubyuser/hello_world/config/boot.rb:3:in `<top (required)>'
        from bin/rails:3:in `require_relative'
        from bin/rails:3:in `<main>'
       rails  turbo:install stimulus:install

$ gem list|grep stringio
stringio (3.1.5, default: 3.0.1)

$ rpm -qa | grep -c stringio
0
Comment 3 Alexander Makeenkov 2025-03-21 09:52:35 MSK
В сизифе не воспроизводится.
Comment 4 Малъ Скрылевъ 2025-03-21 11:23:53 MSK
1. А выводъ отъ rails new каковъ? 

Просто /var/cache/ruby/gemie/gems/activesupport-6.1.7.10/lib/active_support/ говоритъ о томъ, что ставятся новые допъ пакеты, а не берутся системные, но при этомъ не ставится системный logger

2. это logger (1.6.6, default: 1.5.0) говоритъ о томъ, что въ системѣ стоятъ и stdlib-овскій logger и дополнительный поставленный по зависимостямъ

3. значеніе GEM_PATH каково, именно сразу послѣ выполеннія useradd, и безъ логина въ него, и потом rails new отъ какого пользователя происходитъ?
Comment 5 Alexander Makeenkov 2025-03-21 11:40:50 MSK
Created attachment 18059 [details]
логи выполнения rails new

(Ответ для Малъ Скрылевъ на комментарий #4)
> 1. А выводъ отъ rails new каковъ? 

Во вложении.

> 3. значеніе GEM_PATH каково

# echo $GEM_PATH
/var/cache/ruby/gemie:/usr/lib/ruby/gemie:/usr/lib64/ruby/gemie:/usr/lib/ruby/gems/2.7.0/

> rails new отъ какого пользователя происходитъ?

От только что созданного:

$ id
uid=1001(rubyuser) gid=1001(rubyuser) группы=1001(rubyuser),965(ruby)
Comment 6 Alexander Makeenkov 2025-03-21 11:41:25 MSK
Created attachment 18060 [details]
логи выполнения rails new + task 374139
Comment 7 Alexander Makeenkov 2025-03-21 11:44:40 MSK
(Ответ для Alexander Makeenkov на комментарий #5)
> /var/cache/ruby/gemie:/usr/lib/ruby/gemie:/usr/lib64/ruby/gemie:/usr/lib/
> ruby/gems/2.7.0/

Возможно, сначала должен быть системный путь, а только потом cache.
Comment 8 Alexander Makeenkov 2025-03-21 11:54:09 MSK
(Ответ для Alexander Makeenkov на комментарий #7)
> Возможно, сначала должен быть системный путь, а только потом cache.

$ echo $GEM_PATH
/usr/lib/ruby/gemie:/usr/lib64/ruby/gemie:/usr/lib/ruby/gems/2.7.0/:/var/cache/ruby/gemie/

Не помогло ...