Skip to content
This repository has been archived by the owner. It is now read-only.

Use Celluloid 0.16.0 until termination issue in 0.17.0 is resolved #37

Merged
merged 1 commit into from Jul 24, 2015

Conversation

@javan
Copy link
Member

@javan javan commented Jul 24, 2015

The issue: celluloid/celluloid#637

The issue in action:

Loading development environment (Rails 5.0.0.alpha)
>> exit
D, [2015-07-24T12:01:01.490817 #33479] DEBUG -- : Terminating 5 actors...
E, [2015-07-24T12:01:11.494161 #33479] ERROR -- : Couldn't cleanly terminate all actors in 10 seconds!

Which causes a 10 second hang before exiting.

dhh added a commit that referenced this pull request Jul 24, 2015
Use Celluloid 0.16.0 until termination issue in 0.17.0 is resolved
@dhh dhh merged commit f94531a into master Jul 24, 2015
@digitalextremist
Copy link

@digitalextremist digitalextremist commented Aug 6, 2015

Please retest this, as Celluloid 0.17.0 has refactored both Pool and Supervision::Container ... and the referenced issue was actually using 0.16.0 if I'm not mistaken.

@digitalextremist
Copy link

@digitalextremist digitalextremist commented Aug 7, 2015

The cited case was an interaction with Spring ( celluloid/celluloid#637 (comment) )

@javan
Copy link
Member Author

@javan javan commented Aug 8, 2015

Thanks @digitalextremist, it is indeed a Spring issue.

With Spring:

 $ time rails runner 'puts "Celluloid @ #{Celluloid::VERSION}, Spring @ #{defined?(Spring) ? Spring::VERSION : "-"}"'
Celluloid @ 0.17.1.1, Spring @ 1.3.6
E, [2015-08-08T17:07:41.282774 #4999] ERROR -- : Couldn't cleanly terminate all actors in 10 seconds!

real    0m18.557s
user    0m0.117s
sys 0m0.036s

Without Spring:

 $ time rails runner 'puts "Celluloid @ #{Celluloid::VERSION}, Spring @ #{defined?(Spring) ? Spring::VERSION : "-"}"'
Celluloid @ 0.17.1.1, Spring @ -

real    0m7.052s
user    0m5.893s
sys 0m1.006s

@jonleighton @jeremy any idea how we might fix this up?

@javan javan deleted the downgrade-celluloid branch Sep 1, 2015
@kayakyakr
Copy link
Contributor

@kayakyakr kayakyakr commented Oct 15, 2015

time rails r 'puts "Celluloid @ #{Celluloid::VERSION}, Spring @ #{defined?(Spring) ? Spring::VERSION : "-"}"'
Celluloid @ 0.17.2, Spring @ 1.4.0

real    0m0.654s
user    0m0.408s
sys 0m0.036s
time rails r 'puts "Celluloid @ #{Celluloid::VERSION}, Spring @ #{defined?(Spring) ? Spring::VERSION : "-"}"'
I, [2015-10-14T21:41:51.180579 #24031]  INFO -- : Celluloid 0.17.2 is running in BACKPORTED mode. [ http://git.io/vJf3J ]
Celluloid @ 0.17.2, Spring @ -

real    0m1.967s
user    0m1.670s
sys 0m0.168s

Looks like this issue is fixed with celluloid 0.17.2 and Spring 1.4.0

@jeremy
Copy link
Member

@jeremy jeremy commented Oct 16, 2015

Still broken here:

$ time rails r 'puts "Celluloid @ #{Celluloid::VERSION}, Spring @ #{defined?(Spring) ? Spring::VERSION : "-"}"'
Celluloid @ 0.17.2, Spring @ 1.4.0

real    0m11.132s
user    0m0.232s
sys 0m0.121s

$ time rails r 'puts "Celluloid @ #{Celluloid::VERSION}, Spring @ #{defined?(Spring) ? Spring::VERSION : "-"}"'
Celluloid @ 0.17.2, Spring @ 1.4.0

real    0m11.237s
user    0m0.233s
sys 0m0.122s
@kayakyakr
Copy link
Contributor

@kayakyakr kayakyakr commented Oct 16, 2015

What's the rest of your bundle look like? There might be something else causing issues? What happens if you remove Spring?

@jeremy
Copy link
Member

@jeremy jeremy commented Oct 16, 2015

I'm running with https://github.com/jonleighton/spring-watcher-listen, but with listen 3.0.3 which no longer uses Celluloid, and sucker_punch master, which just switched to 0.17.2.

@jeremy
Copy link
Member

@jeremy jeremy commented Oct 16, 2015

Same deal with sucker_punch disabled.

@jeremy
Copy link
Member

@jeremy jeremy commented Oct 16, 2015

Scratch that: with sucker_punch disabled… and stopping spring, oops… I get quick shutdown.

$ time env rails r 'require "celluloid/current"; puts "Celluloid @ #{Celluloid::VERSION}, Spring @ #{defined?(Spring::VERSION) ? Spring::VERSION : "-"}"'
Celluloid @ 0.17.2, Spring @ 1.4.0

real    0m1.650s
user    0m0.234s
sys 0m0.122s

$ rails c
Loading development environment (Rails 5.0.0.alpha)
>> exit
$
@kayakyakr
Copy link
Contributor

@kayakyakr kayakyakr commented Oct 16, 2015

So what's the verdict? Celluloid 0.17.2 and Spring 1.4.0, still a conflict or no? Any compelling reason to not upgrade to 0.17.2?

Would be helpful if it was possible to say 0.16.0 or >= 0.17.2 and let people pick a Celluloid version for themselves, but the gemspec doesn't want to work that way. alas.

@jeremy
Copy link
Member

@jeremy jeremy commented Oct 16, 2015

Unclear yet. Other libs haven't upgraded to 0.17.x for the same reasons as us, so upgrading puts apps in a tough spot. We could do something like a '>= 0.16.0' dep and warn on known-problematic version numbers…

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
5 participants