• Bug#1104416: FTBFS: Building is stuck at cleanup phase

    From Gunnar Wolf@21:1/5 to All on Tue Apr 29 22:10:01 2025
    Package: ruby-fugit
    Version: 1.8.1-3
    Severity: normal
    Tags: ftbfs

    When building ruby-fugit, the build process seems to run successfully,
    until it reaches the cleanup stage. The last output I get is:

    cd debian/ruby-fugit/usr/share/rubygems-integration/all
    rm -rf bin
    rm -rf build_info
    rm -rf cache
    rm -rf doc
    rm -rf extensions
    rmdir plugins
    cd gems/fugit-1.11.1
    rm -f
    chmod 644 lib/fugit/at.rb lib/fugit/cron.rb lib/fugit/duration.rb lib/fugit/misc.rb lib/fugit/nat.rb lib/fugit/parse.rb lib/fugit.rb
    find lib/ -type d -empty -delete

    The process tree for the build at this stage is as follows:

    S+ 0:00 | | \_ /usr/bin/python3 /usr/bin/gbp buildpackage -us -uc
    S+ 0:00 | | \_ /bin/sh -c debuild -i -I -us -uc
    S+ 0:00 | | \_ /usr/bin/perl /usr/bin/debuild -i -I -us -uc
    S+ 0:00 | | \_ tee ../ruby-fugit_1.11.1-1_amd64.build
    S+ 0:00 | | \_ /usr/bin/perl /usr/bin/dpkg-buildpackage -us -uc -ui -i -I
    S+ 0:00 | | \_ /usr/bin/make -f debian/rules binary
    S+ 0:00 | | \_ /usr/bin/perl /usr/bin/dh binary --buildsystem=ruby --with ruby
    S+ 0:00 | | \_ /usr/bin/perl /usr/bin/dh_auto_install --destdir=debian/ruby-fugit/ -O--buildsystem=ruby
    Dl+ 0:13 | | \_ /usr/bin/ruby -EUTF-8 /usr/bin/dh_ruby --install /home/gwolf/vcs/build-area/ruby-fugit-1.11.1/debian/ruby-fugit

    What I find odd is that the call to "dh_ruby --install" is in
    uninterruptible sleep due to I/O; that seems to signal some sort of
    deadlock.

    Do note that this situation happens both when attempting to build the
    version currently in the archive (1.8.1-3) or the update I'm trying to make (1.11.1-1).

    -- System Information:
    Debian Release: trixie/sid
    APT prefers unstable
    APT policy: (500, 'unstable')
    Architecture: amd64 (x86_64)

    Kernel: Linux 6.8.12-amd64 (SMP w/8 CPU threads; PREEMPT)
    Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US:en
    Shell: /bin/sh linked to /usr/bin/dash
    Init: systemd (via /run/systemd/system)
    LSM: AppArmor: enabled

    Versions of packages ruby-fugit depends on:
    ii ruby-et-orbi 1.2.7-2
    ii ruby-raabro 1.4.0-1

    ruby-fugit recommends no packages.

    ruby-fugit suggests no packages.

    -- no debconf information

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Chris Hofstaedtler@21:1/5 to All on Wed Apr 30 11:30:02 2025
    * Gunnar Wolf <gwolf@gwolf.org> [250429 22:00]:
    When building ruby-fugit, the build process seems to run successfully,
    until it reaches the cleanup stage. The last output I get is:

    cd debian/ruby-fugit/usr/share/rubygems-integration/all
    rm -rf bin
    rm -rf build_info
    rm -rf cache
    rm -rf doc
    rm -rf extensions
    rmdir plugins
    cd gems/fugit-1.11.1
    rm -f
    chmod 644 lib/fugit/at.rb lib/fugit/cron.rb lib/fugit/duration.rb lib/fugit/misc.rb lib/fugit/nat.rb lib/fugit/parse.rb lib/fugit.rb
    find lib/ -type d -empty -delete

    The process tree for the build at this stage is as follows:

    S+ 0:00 | | \_ /usr/bin/python3 /usr/bin/gbp buildpackage -us -uc
    S+ 0:00 | | \_ /bin/sh -c debuild -i -I -us -uc
    S+ 0:00 | | \_ /usr/bin/perl /usr/bin/debuild -i -I -us -uc
    S+ 0:00 | | \_ tee ../ruby-fugit_1.11.1-1_amd64.build
    S+ 0:00 | | \_ /usr/bin/perl /usr/bin/dpkg-buildpackage -us -uc -ui -i -I
    S+ 0:00 | | \_ /usr/bin/make -f debian/rules binary
    S+ 0:00 | | \_ /usr/bin/perl /usr/bin/dh binary --buildsystem=ruby --with ruby
    S+ 0:00 | | \_ /usr/bin/perl /usr/bin/dh_auto_install --destdir=debian/ruby-fugit/ -O--buildsystem=ruby
    Dl+ 0:13 | | \_ /usr/bin/ruby -EUTF-8 /usr/bin/dh_ruby --install /home/gwolf/vcs/build-area/ruby-fugit-1.11.1/debian/ruby-fugit

    What I find odd is that the call to "dh_ruby --install" is in
    uninterruptible sleep due to I/O; that seems to signal some sort of
    deadlock.

    I just tried rebuilding ruby-fugit in sbuild (from testing) on arm64
    and it built fine for me. Total build time incl. autopkgtests
    was < 1min30s.

    Does this build failure happen reliably for you?

    Best,
    Chris

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Gunnar Wolf@21:1/5 to All on Wed Apr 30 20:10:01 2025
    Chris Hofstaedtler dijo [Wed, Apr 30, 2025 at 11:18:32AM +0200]:
    * Gunnar Wolf <gwolf@gwolf.org> [250429 22:00]:
    When building ruby-fugit, the build process seems to run successfully, >>until it reaches the cleanup stage. The last output I get is:

    cd debian/ruby-fugit/usr/share/rubygems-integration/all
    rm -rf bin
    rm -rf build_info
    rm -rf cache
    rm -rf doc
    rm -rf extensions
    rmdir plugins
    cd gems/fugit-1.11.1
    rm -f
    chmod 644 lib/fugit/at.rb lib/fugit/cron.rb lib/fugit/duration.rb lib/fugit/misc.rb lib/fugit/nat.rb lib/fugit/parse.rb lib/fugit.rb
    find lib/ -type d -empty -delete
    (...)

    I just tried rebuilding ruby-fugit in sbuild (from testing) on arm64
    and it built fine for me. Total build time incl. autopkgtests
    was < 1min30s.

    Does this build failure happen reliably for you?

    Weird. I tried it repeatedly at my work machine, both using gbp and debuild (but didn't try building in a chroot), and it failed several times.

    I tried today from my home computer, and it (reliably) passes this point no issues.

    The package fails to build because of four test failures, but that's a completely different issue 😉

    Failures:
    1) Fugit::Cron#previous_time succeeds "21 0 * * 1%2 America/Sao_Paulo" 2024-03-13 12:00 -> "2024-03-04 04:21:00" in Europe/Paris
    Failure/Error:
    fail RuntimeError.new(
    "too many loops for #{@original.inspect} #previous_time, breaking, " +
    "cron expression most likely invalid (Feb 30th like?), " +
    "please fill an issue at https://git.io/fjJCQ"
    ) if (i += 1) > MAX_ITERATION_COUNT
    RuntimeError:
    too many loops for "21 0 * * 1%2 America/Sao_Paulo" #previous_time, breaking, cron expression most likely invalid (Feb 30th like?), please fill an issue at https://git.io/fjJCQ
    # ./lib/fugit/cron.rb:319:in `block in previous_time'
    # ./lib/fugit/cron.rb:317:in `previous_time'
    # ./spec/cron_spec.rb:925:in `block (5 levels) in <top (required)>'
    # ./spec/spec_helper.rb:29:in `in_zone'
    # ./spec/cron_spec.rb:918:in `block (4 levels) in <top (required)>'
    2) Fugit::Cron#brute_frequency computes "dmin: 1D, dmax: 1D, ocs: 365, spn: 52W1D, spnys: 1, yocs: 365" for "0 0 * * *"
    Failure/Error: expect(f).to eq(freq)
    expected: "dmin: 1D, dmax: 1D, ocs: 365, spn: 52W1D, spnys: 1, yocs: 365"
    got: "dmin: 23h, dmax: 1D1h, ocs: 365, spn: 52W1D, spnys: 1, yocs: 365"
    (compared using ==)
    # ./spec/cron_spec.rb:1015:in `block (4 levels) in <top (required)>'
    3) Fugit::Cron#brute_frequency computes "dmin: 1W, dmax: 1W, ocs: 53, spn: 53W, spnys: 1, yocs: 52" for "0 0 * * sun"
    Failure/Error: expect(f).to eq(freq)
    expected: "dmin: 1W, dmax: 1W, ocs: 53, spn: 53W, spnys: 1, yocs: 52"
    got: "dmin: 6D23h, dmax: 1W1h, ocs: 53, spn: 53W, spnys: 1, yocs: 52"
    (compared using ==)
    # ./spec/cron_spec.rb:1015:in `block (4 levels) in <top (required)>'
    4) Fugit::Cron#brute_frequency accepts a year argument
    Failure/Error:
    expect(
    Fugit::Cron.parse('0 0 * * sun').brute_frequency(2016).to_debug_s
    ).to eq(
    'dmin: 1W, dmax: 1W, ocs: 52, spn: 52W, spnys: 0, yocs: 52'
    )
    expected: "dmin: 1W, dmax: 1W, ocs: 52, spn: 52W, spnys: 0, yocs: 52"
    got: "dmin: 6D23h, dmax: 1W1h, ocs: 52, spn: 52W, spnys: 0, yocs: 52"
    (compared using ==)
    # ./spec/cron_spec.rb:1021:in `block (3 levels) in <top (required)>' Finished in 50.81 seconds (files took 0.20173 seconds to load)
    1437 examples, 4 failures, 1 pending
    Failed examples:
    rspec './spec/cron_spec.rb[1:3:30]' # Fugit::Cron#previous_time succeeds "21 0 * * 1%2 America/Sao_Paulo" 2024-03-13 12:00 -> "2024-03-04 04:21:00" in Europe/Paris
    rspec './spec/cron_spec.rb[1:4:2]' # Fugit::Cron#brute_frequency computes "dmin: 1D, dmax: 1D, ocs: 365, spn: 52W1D, spnys: 1, yocs: 365" for "0 0 * * *"
    rspec './spec/cron_spec.rb[1:4:3]' # Fugit::Cron#brute_frequency computes "dmin: 1W, dmax: 1W, ocs: 53, spn: 53W, spnys: 1, yocs: 52" for "0 0 * * sun"
    rspec ./spec/cron_spec.rb:1019 # Fugit::Cron#brute_frequency accepts a year argument

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)