Search code examples
rubymacossasscompass

Compass watch - only writes once


I've been running compass and sass for a while now, however updated my system this afternoon:

mac osX 10.10.2 (14C1514)

Ruby version: ruby 2.0.0p481 (2014-05-08 revision 45883) [universal.x86_64-darwin14]

Sass version: Sass 3.4.13 (Selective Steve)

Compass version: 1.0.3

And all of a sudden compass stopped working, it would watch the files but and do the first write, but then after that it wouldn't see any more changes.

After looking around online i found:

compass watch --p 

might help me, it seemed to work and was running fine 'ish' but build times were really slow.

Andys-mac:scss andy$ compass watch --p
>>> Compass is watching for changes. Press Ctrl-C to Stop.
 modified layout/_header.scss
    write /Users/andy/Sites/projectname/httpdocs/library/css/style.css

When i break from this it throws me the error as follows:

E, [2015-03-20T15:13:26.627204 #1102] ERROR -- : Actor crashed!
Celluloid::DeadActorError: attempted to call a dead actor
    /Library/Ruby/Gems/2.0.0/gems/celluloid-0.16.0/lib/celluloid/proxies/sync_proxy.rb:23:in `method_missing'
    /Library/Ruby/Gems/2.0.0/gems/listen-2.9.0/lib/listen/file.rb:9:in `change'
    /Library/Ruby/Gems/2.0.0/gems/listen-2.9.0/lib/listen/change.rb:40:in `change'
    /Library/Ruby/Gems/2.0.0/gems/celluloid-0.16.0/lib/celluloid/calls.rb:26:in `public_send'
    /Library/Ruby/Gems/2.0.0/gems/celluloid-0.16.0/lib/celluloid/calls.rb:26:in `dispatch'
    /Library/Ruby/Gems/2.0.0/gems/celluloid-0.16.0/lib/celluloid/calls.rb:63:in `dispatch'
    /Library/Ruby/Gems/2.0.0/gems/celluloid-0.16.0/lib/celluloid/cell.rb:60:in `block in invoke'
    /Library/Ruby/Gems/2.0.0/gems/celluloid-0.16.0/lib/celluloid/cell.rb:71:in `block in task'
    /Library/Ruby/Gems/2.0.0/gems/celluloid-0.16.0/lib/celluloid/actor.rb:357:in `block in task'
    /Library/Ruby/Gems/2.0.0/gems/celluloid-0.16.0/lib/celluloid/tasks.rb:57:in `block in initialize'
    /Library/Ruby/Gems/2.0.0/gems/celluloid-0.16.0/lib/celluloid/tasks/task_fiber.rb:15:in `block in create'
E, [2015-03-20T15:13:26.628055 #1102] ERROR -- : Actor crashed!
Celluloid::DeadActorError: attempted to call a dead actor
    /Library/Ruby/Gems/2.0.0/gems/celluloid-0.16.0/lib/celluloid/proxies/sync_proxy.rb:23:in `method_missing'
    /Library/Ruby/Gems/2.0.0/gems/listen-2.9.0/lib/listen/file.rb:9:in `change'
    /Library/Ruby/Gems/2.0.0/gems/listen-2.9.0/lib/listen/change.rb:40:in `change'
    /Library/Ruby/Gems/2.0.0/gems/celluloid-0.16.0/lib/celluloid/calls.rb:26:in `public_send'
    /Library/Ruby/Gems/2.0.0/gems/celluloid-0.16.0/lib/celluloid/calls.rb:26:in `dispatch'
    /Library/Ruby/Gems/2.0.0/gems/celluloid-0.16.0/lib/celluloid/calls.rb:63:in `dispatch'
    /Library/Ruby/Gems/2.0.0/gems/celluloid-0.16.0/lib/celluloid/cell.rb:60:in `block in invoke'
    /Library/Ruby/Gems/2.0.0/gems/celluloid-0.16.0/lib/celluloid/cell.rb:71:in `block in task'
    /Library/Ruby/Gems/2.0.0/gems/celluloid-0.16.0/lib/celluloid/actor.rb:357:in `block in task'
    /Library/Ruby/Gems/2.0.0/gems/celluloid-0.16.0/lib/celluloid/tasks.rb:57:in `block in initialize'
    /Library/Ruby/Gems/2.0.0/gems/celluloid-0.16.0/lib/celluloid/tasks/task_fiber.rb:15:in `block in create'

Im lost i've tried uninstalling compass - sass, updating ruby system im at the end of my whit please help me. If i've missed anything that people might know to help fix it, i'll gladly share.

Thanks so much.


Solution

  • Okay, so i found that celluloid was causing a data leak or something along those lines.

    I tried a few things to sort this:

    sudo gem update `gem list | cut -d ' ' -f 1`
    

    Updating all the gems didn't work but that might work for some people. I ended up running:

    sudo gem uninstall --all
    

    To remove all gems that might be causing a problem, i then reinstalled the compass gem and sass gem. 2 hours of routing and that was the fix. Hope this helps people in the future.