Dne 18. 01. 20 v 7:33 Mamoru TASAKA napsal(a):

    15    rubygem-thin-1.7.2-11.fc31.src.rpm
https://koji.fedoraproject.org/koji/taskinfo?taskID=40654299
One test failure, I don't know well.
Failures:
  1) Thin::Server should set lower maximum_connections size when too large
     Failure/Error: @server.maximum_connections.should < 100_000
       expected: < 100000
            got:   100000
     # ./spec/server_spec.rb:21:in `block (2 levels) in <top (required)>'



Looking into this, I think there is (Koji) Kernel update behind this. The last successful rubygem-thin build [1] was build on:


~~~

DEBUG buildroot.py:488:  kernel version == 5.0.6-200.fc29.x86_64

~~~


While the build failures started around mid of December according to Koschei [2] (although the missing logs are PITA). This [3] is fresh F31 scratch build which fails the same way as Rawhide.

So looking into details, the test in Thin is doing the following:


~~~

    @server.maximum_connections = 100_000

~~~


This propagates into EventMachine [4] and calls `{g,s}etrlimit (RLIMIT_NOFILE, &rlim);`. On my machine, this is the NOFILE value:


~~~

$ prlimit | grep NOFILE
NOFILE     max number of open files                1024    524288 soubory

~~~


Apparently, this is way above the limit the test case expects. My conclusion is that this had to be changed in Kernel, although it could be even systemd. Not sure.

Nevertheless, the test is naive and it should be tweaked IMO.

BTW the test passes with `--new-chroot` mock option :)


Vít


[1] https://koji.fedoraproject.org/koji/buildinfo?buildID=1340022

[2] https://koschei.fedoraproject.org/package/rubygem-thin

[3] https://koji.fedoraproject.org/koji/taskinfo?taskID=40873714

[4] https://github.com/eventmachine/eventmachine/blob/master/ext/em.cpp#L300

[5] https://github.com/macournoyer/thin/blob/master/spec/server_spec.rb#L21