[DRE-maint] Bug#968420: ruby-bunny: FTBFS due to faulty testcase

Sergio Durigan Junior sergiodj at debian.org
Sat Aug 15 05:44:10 BST 2020


Source: ruby-bunny
Version: 2.14.4-3
Severity: serious
Tags: ftbfs sid

I've just noticed that ruby-bunny FTBFS when building using a pristine
schroot on sbuild:

--8<---------------cut here---------------start------------->8---
Waiting for pid file '/tmp/d20200814-17660-k3x0b6/mnesia/bunny.pid' to appear

  ##  ##      RabbitMQ 3.8.5
  ##  ##
  ##########  Copyright (c) 2007-2020 VMware, Inc. or its affiliates.
  ######  ##
  ##########  Licensed under the MPL 1.1. Website: https://rabbitmq.com

  Doc guides: https://rabbitmq.com/documentation.html
  Support:    https://rabbitmq.com/contact.html
  Tutorials:  https://rabbitmq.com/getstarted.html
  Monitoring: https://rabbitmq.com/monitoring.html

  Logs: /tmp/d20200814-17660-k3x0b6/log/bunny at paluero.log
        /tmp/d20200814-17660-k3x0b6/log/bunny at paluero_upgrade.log

  Config file(s): /tmp/d20200814-17660-k3x0b6/rabbitmq.conf

  Starting broker... completed with 4 plugins.
Error: operation wait on node bunny at paluero timed out. Timeout value used: 10000
rake aborted!
command failed: ["/usr/lib/rabbitmq/bin/rabbitmqctl", "wait", "/tmp/d20200814-17660-k3x0b6/mnesia/bunny.pid"]
/<<PKGBUILDDIR>>/debian/ruby-tests.rake:53:in `run'
/<<PKGBUILDDIR>>/debian/ruby-tests.rake:62:in `start_rabbitmq_server'
/<<PKGBUILDDIR>>/debian/ruby-tests.rake:75:in `block in <top (required)>'
/usr/share/rubygems-integration/all/gems/rake-13.0.1/exe/rake:27:in `<top (required)>'
Tasks: TOP => default
(See full trace by running task with --trace)
ERROR: Test "ruby2.7" failed. Exiting.
dh_auto_install: error: dh_ruby --install /<<PKGBUILDDIR>>/debian/ruby-bunny returned exit code 1
make[1]: *** [debian/rules:10: override_dh_auto_install] Error 25
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
make: *** [debian/rules:6: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
--8<---------------cut here---------------end--------------->8---

If we try to build in a container/VM using dpkg-buildpackage and a
non-root user, the error happens even earlier:

--8<---------------cut here---------------start------------->8---
Waiting for pid file '/tmp/d20200814-28938-5mzc2m/mnesia/bunny.pid' to appear
23:47:37.895 [error] 

23:47:37.899 [error] BOOT FAILED
BOOT FAILED
23:47:37.899 [error] ===========
===========
23:47:37.900 [error] ERROR: distribution port 25672 in use by rabbit at magical-boa
ERROR: distribution port 25672 in use by rabbit at magical-boa
23:47:37.900 [error] 

23:47:38.902 [error] Supervisor rabbit_prelaunch_sup had child prelaunch started with rabbit_prelaunch:run_prelaunch_first_phase() at undefined exit with reason {dist_port_already_used,25672,"rabbit","magical-boa"} in context start_error
23:47:38.903 [error] CRASH REPORT Process <0.153.0> with 0 neighbours exited with reason: {{shutdown,{failed_to_start_child,prelaunch,{dist_port_already_used,25672,"rabbit","magical-boa"}}},{rabbit_prelaunch_app,start,[normal,[]]}} in application_master:init/4 line 138
{"Kernel pid terminated",application_controller,"{application_start_failure,rabbitmq_prelaunch,{{shutdown,{failed_to_start_child,prelaunch,{dist_port_already_used,25672,\"rabbit\",\"magical-boa\"}}},{rabbit_prelaunch_app,start,[normal,[]]}}}"}
Kernel pid terminated (application_controller) ({application_start_failure,rabbitmq_prelaunch,{{shutdown,{failed_to_start_child,prelaunch,{dist_port_already_used,25672,"rabbit","magical-boa"}}},{rabbi

Crash dump is being written to: erl_crash.dump...done
Error: operation wait on node bunny at magical-boa timed out. Timeout value used: 10000
rake aborted!
command failed: ["/usr/lib/rabbitmq/bin/rabbitmqctl", "wait", "/tmp/d20200814-28938-5mzc2m/mnesia/bunny.pid"]
/home/sergio/ruby-bunny/debian/ruby-tests.rake:53:in `run'
/home/sergio/ruby-bunny/debian/ruby-tests.rake:62:in `start_rabbitmq_server'
/home/sergio/ruby-bunny/debian/ruby-tests.rake:75:in `block in <top (required)>'
/usr/share/rubygems-integration/all/gems/rake-13.0.1/exe/rake:27:in `<top (required)>'
Tasks: TOP => default
(See full trace by running task with --trace)
ERROR: Test "ruby2.7" failed. Exiting.
dh_auto_install: error: dh_ruby --install /home/sergio/ruby-bunny/debian/ruby-bunny returned exit code 1
--8<---------------cut here---------------end--------------->8---

There are a few problems with the testcase:

- As stated above, it can't run under as a non-root user.  For example,
  this won't work:

    def start_rabbitmq_server
      fork do
        exec('/usr/lib/rabbitmq/bin/rabbitmq-server')
      end
    
      pidfile = File.join($tmpdir, 'mnesia', 'bunny.pid')
      run('/usr/lib/rabbitmq/bin/rabbitmqctl', 'wait', pidfile)
    
      run('./bin/ci/before_build')
    end
    
- The file "bunny.pid" isn't (always) named like that.  Here, for
  example, it's named "bunny@${HOST}.pid".  This will break the
  following code:

    pidfile = File.join($tmpdir, 'mnesia', 'bunny.pid')
    run('/usr/lib/rabbitmq/bin/rabbitmqctl', 'wait', pidfile)

- It tries to "pkill epmd", which also won't work when run as non-root.

It seems to me like this test should be executed by autopkgtest, because
the operations listed above would then be able to succeed.

Thanks,

-- 
Sergio
GPG key ID: 237A 54B1 0287 28BF 00EF  31F4 D0EB 7628 65FC 5E36
Please send encrypted e-mail if possible
https://sergiodj.net/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 832 bytes
Desc: not available
URL: <http://alioth-lists.debian.net/pipermail/pkg-ruby-extras-maintainers/attachments/20200815/34445bbd/attachment-0001.sig>


More information about the Pkg-ruby-extras-maintainers mailing list