New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Middleman server hangs, with no error/stack trace #1367

Open
telekineticyeti opened this Issue Sep 5, 2014 · 87 comments

Comments

Projects
None yet
@telekineticyeti

telekineticyeti commented Sep 5, 2014

Hello

I am running into an issue where middleman will terminate after initiating a server, either with bundle exec middleman command or bundle exec middleman server.

The hang causes no stack trace or errors, however the project will successfully build without errors or warnings. I'm a little stumped on how to troubleshoot this.

Below is the result of attempting to initiate a server. The server hangs roughly 8 seconds after launch:

PS B:\www\projects\tempo> bundle exec middleman server
== The Middleman is loading
== LiveReload accepting connections from http://127.0.0.1:4567 (localhost)
PS B:\www\projects\tempo>

Environment: Windows 7 x64 with ruby 1.9.3p545 (2014-02-24) [i386-mingw32], Middleman 3.3.5
Gemfiles and config.rb available here.

@telekineticyeti

This comment has been minimized.

telekineticyeti commented Sep 5, 2014

I am now able to initiate the server reliably by reverting middleman to 3.3.4, and padrino-helpers/padrino-support to 0.12.2 (to counteract this issue).

Including my new gemfile.lock below:

GEM
  remote: https://rubygems.org/
  specs:
    activesupport (4.1.5)
      i18n (~> 0.6, >= 0.6.9)
      json (~> 1.7, >= 1.7.7)
      minitest (~> 5.1)
      thread_safe (~> 0.1)
      tzinfo (~> 1.1)
    breakpoint (2.5.0)
      sass (~> 3.3)
      sassy-maps (< 1.0.0)
    celluloid (0.16.0)
      timers (~> 4.0.0)
    chunky_png (1.3.1)
    coffee-script (2.3.0)
      coffee-script-source
      execjs
    coffee-script-source (1.8.0)
    compass (1.0.0.rc.0)
      chunky_png (~> 1.2)
      compass-core (~> 1.0.0.rc.0)
      compass-import-once (~> 1.0.4)
      rb-fsevent (>= 0.9.3)
      rb-inotify (>= 0.9)
      sass (>= 3.3.13, < 3.5)
    compass-core (1.0.1)
      multi_json (~> 1.0)
      sass (>= 3.3.0, < 3.5)
    compass-import-once (1.0.4)
      sass (>= 3.2, < 3.5)
    em-websocket (0.5.1)
      eventmachine (>= 0.12.9)
      http_parser.rb (~> 0.6.0)
    erubis (2.7.0)
    eventmachine (1.0.3-x86-mingw32)
    execjs (2.2.1)
    ffi (1.9.3-x86-mingw32)
    haml (4.0.5)
      tilt
    hike (1.2.3)
    hitimes (1.2.2)
    hooks (0.4.0)
      uber (~> 0.0.4)
    http_parser.rb (0.6.0)
    i18n (0.6.11)
    json (1.8.1)
    kramdown (1.4.1)
    listen (2.7.9)
      celluloid (>= 0.15.2)
      rb-fsevent (>= 0.9.3)
      rb-inotify (>= 0.9)
    middleman (3.3.4)
      coffee-script (~> 2.2)
      compass (>= 0.12.4)
      compass-import-once (= 1.0.4)
      execjs (~> 2.0)
      haml (>= 4.0.5)
      kramdown (~> 1.2)
      middleman-core (= 3.3.4)
      middleman-sprockets (>= 3.1.2)
      sass (>= 3.2.17, < 4.0)
      uglifier (~> 2.5)
    middleman-core (3.3.4)
      activesupport (~> 4.1.0)
      bundler (~> 1.1)
      erubis
      hooks (~> 0.3)
      i18n (~> 0.6.9)
      listen (>= 2.7.9, < 3.0)
      padrino-helpers (~> 0.12.1)
      rack (>= 1.4.5, < 2.0)
      rack-test (~> 0.6.2)
      thor (>= 0.15.2, < 2.0)
      tilt (~> 1.4.1, < 2.0)
    middleman-livereload (3.3.4)
      em-websocket (~> 0.5.1)
      middleman-core (~> 3.2)
      rack-livereload (~> 0.3.15)
    middleman-sprockets (3.3.9)
      middleman-core (~> 3.3)
      sprockets (~> 2.12.1)
      sprockets-helpers (~> 1.1.0)
      sprockets-sass (~> 1.2.0)
    minitest (5.4.1)
    multi_json (1.10.1)
    padrino-helpers (0.12.2)
      i18n (~> 0.6, >= 0.6.7)
      padrino-support (= 0.12.2)
      tilt (~> 1.4.1)
    padrino-support (0.12.2)
      activesupport (>= 3.1)
    rack (1.5.2)
    rack-livereload (0.3.15)
      rack
    rack-test (0.6.2)
      rack (>= 1.0)
    rb-fsevent (0.9.4)
    rb-inotify (0.9.5)
      ffi (>= 0.5.0)
    sass (3.3.14)
    sassy-maps (0.4.0)
      sass (~> 3.3)
    slim (2.0.3)
      temple (~> 0.6.6)
      tilt (>= 1.3.3, < 2.1)
    sprockets (2.12.1)
      hike (~> 1.2)
      multi_json (~> 1.0)
      rack (~> 1.0)
      tilt (~> 1.1, != 1.3.0)
    sprockets-helpers (1.1.0)
      sprockets (~> 2.0)
    sprockets-sass (1.2.0)
      sprockets (~> 2.0)
      tilt (~> 1.1)
    susy (2.1.3)
      sass (>= 3.3.0, < 3.5)
    temple (0.6.8)
    thor (0.19.1)
    thread_safe (0.3.4)
    tilt (1.4.1)
    timers (4.0.0)
      hitimes
    tzinfo (1.2.2)
      thread_safe (~> 0.1)
    tzinfo-data (1.2014.7)
      tzinfo (>= 1.0.0)
    uber (0.0.8)
    uglifier (2.5.3)
      execjs (>= 0.3.0)
      json (>= 1.8.0)
    wdm (0.1.0)

PLATFORMS
  x86-mingw32

DEPENDENCIES
  breakpoint
  coffee-script (~> 2.3.0)
  compass (~> 1.0.0.rc.0)
  middleman (= 3.3.4)
  middleman-livereload (~> 3.3.4)
  padrino-helpers (= 0.12.2)
  padrino-support (= 0.12.2)
  sass (~> 3.3.14)
  slim (~> 2.0.3)
  susy
  tzinfo-data
  wdm (~> 0.1.0)
@RobertFischer

This comment has been minimized.

RobertFischer commented Sep 23, 2014

I'm having the same issue on OS-X.

== The Middleman is loading
== Activating: sprockets
== Reading:  Local config
== Activating: automatic_image_sizes
== Activating: minify_javascript
== Activating: fix_perm
== Activating: alias
== Activating: livereload
Loaded extensions:
== Extension: sprockets
== Extension: automatic_image_sizes
== Extension: minify_javascript
== Extension: fix_perm
== Extension: alias
== Extension: livereload
== Extension: frontmatter
== File Change: build.sh
== File Change: config.rb
== File Change: server.sh
== File Change: source/css/all.css
== File Change: source/css/normalize.css
== File Change: source/img/background.png
== File Change: source/img/middleman.png
== File Change: source/index.html.haml
== File Change: source/js/all.js
== File Change: source/js/overlay.js
== File Change: source/layouts/layout.haml
== Rebuilding resource list
== LiveReload is waiting for a browser to connect
[2014-09-22 22:19:04] INFO  WEBrick 1.3.1
[2014-09-22 22:19:04] INFO  ruby 2.1.2 (2014-05-08) [x86_64-darwin13.0]
== The Middleman is standing watch at http://0.0.0.0:4567
== Inspect your site configuration at http://0.0.0.0:4567/__middleman/
[2014-09-22 22:19:04] INFO  WEBrick::HTTPServer#start: pid=6657 port=4567

Going to http://0.0.0.0:4567/__middleman/ (or any other page) hangs forever. Can't ctrl-C to kill the process (ctrl-c is recorded on the terminal but does nothing).

This works:

tmp$ middleman init demo
      create  demo/Gemfile
         run  bundle install from "."
Fetching gem metadata from http://rubygems.org/........
Fetching additional metadata from http://rubygems.org/..
Resolving dependencies...
Using i18n 0.6.11
Using json 1.8.1
Using minitest 5.4.1
Using thread_safe 0.3.4
Using tzinfo 1.2.2
Using activesupport 4.1.6
Using bundler 1.7.3
Using hitimes 1.2.2
Using timers 4.0.1
Using celluloid 0.16.0
Using chunky_png 1.3.1
Using coffee-script-source 1.8.0
Using execjs 2.2.1
Using coffee-script 2.3.0
Using multi_json 1.10.1
Using sass 3.4.5
Using compass-core 1.0.1
Using compass-import-once 1.0.5
Using rb-fsevent 0.9.4
Using ffi 1.9.3
Using rb-inotify 0.9.5
Using compass 1.0.1
Using eventmachine 1.0.3
Using http_parser.rb 0.6.0
Using em-websocket 0.5.1
Using erubis 2.7.0
Using tilt 1.4.1
Using haml 4.0.5
Using hike 1.2.3
Using uber 0.0.8
Using hooks 0.4.0
Using kramdown 1.4.2
Using listen 2.7.9
Using padrino-support 0.12.3
Using padrino-helpers 0.12.3
Using rack 1.5.2
Using rack-test 0.6.2
Using thor 0.19.1
Using middleman-core 3.3.6
Using sprockets 2.12.2
Using sprockets-helpers 1.1.0
Using sprockets-sass 1.2.0
Using middleman-sprockets 3.3.10
Using uglifier 2.5.3
Using middleman 3.3.6
Using rack-livereload 0.3.15
Using middleman-livereload 3.1.1
Your bundle is complete!
Use `bundle show [gemname]` to see where a bundled gem is installed.
      create  demo/.gitignore
      create  demo/config.rb
      create  demo/source/index.html.erb
      create  demo/source/layouts/layout.erb
      create  demo/source/stylesheets
      create  demo/source/stylesheets/all.css
      create  demo/source/stylesheets/normalize.css
      create  demo/source/javascripts
      create  demo/source/javascripts/all.js
      create  demo/source/images
      create  demo/source/images/background.png
      create  demo/source/images/middleman.png
tmp$ cd demo/
demo$ bundle install
Using i18n 0.6.11
Using json 1.8.1
Using minitest 5.4.1
Using thread_safe 0.3.4
Using tzinfo 1.2.2
Using activesupport 4.1.6
Using hitimes 1.2.2
Using timers 4.0.1
Using celluloid 0.16.0
Using chunky_png 1.3.1
Using coffee-script-source 1.8.0
Using execjs 2.2.1
Using coffee-script 2.3.0
Using multi_json 1.10.1
Using sass 3.4.5
Using compass-core 1.0.1
Using compass-import-once 1.0.5
Using rb-fsevent 0.9.4
Using ffi 1.9.3
Using rb-inotify 0.9.5
Using compass 1.0.1
Using eventmachine 1.0.3
Using http_parser.rb 0.6.0
Using em-websocket 0.5.1
Using erubis 2.7.0
Using tilt 1.4.1
Using haml 4.0.5
Using hike 1.2.3
Using uber 0.0.8
Using hooks 0.4.0
Using kramdown 1.4.2
Using listen 2.7.9
Using bundler 1.7.3
Using padrino-support 0.12.3
Using padrino-helpers 0.12.3
Using rack 1.5.2
Using rack-test 0.6.2
Using thor 0.19.1
Using middleman-core 3.3.6
Using sprockets 2.12.2
Using sprockets-helpers 1.1.0
Using sprockets-sass 1.2.0
Using middleman-sprockets 3.3.10
Using uglifier 2.5.3
Using middleman 3.3.6
Using rack-livereload 0.3.15
Using middleman-livereload 3.1.1
Your bundle is complete!
Use `bundle show [gemname]` to see where a bundled gem is installed.
demo$ bundle exec middleman server
== The Middleman is loading
== The Middleman is standing watch at http://0.0.0.0:4567
== Inspect your site configuration at http://0.0.0.0:4567/__middleman/

So clearly, it's something I'm doing. Going to slowly start adding things in until it breaks.

@tdreyno

This comment has been minimized.

Member

tdreyno commented Sep 23, 2014

Let me know what you track down. Whether it's one of our extensions or one the others.

@RobertFischer

This comment has been minimized.

RobertFischer commented Sep 23, 2014

I just added everything back in, and it worked.

Sob.

I'll dig into it some more.

@karland

This comment has been minimized.

karland commented Nov 2, 2014

I am having the same issue under Windows 7-64 and ruby 1.9.3p484 (2013-11-22) [i386-mingw32].
The middlemen server just stops without any message.

Gemfile 1 (not working)

# If you have OpenSSL installed, we recommend updating
# the following line to use "https"
source 'https://rubygems.org'

gem "middleman", "= 3.3.6"

gem "middleman-livereload", "~> 3.3.4"
gem "em-websocket", github: "igrigorik/em-websocket", :platforms => [:mswin, :mingw]

gem "wdm", "~> 0.1.0", :platforms => [:mswin, :mingw]

# gem 'compass', '~> 1.0.1'
# gem 'compass', '~> 1.0.0.alpha.20'

So I reverted to gem "middleman", "= 3.3.3". It installs without conflict but running bundle exec middlemen server results in the following error message:

C:/Ruby193/lib/ruby/gems/1.9.1/gems/middleman-core-3.3.3/lib/middleman-more/core_extensions/default_helpers.rb:33:in `initialize': uninitialized constant Padrino::Helpers::Breadcrumbs (NameError)
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/middleman-core-3.3.3/lib/middleman-core/extension.rb:44:in `new'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/middleman-core-3.3.3/lib/middleman-core/extension.rb:44:in `activate'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/middleman-core-3.3.3/lib/middleman-core/application.rb:239:in `<top (required)>'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/middleman-core-3.3.3/lib/middleman-core.rb:15:in `require'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/middleman-core-3.3.3/lib/middleman-core.rb:15:in `<top (required)>'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/middleman-3.3.3/lib/middleman.rb:1:in `require'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/middleman-3.3.3/lib/middleman.rb:1:in `<top (required)>'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/bundler-1.3.5/lib/bundler/runtime.rb:72:in `require'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/bundler-1.3.5/lib/bundler/runtime.rb:72:in `block (2 levels) in require'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/bundler-1.3.5/lib/bundler/runtime.rb:70:in `each'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/bundler-1.3.5/lib/bundler/runtime.rb:70:in `block in require'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/bundler-1.3.5/lib/bundler/runtime.rb:59:in `each'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/bundler-1.3.5/lib/bundler/runtime.rb:59:in `require'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/bundler-1.3.5/lib/bundler.rb:132:in `require'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/middleman-core-3.3.3/lib/middleman-core/load_paths.rb:37:in `setup_load_paths'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/middleman-core-3.3.3/bin/middleman:10:in `<top (required)>'
    from C:/Ruby193/bin/middleman:23:in `load'
    from C:/Ruby193/bin/middleman:23:in `<main>'

So I reverted the padrino-... to 0.12.2resulting in the following Gemfile (working!):

# If you have OpenSSL installed, we recommend updating
# the following line to use "https"
source 'https://rubygems.org'


gem "middleman", "= 3.3.3"

gem "middleman-livereload", "~> 3.3.4"
gem "em-websocket", github: "igrigorik/em-websocket", :platforms => [:mswin, :mingw]

gem "wdm", "~> 0.1.0", :platforms => [:mswin, :mingw]

# gem 'compass', '~> 1.0.1'
# gem 'compass', '~> 1.0.0.alpha.20'

gem "padrino-helpers", '= 0.12.2'
gem "padrino-support", '= 0.12.2'

I also need to use compass >= 1. Adding gem 'compass', '~> 1.0.1'to the above Gemfile results in the following conflict:

Bundler could not find compatible versions for gem "compass-import-once":
  In Gemfile:
    compass (~> 1.0.1) x86-mingw32 depends on
      compass-import-once (~> 1.0.5) x86-mingw32

    middleman (= 3.3.3) x86-mingw32 depends on
      compass-import-once (1.0.4)

The conflict is resolved by using gem 'compass', '~> 1.0.0.alpha.20'.

@pavelloz

This comment has been minimized.

pavelloz commented Nov 3, 2014

Hi,

I had the same issue (freezing middleman and not generating JS files from coffeescript properly) randomly. After everything you described and trial/error session finally i have working setup:

  1. I downgraded middleman to 3.3.3
  2. I set the pandrino gems to 0.12.2
  3. I removed therubyracer from my gemfile and left only oj

I dont have time to dive deep into the issue, but there is a possibility that exchanging therubyracer for oj might be a solution. The webrick hack for using only one thread didnt work for me either (solution proposed in #652 ). I hope this helps someone.

@karland

This comment has been minimized.

karland commented Nov 3, 2014

Using the Gemfile from above my system does not install therubyracer, so this cannot be the cause of the server stopping. therubyracer is also not installed when I use gem "middleman", "3.3.6".

@andradei

This comment has been minimized.

andradei commented Nov 5, 2014

Bumping this question. I have the same issue on OS X. It happens randomly. Restarting the computer fixes it.

@tdreyno

This comment has been minimized.

Member

tdreyno commented Nov 7, 2014

I don't use Windows, so someone more familiar with that platform will have to offer a suggestion.

@RobertFischer

This comment has been minimized.

RobertFischer commented Nov 10, 2014

This is also happening on OS-X. It's not every page load, but most...

@tdreyno

This comment has been minimized.

Member

tdreyno commented Nov 11, 2014

Is everyone on this issue using a JS-based template? Like CoffeeScript or Less?

@RobertFischer

This comment has been minimized.

RobertFischer commented Nov 11, 2014

I am not. I am using Sass and Haml, but no JS template.

@karland

This comment has been minimized.

karland commented Nov 11, 2014

I am also not using Coffeescript and Less.

In order to answer your question, I made several tests and I may have found the culprit. I had the following line im my config.rb:

activate :livereload, :apply_js_live => true, :host => "127.0.0.1"

If I remove the :apply_js_live => true, then all my issues seem to go away.

@karland

This comment has been minimized.

karland commented Nov 11, 2014

Well, I thought I had solved the puzzle, but then I went into a different development folder and there the problem was again. So I made more research and tried to narrow the issue down, but the issue is very strange. It is either a Sass issue or a path issue or a memory issue. I can't tell because I do not get a consistent error. But it certainly has to do with my .scss-Files.

I have a folder for my SASS-files, that I call scss. In the config.rb it reads

set :css_dir, 'scss'

Now, in my /scss folder I have subfolders (FontAwesome) and subfolders with subsubfolders (Foundation). It seems that there is a maximum number of .scss files or path entries allowed (the number is inconsistent??? I counted 55, 57 and 59). Whatever the number is, if it is surpassed the middleman server does not start. Or in other words. If the server does not start, I just need to reduce the .scss-files one after another and at some point the server starts.

There is also an observation, that irritates me: with a given set of files, I cannot get the server started. Then I just rename for instance normalize.css.scss into _normalize.css.scss and the server starts allright. So, this is why I think maybe it is a memory issue in conjunction with Sass.

@tdreyno

This comment has been minimized.

Member

tdreyno commented Nov 11, 2014

There's a really silly low number of files allowed open by a process in old OS X as well. Are any of you on Yosemite yet?

Is everyone using live reload? And/or Sass?

@RobertFischer

This comment has been minimized.

RobertFischer commented Nov 11, 2014

I am on Yosemite.
On Nov 11, 2014 6:00 PM, "Thomas Reynolds" notifications@github.com wrote:

There's a really silly low number of files allowed open by a process in
old OS X as well. Are any of you on Yosemite yet?

Is everyone using live reload? And/or Sass?


Reply to this email directly or view it on GitHub
#1367 (comment)
.

@karland

This comment has been minimized.

karland commented Nov 12, 2014

I am using middleman-livereload and Sass on Windows 7-64.

@rweng

This comment has been minimized.

rweng commented Nov 12, 2014

+1

@rweng

This comment has been minimized.

rweng commented Nov 12, 2014

Right now, it appears to me to be a threading problem. I don't understand the details, however, if I open http://localhost:4567/stylesheets/all.css (includes a lot of less files), and then http://localhost:4567 the page loads fine, also after reloads. However, when I restart the middleman server and visit http://localhost:4567 directly middleman server hangs.

@andradei

This comment has been minimized.

andradei commented Nov 13, 2014

On my case, if I have two tabs open on a Middleman project (one with a running server, and another where I do git commit/pull/push/etc.) it starts hanging. OS X 10.10.
It's possible it is a threading issue.

@skezo

This comment has been minimized.

skezo commented Nov 18, 2014

Having the same issue. Using ruby 1.9.3p551 (2014-11-13) on Windows 8 with middleman 3.3.7

Issue
Running middleman server outputs the below. It then hangs for about 5 seconds then exits. No error is thrown. Have tried with live-reload activated as well. Previously when this would happen, I could correct it by adding things like --verbose or deleting some of the locales files. However, for the last three or four weeks it now fails every time regardless of changes made.

Output

== File Change: locales/en.yml
== File Change: locales/ko.yml
== File Change: locales/zh-cn.yml
== File Change: locales/zh-tw.yml
== Locales: en, ko, zh-cn, zh-tw (Default false)
Loaded extensions:
== Extension: sprockets
== Extension: i18n
== Extension: zoltanify
== Extension: inline_css
== Extension: frontmatter

== File Change: ....

== Rebuilding resource list
[2014-11-18 12:39:53] INFO  WEBrick 1.3.1
[2014-11-18 12:39:53] INFO  ruby 1.9.3 (2014-11-13) [i386-mingw32]
@tdreyno

This comment has been minimized.

Member

tdreyno commented Nov 18, 2014

@skezo Can you make a repository available for me to test against?

@skezo

This comment has been minimized.

skezo commented Nov 18, 2014

@tdreyno

Sent you an invite to the repository we are using

@tdreyno

This comment has been minimized.

Member

tdreyno commented Nov 18, 2014

@skezo Taking a look now. All I need to do is bundle exec middleman server with Ruby 1.9.3?

@skezo

This comment has been minimized.

skezo commented Nov 18, 2014

@tdreyno Yes.

@tdreyno

This comment has been minimized.

Member

tdreyno commented Nov 18, 2014

@skezo Bah, it's currently impossible to install 1.9.3 on Mac OS X 10.10. Have you tried with a modern ruby?

@skezo

This comment has been minimized.

skezo commented Nov 18, 2014

@tdreyno Checking now on Ruby 2.0.0-p598

@skezo

This comment has been minimized.

skezo commented Nov 18, 2014

@tdreyno I am getting build errors when trying to install the middleman gem using Ruby 2.0.0-p598

@Arcovion

This comment has been minimized.

Member

Arcovion commented Nov 18, 2014

I am getting build errors when trying to install the middleman gem using Ruby 2.0.0-p598

Can you upload the error log?
May I test your project too? I'm on Windows 7 w/ Ruby 2.1.5 and can compare with Ubuntu 14 as well

@kisin

This comment has been minimized.

kisin commented Jun 20, 2015

sorry guys, my server still gets freeze everytime i run middleman server

for less assets, my gemfile using

gem "therubyracer"
gem "less"

any solutions?

@bhollis

This comment has been minimized.

Member

bhollis commented Jun 22, 2015

This is after updating middleman-autoprefixer?

-Ben

Sent from my phone

On Jun 20, 2015, at 3:51 AM, kisin notifications@github.com wrote:

sorry guys, my server still gets freeze everytime i run middleman server

for less assets, my gemfile using

gem "therubyracer"
gem "less"
any solutions?


Reply to this email directly or view it on GitHub.

@ashfurrow

This comment has been minimized.

ashfurrow commented Jun 27, 2015

I did a ps command after the server hanged three times. Once I had killed it with ctrl-c, and another time I had to kill -9 it since ctrl-c didn't work.

  PID TTY           TIME CMD
 1401 ttys000    0:00.54 -zsh
23335 ttys000    0:00.01 /Users/ash/.rvm/gems/ruby-2.1.2/gems/rb-fsevent-0.9.4/bin/fsevent_watch --latency 0.1 /U
23410 ttys000    0:00.01 /Users/ash/.rvm/gems/ruby-2.1.2/gems/rb-fsevent-0.9.4/bin/fsevent_watch --latency 0.1 /U
23418 ttys000    0:00.01 /Users/ash/.rvm/gems/ruby-2.1.2/gems/rb-fsevent-0.9.4/bin/fsevent_watch --latency 0.1 /U
23430 ttys002    0:00.24 -zsh

I was curious if the processes hanging out, the rb-fsevent ones, hand something to do with the problem, so I killed them but no luck. But then I also noticed that after hanging when ctrl-c doesn't quit middleman, if I try navigating to a different localhost port, the network request hangs there, too. Even though the other port never had a server connecting to it, it's acting in the same way: waiting forever for something.

What other processes does middleman create that might be hung after its parent process was killed? Maybe those are where the problem is?

@ashfurrow

This comment has been minimized.

ashfurrow commented Jun 27, 2015

Sinatra had a similar issue with Rack, which middleman uses, and fixed it by omitting 205 Reset Content from this line

-      elsif Array === body and not [204, 304].include?(status.to_i)
+      elsif Array === body and not [204, 205, 304].include?(status.to_i)

I notice that middleman is doing something awfully similar.

The title of their pull request is "Update Sinatra::Response#finish for Rack 1.5" and I am using Rack 1.5.2. I specified Rack 1.4.5 in my Gemfile, the earliest version of Rack middleman accepts, and my server is no longer hanging 🎉

I don't have extensive knowledge of middleman or HTTP caching status codes, but could updating the middleman implementation to no longer set a Content-Type header on 205 responses fix this?

@ashfurrow

This comment has been minimized.

ashfurrow commented Jun 27, 2015

Hmm, not that can't be since middleman is currently doing what Sinatra did to fix their problem.

In any case, using Rack 1.4.5 fixed my problem.

@bhollis

This comment has been minimized.

Member

bhollis commented Jul 21, 2015

@ashfurrow what happens if you use Rack 1.6.4?

@ashfurrow

This comment has been minimized.

ashfurrow commented Jul 21, 2015

I'll try that and report back.

@tdreyno tdreyno closed this Jul 22, 2015

@tdreyno tdreyno reopened this Jul 22, 2015

@ashfurrow

This comment has been minimized.

ashfurrow commented Jul 23, 2015

I've tried using that version and things hang immediately. Sometimes the HTML will be loaded by the browser, but the network response doesn't seem to terminate and the page isn't ever rendered.

@bhollis

This comment has been minimized.

Member

bhollis commented Jul 23, 2015

But no problems with the old rack?

-Ben

Sent from my phone

On Jul 22, 2015, at 8:04 PM, Ash Furrow notifications@github.com wrote:

I've tried using that version and things hang immediately. Sometimes the HTML will be loaded by the browser, but the network response doesn't seem to terminate and the page isn't ever rendered.


Reply to this email directly or view it on GitHub.

@ashfurrow

This comment has been minimized.

ashfurrow commented Jul 23, 2015

Correct. Switched back and it's fine again.

@leegeng

This comment has been minimized.

leegeng commented Aug 4, 2015

I had same problem.
I solved this problem by turning off minify javascript.

@camskene

This comment has been minimized.

camskene commented Aug 4, 2015

I removed gems therubyracer and oj and didn't hang. If I add them back it hangs...

@bhollis

This comment has been minimized.

Member

bhollis commented Aug 4, 2015

My guess is that there are multiple problems. At least one seems to be in the JavaScript execution stuff.

@leegeng

This comment has been minimized.

leegeng commented Aug 4, 2015

@camskene 👍 Thanks

oubiwann added a commit to USGS-EROS/lcmap-client-docs that referenced this issue Nov 28, 2015

@shuyangli

This comment has been minimized.

shuyangli commented Dec 6, 2015

I'm running into the same issue with no live reloading and no CoffeeScript (I'm only using LESS). HTML is always properly loaded, and some css/js files aren't served. I also tried changing the JS runtime for ExecJS to both Node and JavaScriptCore with no luck.

I'm on OS X 10.11.1, ruby 2.2.1p85 for darwin, Middleman 3.3.12

My config.rb is as vanilla as it gets:

activate :directory_indexes
set :css_dir, 'stylesheets'
set :js_dir, 'javascripts'
set :images_dir, 'images'

Maybe this could help triage the issue? I can't reproduce this consistently, but it happens about 2 out of 3 times.

@tdreyno

This comment has been minimized.

Member

tdreyno commented Dec 7, 2015

It's definitely a race condition in execjs :(

We may need to build our own ExecJS extension which forces things to run serially. PRs welcome

@vvasabi

This comment has been minimized.

vvasabi commented Dec 7, 2015

This issue happens to me sporadically, too, to a number of different Middleman projects. One way to reproduce it more reliably is to have 2 browser tabs load the Middleman site at the same time after middleman server starts and before a page is rendered for the first time. Or, before Middleman can finish rendering a page for the first time, quickly hit refresh. This probably explains why, when autoreload is on, this issue can be seen more often. Autoreload can cause several browser tabs to try to load a Middleman page at once.

When Middleman hangs, I have to do pkill -9 middleman, like others have suggested above. (I had to write my own process manager to kill middleman more efficiently without having to enter that command all the time.)

One way to reliably work around this issue that I have found is to:

  1. close all browser tabs with a Middleman page
  2. start middleman server
  3. load http://host/__middleman/sitemap/ first
  4. finally open a page of the project

From the look of the problem, it does appear to be an issue with concurrency. Trying to initialize multiple times causes a deadlock to occur. I am trying the EXECJS_RUNTIME = Node solution now to see if it helps...

Edit: I have seen this issue on Middleman 3.3.x and 3.4.x. I have not upgraded to Middleman 4, yet.

@tdreyno

This comment has been minimized.

Member

tdreyno commented Dec 7, 2015

@vvasabi Removing Less should confirm that it is a JS runtime issue.

@snowmoonsoftware

This comment has been minimized.

snowmoonsoftware commented Dec 29, 2015

Using EXECJS_RUNTIME=Node bundle exec middleman solves the hang for me (OS/X)

leegeng pushed a commit to leegeng/slate that referenced this issue Jan 29, 2016

@brycepj

This comment has been minimized.

brycepj commented Oct 6, 2016

@vvasabi I'm seeing it on v4.1, so there's that. https://gitlab.com/gitlab-com/www-gitlab-com/issues/842

@kahboom

This comment has been minimized.

kahboom commented Mar 23, 2017

Still having this issue on macOS with v4.1.10; doesn't always happen - depends on the theme and configuration settings.

@mbools

This comment has been minimized.

mbools commented May 22, 2017

FWIW I was having this problem (middleman 4.2.1). Oddly only seemed to manifest reliably when linking more than one CSS (one pure css, the other a large scss). When loading a single CSS (generated from the large scss) the problem only seemed to occur when reloading the page (and then only intermittently).

Switching from rubyracer to nodejs seems to have resolved the problem.

@meowsus

This comment has been minimized.

Contributor

meowsus commented Oct 12, 2018

In Ubuntu 18.04 I get

#                                                 
# Fatal error in CALL_AND_RETRY_2                            
# Allocation failed - process out of memory        
#                                                                                                                                                                                                                  
                                                  
[1]    19886 trace trap (core dumped)  bundle exec middleman

This happens fairly regularly, when refreshing the page to make sure my changes have worked. This morning, though I got this:

#                                                           
# Fatal error in ../src/objects.h, line 786                      
# CHECK(!IsFailure()) failed                         
#                                                                                                                                                                                                                  

==== C stack trace ===============================

 1: V8_Fatal
 2: v8::internal::ScavengingVisitor<(v8::internal::MarksHandling)1, (v8::internal::LoggingAndProfiling)1>::EvacuateFixedArray(v8::internal::Map*, v8::internal::HeapObject**, v8::internal::HeapObject*)
 3: v8::internal::Heap::IterateAndMarkPointersToFromSpace(unsigned char*, unsigned char*, void (*)(v8::internal::HeapObject**, v8::internal::HeapObject*))
 4: v8::internal::Heap::DoScavenge(v8::internal::ObjectVisitor*, unsigned char*)
 5: v8::internal::Heap::Scavenge()
 6: v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::internal::GCTracer*)
 7: v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollector, char const*, char const*)
 8: v8::internal::Runtime::PerformGC(v8::internal::Object*)
 9: ??

==== JS stack trace =========================================

Security context: 0x262d041f5039 <JS Object>#0#
    1: StringSplitOnRegExp(aka StringSplitOnRegExp) [native string.js:652] (this=0x3078b004121 <undefined>,a=0x2abcfaf04151 <Very long string[13937]>#1#,b=0x20a88b3b1a19 <JS RegExp>#2#,c=0x2a797201e0b9 <Number:
4294967295>,d=13937)
    2: split(aka split) [native string.js:609] (this=0x2abcfaf04151 <Very long string[13937]>#1#,a=0x20a88b3b1a19 <JS RegExp>#2#,b=0x2a797201e0b9 <Number: 4294967295>)
    3: arguments adaptor frame: 1->2
    4: tokenizerFn [/home/meowsus/.rbenv/versions/2.4.4/lib/ruby/gems/2.4.0/gems/middleman-search-0.10.0/vendor/assets/javascripts/lunr.min.js:~7] (this=0x20a88b3b6f59 <JS Object>#3#,e=0x2abcfaf0ae89 <Very long
string[13940]>#4#)
    5: /* anonymous */ [/home/meowsus/.rbenv/versions/2.4.4/lib/ruby/gems/2.4.0/gems/middleman-search-0.10.0/vendor/assets/javascripts/lunr.min.js:7] (this=0x20a88b3b6f59 <JS Object>#3#,t=0x20a88b3b8399 <an Obje
ct>#5#)
    6: arguments adaptor frame: 3->1
    7: forEach [native array.js:1124] (this=0x20a88b3b7019 <JS Array[2]>#6#,a=0x2abcfaf11b89 <JS Function>#7#,b=0x20a88b3b6f59 <JS Object>#3#)
    8: add [/home/meowsus/.rbenv/versions/2.4.4/lib/ruby/gems/2.4.0/gems/middleman-search-0.10.0/vendor/assets/javascripts/lunr.min.js:~7] (this=0x20a88b3b6f59 <JS Object>#3#,e=0x2abcfaf11c19 <an Object>#8#,n=0x
3078b004121 <undefined>)
    9: arguments adaptor frame: 1->2

==== Details ================================================

[1]: StringSplitOnRegExp(aka StringSplitOnRegExp) [native string.js:652] (this=0x3078b004121 <undefined>,a=0x2abcfaf04151 <Very long string[13937]>#1#,b=0x20a88b3b1a19 <JS RegExp>#2#,c=0x2a797201e0b9 <Number: 42
94967295>,d=13937) {
  // stack-allocated locals
  var g = 5476
  var h = 5476
  var i = 5485
  var j = 0x2abcfaf04131 <JS Array[848]>#9#
  var k = 0x262d041e70f9 <JS Array[10]>#10#
  var l = 5486
  var m = 5
  var n = 5
  var o = 0x3078b004121 <undefined>
  var q = 0x3078b004121 <undefined>
  // expression stack (top to bottom)
  [11] : 0x2abcfaf04101 <String[9]: practical>
  [10] : 0x2abcfaf04131 <JS Array[848]>#9#
--------- s o u r c e   c o d e ---------
function StringSplitOnRegExp(a,b,c,d){?%_Log('regexp','regexp-split,%0S,%1r',[a,b]);??if(d===0){?if(DoRegExpExec(b,a,0,0)!=null){?return[];?}?return[a];?}??var g=0;?var h=0;?var i=0;?var j=[];??outer_loop:?while
(true){??if(h===d){?j.push(SubString(a,g,d));?break;?}??var k=DoRegExpExec(b,a,h);?if(k==null||d===(i=k[3])){?j.push(...

-----------------------------------------
}

[2]: split(aka split) [native string.js:609] (this=0x2abcfaf04151 <Very long string[13937]>#1#,a=0x20a88b3b1a19 <JS RegExp>#2#,b=0x2a797201e0b9 <Number: 4294967295>) {
  // stack-allocated locals
  var c = 0x2abcfaf04151 <Very long string[13937]>#1#
  var d = 13937
  var g = 0x3078b004121 <undefined>
  var h = 0x3078b004121 <undefined>
  // expression stack (top to bottom)
  [08] : 13937
  [07] : 0x2a797201e0b9 <Number: 4294967295>
  [06] : 0x20a88b3b1a19 <JS RegExp>#2#
  [05] : 0x2abcfaf04151 <Very long string[13937]>#1#
  [04] : 0x3078b004121 <undefined>
--------- s o u r c e   c o d e ---------
function split(a,b){?if((this==null)&&!(%_IsUndetectableObject(this))){?throw MakeTypeError("called_on_null_or_undefined",?["String.prototype.split"]);?}?var c=((typeof(%IS_VAR(this))==='string')?this:NonStringT
oString(this));?b=((typeof(b)==='undefined'))?0xffffffff:(b>>>0);????if((typeof(a)==='undefined')){?ret...

-----------------------------------------
}

[3]: arguments adaptor frame: 1->2 {
  // actual arguments
  [00] : 0x20a88b3b1a19 <JS RegExp>#2#
}

[4]: tokenizerFn [/home/meowsus/.rbenv/versions/2.4.4/lib/ruby/gems/2.4.0/gems/middleman-search-0.10.0/vendor/assets/javascripts/lunr.min.js:~7] (this=0x20a88b3b6f59 <JS Object>#3#,e=0x2abcfaf0ae89 <Very long st
ring[13940]>#4#) {
// optimized frame
}
[5]: /* anonymous */ [/home/meowsus/.rbenv/versions/2.4.4/lib/ruby/gems/2.4.0/gems/middleman-search-0.10.0/vendor/assets/javascripts/lunr.min.js:7] (this=0x20a88b3b6f59 <JS Object>#3#,t=0x20a88b3b8399 <an Object
>#5#) {
  // stack-allocated locals
  var n = 0x3078b004121 <undefined>
  var o = 0x3078b004121 <undefined>
  var s = 0x3078b004121 <undefined>
  // expression stack (top to bottom)
  [05] : 0x2abcfaf0ae89 <Very long string[13940]>#4#
  [04] : 0x20a88b3b6f59 <JS Object>#3#
  [03] : 0x20a88b3b7079 <JS Object>#11#
--------- s o u r c e   c o d e ---------
function (t){var n=this.pipeline.run(this.tokenizerFn(e[t.name]));i[t.name]=n;for(var o=0;o<n.length;o++){var s=n[o];r.add(s),this.corpusTokens.add(s)}}
-----------------------------------------
}

[6]: arguments adaptor frame: 3->1 {
  // actual arguments
  [00] : 0x20a88b3b8399 <an Object>#5#
  [01] : 1  // not passed to callee
  [02] : 0x20a88b3b7019 <JS Array[2]>#6#  // not passed to callee
}

[7]: forEach [native array.js:1124] (this=0x20a88b3b7019 <JS Array[2]>#6#,a=0x2abcfaf11b89 <JS Function>#7#,b=0x20a88b3b6f59 <JS Object>#3#) {
  // stack-allocated locals
  var c = 0x20a88b3b7019 <JS Array[2]>#6#
  var d = 2
  var g = 1
  var h = 0x20a88b3b8399 <an Object>#5#
  // expression stack (top to bottom)
  [07] : 0x20a88b3b7019 <JS Array[2]>#6#
  [06] : 1
  [05] : 0x20a88b3b8399 <an Object>#5#
  [04] : 0x20a88b3b6f59 <JS Object>#3#
--------- s o u r c e   c o d e ---------
function forEach(a,b){?if((this==null)&&!(%_IsUndetectableObject(this))){?throw MakeTypeError("called_on_null_or_undefined",?["Array.prototype.forEach"]);?}????var c=ToObject(this);?var d=(c.length>>>0);??if(!(%
_ClassOf(a)==='Function')){?throw MakeTypeError('called_non_callable',[a]);?}?if((b==null)){?b=%GetDefaul...

-----------------------------------------
}

[8]: add [/home/meowsus/.rbenv/versions/2.4.4/lib/ruby/gems/2.4.0/gems/middleman-search-0.10.0/vendor/assets/javascripts/lunr.min.js:~7] (this=0x20a88b3b6f59 <JS Object>#3#,e=0x2abcfaf11c19 <an Object>#8#,n=0x30
78b004121 <undefined>) {
// optimized frame
}
[9]: arguments adaptor frame: 1->2 {
  // actual arguments
  [00] : 0x2abcfaf11c19 <an Object>#8#
}

==== Key         ============================================

 #0# 0x262d041f5039: 0x262d041f5039 <JS Object>
 #1# 0x2abcfaf04151: 0x2abcfaf04151 <Very long string[13937]>
 #2# 0x20a88b3b1a19: 0x20a88b3b1a19 <JS RegExp>
            source: 0x4684551bfa9 <String[7]: [\s\-]+>
            global: 0x3078b004181 <false>
        ignoreCase: 0x3078b004181 <false>
         multiline: 0x3078b004181 <false>
         lastIndex: 0
 #3# 0x20a88b3b6f59: 0x20a88b3b6f59 <JS Object>
           _fields: 0x20a88b3b7019 <JS Array[2]>#6#
              _ref: 0x38fe62cb93b1 <String[2]: id>
          pipeline: 0x20a88b3b7079 <JS Object>#11#
     documentStore: 0x20a88b3b7191 <JS Object>#12#
        tokenStore: 0x20a88b3b72d9 <JS Object>#13#
      corpusTokens: 0x20a88b3b74d1 <JS Object>#14#
      eventEmitter: 0x20a88b3b7629 <JS Object>#15#
         _idfCache: 0x3214ddc68a39 <an Object>#16#
                  : 0x20a88b3b7d01 <FixedArray[11]>#17#
 #4# 0x2abcfaf0ae89: 0x2abcfaf0ae89 <Very long string[13940]>
 #5# 0x20a88b3b8399: 0x20a88b3b8399 <an Object>
              name: 0x2a797201dae9 <String[7]: content>
             boost: 50
 #6# 0x20a88b3b7019: 0x20a88b3b7019 <JS Array[2]>
                 0: 0x20a88b3b8209 <an Object>#18#
                 1: 0x20a88b3b8399 <an Object>#5#
 #7# 0x2abcfaf11b89: 0x2abcfaf11b89 <JS Function>
 #8# 0x2abcfaf11c19: 0x2abcfaf11c19 <an Object>
                  : 0x3214ddc4a141 <FixedArray[11]>#19#
             title: 0x2abcfaf11c51 <String[28]: Prerequisites & Dependencies>
           content: 0x2abcfaf0ae89 <Very long string[13940]>#4#
                id: 337
 #9# 0x2abcfaf04131: 0x2abcfaf04131 <JS Array[848]>
                 0: 0x3214ddc4f211 <String[13]: prerequisites>
                 1: 0x1a2eeb104ec1 <String[1]: &>
                 2: 0x3953179a40e1 <String[12]: dependencies>
                 3: 0x3953179a4111 <String[3]: the>
                 4: 0x3953179a4131 <String[8]: workarea>
                 5: 0x3953179a4159 <String[8]: platform>
                 6: 0x3953179a4181 <String[6]: stands>
                 7: 0x4684551d8e1 <String[2]: on>
                 8: 0x4684551d901 <String[3]: the>
                 9: 0x4684551d921 <String[9]: shoulders>
                  ...
#10# 0x262d041e70f9: 0x262d041e70f9 <JS Array[10]>
                 0: 2
                 1: 0x2abcfaf04151 <Very long string[13937]>#1#
                 2: 0x2abcfaf04151 <Very long string[13937]>#1#
                 3: 5485
                 4: 5486
                 5: 0
                 6: 1
                 7: 6
                 8: 10
                  ...
 #11# 0x20a88b3b7079: 0x20a88b3b7079 <JS Object>
            _stack: 0x20a88b3b70f9 <JS Array[3]>#20#
 #12# 0x20a88b3b7191: 0x20a88b3b7191 <JS Object>
             store: 0x20a88b3b7211 <an Object>#21#
            length: 202
 #13# 0x20a88b3b72d9: 0x20a88b3b72d9 <JS Object>
              root: 0x20a88b3b73e9 <an Object>#22#
            length: 33718
 #14# 0x20a88b3b74d1: 0x20a88b3b74d1 <JS Object>
            length: 9005
          elements: 0x20a88b3b7579 <JS Array[9005]>#23#
 #15# 0x20a88b3b7629: 0x20a88b3b7629 <JS Object>
            events: 0x20a88b3b76a1 <an Object>#24#
 #16# 0x3214ddc68a39: 0x3214ddc68a39 <an Object>
 #17# 0x20a88b3b7d01: 0x20a88b3b7d01 <FixedArray[11]>
                 0: 2
                 1: 0
                 2: 4
                 3: 0x3078b004121 <undefined>
                 4: 0x3078b004121 <undefined>
                 5: 0x3078b004121 <undefined>
                 6: 0x3078b004121 <undefined>
                 7: 0x2a797201cd51 <String[11]: rr::Backref>
                 8: 0x20a88b3b7ce1 <JS Object>#25#
                 9: 0x2a797200a529 <String[16]: v8::IdentityHash>
                  ...
 #18# 0x20a88b3b8209: 0x20a88b3b8209 <an Object>
              name: 0x2a797201da51 <String[5]: title>
             boost: 100
 #19# 0x3214ddc4a141: 0x3214ddc4a141 <FixedArray[11]>
                 0: 2
                 1: 0
                 2: 4
                 3: 0x3078b004121 <undefined>
                 4: 0x3078b004121 <undefined>
                 5: 0x3078b004121 <undefined>
                 6: 0x3078b004121 <undefined>
                 7: 0x2a797201cd51 <String[11]: rr::Backref>
                 8: 0x2abcfaf11c31 <JS Object>#26#
                 9: 0x2a797200a529 <String[16]: v8::IdentityHash>
                  ...
#20# 0x20a88b3b70f9: 0x20a88b3b70f9 <JS Array[3]>
                 0: 0x262d041fa4e1 <JS Function>#27#
                 1: 0x20a88b3b61c9 <JS Function>#28#
                 2: 0x20a88b3b4579 <JS Function>#29#
 #21# 0x20a88b3b7211: 0x20a88b3b7211 <an Object>
 #22# 0x20a88b3b73e9: 0x20a88b3b73e9 <an Object>
 #23# 0x20a88b3b7579: 0x20a88b3b7579 <JS Array[9005]>
                 0: 0x264c1d329e11 <String[1]: 0>
                 1: 0x2c3b6e1e5b1 <String[4]: 0.00>
                 2: 0x3c89f9435561 <String[7]: 0.000gb>
                 3: 0x3c89f94355d1 <String[7]: 0.003gb>
                 4: 0x3c89f9435671 <String[7]: 0.008gb>
                 5: 0x3c89f94e93c1 <String[4]: 0.05>
                 6: 0x3c89f9435829 <String[6]: 0.1.10>
                 7: 0x3c89f94358a9 <String[6]: 0.1.11>
                 8: 0x3c89f9435a49 <String[6]: 0.1.12>
                 9: 0x3c89f9434f99 <String[6]: 0.1.13>
                  ...
 #24# 0x20a88b3b76a1: 0x20a88b3b76a1 <an Object>
               add: 0x20a88b3b7951 <JS Array[1]>#30#
            remove: 0x20a88b3b7a31 <JS Array[1]>#31#
            update: 0x20a88b3b7b09 <JS Array[1]>#32#
 #25# 0x20a88b3b7ce1: 0x20a88b3b7ce1 <JS Object>
 #26# 0x2abcfaf11c31: 0x2abcfaf11c31 <JS Object>
 #27# 0x262d041fa4e1: 0x262d041fa4e1 <JS Function>
             label: 0x2a79720194c1 <String[7]: trimmer>
 #28# 0x20a88b3b61c9: 0x20a88b3b61c9 <JS Function>
             label: 0x2a79720194e1 <String[14]: stopWordFilter>
 #29# 0x20a88b3b4579: 0x20a88b3b4579 <JS Function>
             label: 0x2a7972019509 <String[7]: stemmer>
 #30# 0x20a88b3b7951: 0x20a88b3b7951 <JS Array[1]>
                 0: 0x20a88b3b7841 <JS Function>#33#
 #31# 0x20a88b3b7a31: 0x20a88b3b7a31 <JS Array[1]>
                 0: 0x20a88b3b7841 <JS Function>#33#
 #32# 0x20a88b3b7b09: 0x20a88b3b7b09 <JS Array[1]>
                 0: 0x20a88b3b7841 <JS Function>#33#
 #33# 0x20a88b3b7841: 0x20a88b3b7841 <JS Function>
            length: 0
=====================

[1]    15785 trace trap (core dumped)  bundle exec middleman

Using this Gemfile:

source 'https://rubygems.org'

gem 'redcarpet'
gem 'middleman', '~> 4.2'
gem 'middleman-autoprefixer', '~> 2.9'
gem 'middleman-search', '~> 0.10.0'
gem 'middleman-navtree', '~> 0.1.10'
gem 'puma'

And Gemfile.lock:

GEM
  remote: https://rubygems.org/
  specs:
    activesupport (5.0.7)
      concurrent-ruby (~> 1.0, >= 1.0.2)
      i18n (>= 0.7, < 2)
      minitest (~> 5.1)
      tzinfo (~> 1.1)
    addressable (2.5.2)
      public_suffix (>= 2.0.2, < 4.0)
    autoprefixer-rails (8.6.5)
      execjs
    backports (3.11.4)
    coffee-script (2.4.1)
      coffee-script-source
      execjs
    coffee-script-source (1.12.2)
    compass-import-once (1.0.5)
      sass (>= 3.2, < 3.5)
    concurrent-ruby (1.0.5)
    contracts (0.13.0)
    dotenv (2.5.0)
    erubis (2.7.0)
    execjs (2.7.0)
    fast_blank (1.0.0)
    fastimage (2.1.4)
    ffi (1.9.25)
    haml (5.0.4)
      temple (>= 0.8.0)
      tilt
    hamster (3.0.0)
      concurrent-ruby (~> 1.0)
    hashie (3.6.0)
    i18n (0.7.0)
    kramdown (1.17.0)
    libv8 (3.16.14.19)
    listen (3.0.8)
      rb-fsevent (~> 0.9, >= 0.9.4)
      rb-inotify (~> 0.9, >= 0.9.7)
    memoist (0.16.0)
    middleman (4.2.1)
      coffee-script (~> 2.2)
      compass-import-once (= 1.0.5)
      haml (>= 4.0.5)
      kramdown (~> 1.2)
      middleman-cli (= 4.2.1)
      middleman-core (= 4.2.1)
      sass (>= 3.4.0, < 4.0)
    middleman-autoprefixer (2.9.0)
      autoprefixer-rails (~> 8.0)
      middleman-core (>= 3.3.3)
    middleman-cli (4.2.1)
      thor (>= 0.17.0, < 2.0)
    middleman-core (4.2.1)
      activesupport (>= 4.2, < 5.1)
      addressable (~> 2.3)
      backports (~> 3.6)
      bundler (~> 1.1)
      contracts (~> 0.13.0)
      dotenv
      erubis
      execjs (~> 2.0)
      fast_blank
      fastimage (~> 2.0)
      hamster (~> 3.0)
      hashie (~> 3.4)
      i18n (~> 0.7.0)
      listen (~> 3.0.0)
      memoist (~> 0.14)
      padrino-helpers (~> 0.13.0)
      parallel
      rack (>= 1.4.5, < 3)
      sass (>= 3.4)
      servolux
      tilt (~> 2.0)
      uglifier (~> 3.0)
    middleman-navtree (0.1.11)
      middleman-core (>= 3.3)
      titleize (~> 1.3)
    middleman-search (0.10.0)
      middleman-core (>= 3.2)
      nokogiri (~> 1.6)
      therubyracer (~> 0.12.2)
    mini_portile2 (2.3.0)
    minitest (5.11.3)
    nokogiri (1.8.5)
      mini_portile2 (~> 2.3.0)
    padrino-helpers (0.13.3.4)
      i18n (~> 0.6, >= 0.6.7)
      padrino-support (= 0.13.3.4)
      tilt (>= 1.4.1, < 3)
    padrino-support (0.13.3.4)
      activesupport (>= 3.1)
    parallel (1.12.1)
    public_suffix (3.0.3)
    puma (3.12.0)
    rack (2.0.5)
    rb-fsevent (0.10.3)
    rb-inotify (0.9.10)
      ffi (>= 0.5.0, < 2)
    redcarpet (3.4.0)
    ref (2.0.0)
    sass (3.4.25)
    servolux (0.13.0)
    temple (0.8.0)
    therubyracer (0.12.3)
      libv8 (~> 3.16.14.15)
      ref
    thor (0.20.0)
    thread_safe (0.3.6)
    tilt (2.0.8)
    titleize (1.4.1)
    tzinfo (1.2.5)
      thread_safe (~> 0.1)
    uglifier (3.2.0)
      execjs (>= 0.3.0, < 3)

PLATFORMS
  ruby

DEPENDENCIES
  middleman (~> 4.2)
  middleman-autoprefixer (~> 2.9)
  middleman-navtree (~> 0.1.10)
  middleman-search (~> 0.10.0)
  puma
  redcarpet

BUNDLED WITH
   1.16.4

Using Ruby 2.4.4

@tdreyno

This comment has been minimized.

Member

tdreyno commented Oct 13, 2018

@meowsus Looks like all of those stack traces point at middleman-search (https://github.com/manastech/middleman-search), which is a 3rd party plugin not created by the core project. Looks like it's trying to communicate between Ruby and Javascript and failing. Unfortunately, it also looks like that project is pretty dead, so it'll be hard to get support from them.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment