Pete Hamilton

Stubborn Jekyll Deployments

Update:

Seems it may have been a problem with Filey-Diff, I just did a bundle update (can’t work out how I did) and it bumped the version significantly.

Old grumpy post below for posterity…


I use the s3_website gem to deploy this blog.

However, for some reason, the occasional file (not the same one every time I don’t think) causes either the filey-diff or AWS gem to bomb out with the below:

Deploying _site/* to pete-hamilton.co.uk
/Users/MY_USER/.rbenv/versions/1.9.3-p374/lib/ruby/1.9.1/openssl/buffering.rb:174:in `sysread_nonblock': end of file reached (EOFError)
  from /Users/MY_USER/.rbenv/versions/1.9.3-p374/lib/ruby/1.9.1/openssl/buffering.rb:174:in `read_nonblock'
  from /Users/MY_USER/.rbenv/versions/1.9.3-p374/lib/ruby/1.9.1/net/protocol.rb:141:in `rbuf_fill'

  ...

  etc

  ...

  from /Users/MY_USER/Projects/blog/.bundle/gems/aws-sdk-1.8.5/lib/aws/s3/s3_object.rb:313:in `last_modified'
  from /Users/MY_USER/Projects/blog/.bundle/gems/filey-diff-1.2.1/lib/filey-diff/data-sources/aws_sdk_s3.rb:61:in `last_modified_and_md5'
  from /Users/MY_USER/Projects/blog/.bundle/gems/filey-diff-1.2.1/lib/filey-diff/data-sources/aws_sdk_s3.rb:48:in `map_s3_object_to_filey'
  from /Users/MY_USER/Projects/blog/.bundle/gems/filey-diff-1.2.1/lib/filey-diff/data-sources/aws_sdk_s3.rb:13:in `block in do_internal_load'
  from /Users/MY_USER/Projects/blog/.bundle/gems/filey-diff-1.2.1/lib/filey-diff/data-sources/aws_sdk_s3.rb:27:in `call'
  from /Users/MY_USER/Projects/blog/.bundle/gems/filey-diff-1.2.1/lib/filey-diff/data-sources/aws_sdk_s3.rb:27:in `block (2 levels) in in_parallel_or_sequentially'

I did look into it, but couldn’t see any good reason for the bomb-out. I reinstalled all gems, tried specifying versions manually, scoured google and stack overflow but to no avail.

What I did in the end was trade beauty for beligerence. I wrote a simple deploy.sh file which just does the following:

until s3_website push; do :; done

I’d say I’m sorry for being such an awful human being, but I’m not. Sometimes getting the job done is better than getting the job done perfectly…

If you have had this and worked out how to fix it, I’ll award you all my internet points, please leave a comment below!