Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Dec 06 11:29
    keisukeYamagishi commented #2718
  • Dec 06 10:19
    dentarg commented #2762
  • Dec 06 10:18

    dentarg on master

    Add SIGINFO to documentation (#… (compare)

  • Dec 06 10:18
    dentarg closed #2762
  • Dec 06 10:11
    fschwahn commented #1320
  • Dec 06 10:11
    fschwahn opened #2762
  • Dec 06 09:31
    dentarg commented #1320
  • Dec 06 09:11
    fschwahn commented #1320
  • Dec 01 09:39
    jdelStrother commented #2756
  • Dec 01 09:39
    jdelStrother commented #2756
  • Dec 01 09:39
    jdelStrother commented #2756
  • Dec 01 09:38
    jdelStrother commented #2756
  • Dec 01 09:38
    jdelStrother commented #2756
  • Nov 25 18:19
    jacobherrington opened #2761
  • Nov 24 17:39

    MSP-Greg on master

    [CI] OpenSSL 3.0 - Fix error me… (compare)

  • Nov 24 17:39
    MSP-Greg closed #2760
  • Nov 24 17:06
    MSP-Greg labeled #2760
  • Nov 24 17:06
    MSP-Greg labeled #2760
  • Nov 24 17:04
    lucaskanashiro commented #2760
  • Nov 24 17:03
    lucaskanashiro synchronize #2760
Blane Dabney
@raelik
If you're using MRI, you can better utilize multiple cores, since MRI doesn't have truly native threads
But, since ruby 1.9 (2.0 maybe?), the I/O is handled internally using native threads, so the typical use cases of threads that wait on I/O will tend to run concurrently even with the GIL locking the green threads.
So I don't think on modern ruby versions there's much use for having multiple workers.
I think if you're doing something more CPU intensive in your Rack app, you may want multiple workers.
Chris
@ipatch
@raelik definitely not using jRuby, all my rails apps are currenty using rvm ruby 2.3.1 love song
Blane Dabney
@raelik
@ipatch Right, so long as your rails apps aren't servicing long-running requests, I think just having a single worker with your threads set appropriately is enough.
Chris
@ipatch
@raelik by single worker you mean cap / puma begins its index at 0 and not 1 ?
Blane Dabney
@raelik
But if you start doing odd things (like say... handling persistent websocket requests), you shouldn't need to use the worker model
Technically, in the case of setting workers, 0 and 1 are effectively the same
0 means you're disabling the worker model entirely.
Chris
@ipatch
ohhh, that i didn’t know, thanks for the explanation 👍
Blane Dabney
@raelik
But setting it to 1 means you're only using 1 worker... so you aren't taking advantage of the worker model. But you also aren't actually disabling it entirely.
Chris
@ipatch
interesting, so the worker model works in conjuction with the threading nature of ruby?
Blane Dabney
@raelik
Pretty sure of that anyway. It's been so long since I've used the worker model
The worker model is actually a way to work around the limited threading in MRI
since it spins up multiple processes.
Chris
@ipatch
hmmm, so workers are new system processes spawned by puma?
Blane Dabney
@raelik
But that became less necessary in ruby 1.9
yes.
Chris
@ipatch
ahhh, that makes sense
Blane Dabney
@raelik
jRuby uses native Java threads, so the worker model is actually permanently disabled if you're using jRuby and Puma (which is my typical use case)
Chris
@ipatch
thanks for the explanation i’ll buy you a cup of ☕️ or 🍺 next time your in town.
Blane Dabney
@raelik
:+1:
Johnathon E Wright
@mustmodify
Just FYI, I had an invalid path for the second argument to stdout_redirect and puma was failing silenty. Quitting silently, I guess.
Blane Dabney
@raelik
@mustmodify what puma version?
you should have seen Cannot redirect STDERR to <your invalid path> in the puma error log
Blane Dabney
@raelik
Oh, I think I see what might be the issue there. That exception will get swallowed depending on how you start Puma
Brian Purgert
@BrianPurgert
Starting puma automatically?
I
How do
L
Brian Purgert
@BrianPurgert
**How do I start puma automatically, aka what is the recommended method? Ive just been running puma in a screen session.
Blane Dabney
@raelik
@BrianPurgert that's completely dependent on your system, deployment strategy, etc.
You might make an init.d script, or a systemd service, or could be a monit config, a line in /etc/rc.local, a launch daemon plist file (for OS X), etc etc
adamjbradley
@adamjbradley
Howdy all!
Emba Moussa
@embasbm
hi, anyone hit the wall with ubuntu 16.04?
Blane Dabney
@raelik
?
Jonathan Boler
@jboler_gitlab
Does anyone run puma on jRuby using JVM server mode?
As far as I can tell puma defaults to running in JVM client mode and I can't find anything online about running it in server mode
Something like jruby --server $(which puma)
Jonathan Boler
@jboler_gitlab
After further research it looks like everything on 64bit is run in server mode these days
David Blewett
@davidblewett
I'm having trouble configuring Puma to accept connections from rust client code (using the rustls crate). No matter what I try, I end up with: #<Puma::MiniSSL::SSLError: OpenSSL error: error:1408A0C1:SSL routines:ssl3_get_client_hello:no shared cipher - 336109761>
Blane Dabney
@raelik
I believe this is a long-standing issue: puma/puma#1339
most folks resort to using a separate reverse proxy to handle SSL
David Blewett
@davidblewett
Blerg.
Blane Dabney
@raelik
Though, it might have something to do with SNI
if your Puma SSL works otherwise, but not when connecting with Rust, that may be the issue
David Blewett
@davidblewett
hmm; I turned SNI off in the rust client request and it still fails
I think it might be something to do with the signature_algorithms in the request