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

Projects
None yet
5 participants
@javan
Member

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

Merge pull request #37 from rails/downgrade-celluloid
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

This comment has been minimized.

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

This comment has been minimized.

digitalextremist commented Aug 7, 2015

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

@javan

This comment has been minimized.

Member

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

This comment has been minimized.

Contributor

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

This comment has been minimized.

Member

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

This comment has been minimized.

Contributor

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

This comment has been minimized.

Member

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

This comment has been minimized.

Member

jeremy commented Oct 16, 2015

Same deal with sucker_punch disabled.

@jeremy

This comment has been minimized.

Member

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

This comment has been minimized.

Contributor

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

This comment has been minimized.

Member

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.