Working on update of rubygem-puma, I observe following test failure
trying build rubygem-rails in Mock:
~~~
/usr/share/ruby/socket.rb:68:in `connect': Errno::EACCES: Permission
denied - connect(2) for /run/host/notify (Puma::SdNotify::NotifyError)
from /usr/share/ruby/socket.rb:68:in `connect_internal'
from /usr/share/ruby/socket.rb:141:in `connect'
from /usr/share/gems/gems/puma-6.4.2/lib/puma/sd_notify.rb:140:in
`notify'
from /usr/share/gems/gems/puma-6.4.2/lib/puma/sd_notify.rb:53:in
`ready'
from
/usr/share/gems/gems/puma-6.4.2/lib/puma/plugin/systemd.rb:17:in `block
in start'
from /usr/share/gems/gems/puma-6.4.2/lib/puma/events.rb:17:in
`block in fire'
from /usr/share/gems/gems/puma-6.4.2/lib/puma/events.rb:17:in `each'
from /usr/share/gems/gems/puma-6.4.2/lib/puma/events.rb:17:in `fire'
from /usr/share/gems/gems/puma-6.4.2/lib/puma/events.rb:46:in
`fire_on_booted!'
from /usr/share/gems/gems/puma-6.4.2/lib/puma/single.rb:58:in `run'
from /usr/share/gems/gems/puma-6.4.2/lib/puma/launcher.rb:194:in `run'
from /usr/share/gems/gems/puma-6.4.2/lib/rack/handler/puma.rb:76:in
`run'
from /usr/share/gems/gems/rack-2.2.4/lib/rack/server.rb:327:in `start'
from
/builddir/build/BUILD/railties-7.0.8/usr/share/gems/gems/railties-7.0.8/lib/rails/commands/server/server_command.rb:38:in
`start'
from
/builddir/build/BUILD/railties-7.0.8/usr/share/gems/gems/railties-7.0.8/lib/rails/commands/server/server_command.rb:143:in
`block in perform'
from <internal:kernel>:90:in `tap'
from
/builddir/build/BUILD/railties-7.0.8/usr/share/gems/gems/railties-7.0.8/lib/rails/commands/server/server_command.rb:134:in
`perform'
from /usr/share/gems/gems/thor-1.2.1/lib/thor/command.rb:27:in `run'
from /usr/share/gems/gems/thor-1.2.1/lib/thor/invocation.rb:127:in
`invoke_command'
from /usr/share/gems/gems/thor-1.2.1/lib/thor.rb:392:in `dispatch'
from
/builddir/build/BUILD/railties-7.0.8/usr/share/gems/gems/railties-7.0.8/lib/rails/command/base.rb:87:in
`perform'
from
/builddir/build/BUILD/railties-7.0.8/usr/share/gems/gems/railties-7.0.8/lib/rails/command.rb:48:in
`invoke'
from
/builddir/build/BUILD/railties-7.0.8/usr/share/gems/gems/railties-7.0.8/lib/rails/commands.rb:18:in
`<top (required)>'
from /usr/share/ruby/bundled_gems.rb:74:in `require'
from /usr/share/ruby/bundled_gems.rb:74:in `block (2 levels) in
replace_require'
from bin/rails:4:in `<main>'
/usr/share/ruby/socket.rb:68:in `connect': Permission denied -
connect(2) for /run/host/notify (Errno::EACCES)
from /usr/share/ruby/socket.rb:68:in `connect_internal'
from /usr/share/ruby/socket.rb:141:in `connect'
from /usr/share/gems/gems/puma-6.4.2/lib/puma/sd_notify.rb:140:in
`notify'
from /usr/share/gems/gems/puma-6.4.2/lib/puma/sd_notify.rb:53:in
`ready'
from
/usr/share/gems/gems/puma-6.4.2/lib/puma/plugin/systemd.rb:17:in `block
in start'
from /usr/share/gems/gems/puma-6.4.2/lib/puma/events.rb:17:in
`block in fire'
from /usr/share/gems/gems/puma-6.4.2/lib/puma/events.rb:17:in `each'
from /usr/share/gems/gems/puma-6.4.2/lib/puma/events.rb:17:in `fire'
from /usr/share/gems/gems/puma-6.4.2/lib/puma/events.rb:46:in
`fire_on_booted!'
from /usr/share/gems/gems/puma-6.4.2/lib/puma/single.rb:58:in `run'
from /usr/share/gems/gems/puma-6.4.2/lib/puma/launcher.rb:194:in `run'
from /usr/share/gems/gems/puma-6.4.2/lib/rack/handler/puma.rb:76:in
`run'
from /usr/share/gems/gems/rack-2.2.4/lib/rack/server.rb:327:in `start'
from
/builddir/build/BUILD/railties-7.0.8/usr/share/gems/gems/railties-7.0.8/lib/rails/commands/server/server_command.rb:38:in
`start'
from
/builddir/build/BUILD/railties-7.0.8/usr/share/gems/gems/railties-7.0.8/lib/rails/commands/server/server_command.rb:143:in
`block in perform'
from <internal:kernel>:90:in `tap'
from
/builddir/build/BUILD/railties-7.0.8/usr/share/gems/gems/railties-7.0.8/lib/rails/commands/server/server_command.rb:134:in
`perform'
from /usr/share/gems/gems/thor-1.2.1/lib/thor/command.rb:27:in `run'
from /usr/share/gems/gems/thor-1.2.1/lib/thor/invocation.rb:127:in
`invoke_command'
from /usr/share/gems/gems/thor-1.2.1/lib/thor.rb:392:in `dispatch'
from
/builddir/build/BUILD/railties-7.0.8/usr/share/gems/gems/railties-7.0.8/lib/rails/command/base.rb:87:in
`perform'
from
/builddir/build/BUILD/railties-7.0.8/usr/share/gems/gems/railties-7.0.8/lib/rails/command.rb:48:in
`invoke'
from
/builddir/build/BUILD/railties-7.0.8/usr/share/gems/gems/railties-7.0.8/lib/rails/commands.rb:18:in
`<top (required)>'
from /usr/share/ruby/bundled_gems.rb:74:in `require'
from /usr/share/ruby/bundled_gems.rb:74:in `block (2 levels) in
replace_require'
from bin/rails:4:in `<main>'
.
~~~
The full log is available here for the moment:
https://copr.fedorainfracloud.org/coprs/vondruch/mpb/build/6885294/
This is the sd_notify source code:
https://github.com/agis/ruby-sdnotify/blob/master/lib/sd_notify.rb
Nothing spectacular is going on there except it tries to write into
socket if the `$NOTIFY_SOCKET` env variable is set. I believe that if I
did `env -u NOTIFY_SOCKET`, I would get further.
However, I wonder how and why the NOTIFY_SOCKET variable is set? I also
wonder why the socket exists if it can't be used? Or would it be usable
by `root` so the permissions should be checked first?
~~~
$ mock -r ruby shell --unpriv
... snip ...
<mock-chroot> sh-5.2$ echo $NOTIFY_SOCKET
/run/host/notify
<mock-chroot> sh-5.2$ ll /run/host/notify
srwxr-xr-x. 1 root root 0 Jan 11 14:35 /run/host/notify
~~~
It does not seems to be right, but I have no idea where to report this.
Is this issue in sd_notify, Mock or is it systemd?
Interestingly enough, I don't have this env variable set on my computer.
Vít