Giter VIP home page Giter VIP logo

Comments (5)

MSP-Greg avatar MSP-Greg commented on July 17, 2024 1

I haven't seen this recently, and I'm working on a lot of Puma test changes. Or, I've looked at way too many CI logs recently.

One interesting one was a macOS job where the rake compile step failed, as 'build tools' were missing. We do absolutely nothing with build tools, except for ragel.

Regardless, I'll close and open (or re-open) if I see the issue.

from nio4r.

ioquatix avatar ioquatix commented on July 17, 2024

Thanks for the report, I'll investigate.

from nio4r.

ioquatix avatar ioquatix commented on July 17, 2024

I asked @ko1 about it and he mentioned that Kernel#select is a private method.

irb#1(main):001:0> o = Object.new
=> #<Object:0x00007fa45739bb80>
irb#1(main):002:0> o.select(1)
(irb#1):2:in `<top (required)>': private method `select' called for #<Object:0x00007fa45739bb80> (NoMethodError)

Actually I'm a little surprised it's part of Kernel. Anyway, it seems like that's possibly generating the error message. In other words, maybe NIO::Selector#select is being undefined somehow???

from nio4r.

MSP-Greg avatar MSP-Greg commented on July 17, 2024

Thanks for checking.

In other words, maybe NIO::Selector#select is being undefined somehow???

I guess I'll see if I can find if it is. I've been thru the Puma code, don't recall anything in the 'lib' code, and things like that I'd normally consider a very bad idea in the test system. I'll look more tomorrow...

from nio4r.

MSP-Greg avatar MSP-Greg commented on July 17, 2024

I checked the code, and a single instance of NIO::Selector is created in one file/object Puma::Reactor. It is an internal object, as code outside of the class cannot access it. The following methods are called:

close, deregister, register, select, wakeup

Or, there is no code that would undefine a method. A few notes:

  1. Puma runs some tests parallel, which makes it difficult to determine the results of 'crash & burn' issues. It appears that the test that generated the output passed.

  2. I've looked at test logs quite a bit, and I don't recall seeing this before.

  3. Using the seed value of the failing test run, I ran the test suite in CI and locally (forcing my system's 'Etc.nprocessors' to match CI systems). Of course, the tests did not repo the error.

  4. Given the above, not sure if the error is related to the Ruby version used, which was 3.2.

I've added code to rescue NoMethodError, and it seems to not cause any issues with Puma. Need to do some more testing.

from nio4r.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.