ngx_openresty error?


#1

I’m going through the tutorial
https://learnchef.opscode.com/quickstart/converge/ on the
learnchef.opscode site and have run into a problem.

I succeeded in bootstrapping the node the first time. Then I added some
more cookbooks (the ones I actually need) using berkshelf.
Now when I try to bootstrap the node I get errors. In the example below
I’m just using the run-list from the tutorial that I started with.
If I log into the node and run “chef-client -l debug” the output seems
to suggest a problem with ngx_openresty cookbook. (See below for that info.)

ngx_openresty must be required by one of my cookbooks (nginx,
application_nginx?), and there appears to be an error in the version
string, due to trailing ‘.’

‘0.9.’ does not match ‘x.y.z’ or 'x.y’
So, that’s one issue.

But, what I /really/ don’t understand here is why it’s trying to load
ngx_openresty when I’m just using the tutorial cookbooks: [“apt”,
“aliases”, “apache2”, “networking_basic”]
Oh. Wait, that must be an error coming from the opscode server.

Keep in mind that I’m new to Chef, so there’s probably something obvious
I’m just not getting.

knife bootstrap localhost \

–ssh-user vagrant
–ssh-password vagrant
–ssh-port 2222
–run-list
"recipe[apt],recipe[aliases],recipe[apache2],recipe[networking_basic]"
–sudo
Bootstrapping Chef on localhost
localhost Starting Chef Client, version 11.4.4
localhost
localhost resolving cookbooks for run list: [“apt”, “aliases”,
“apache2”, “networking_basic”]
localhost
localhost [2013-05-27T15:56:26+00:00] ERROR: Server returned error for
https://api.opscode.com/organizations/bti/environments/_default/cookbook_versions,
retrying 1/5 in 4s
localhost
localhost [2013-05-27T15:56:30+00:00] ERROR: Server returned error for
https://api.opscode.com/organizations/bti/environments/_default/cookbook_versions,
retrying 2/5 in 8s
localhost
localhost [2013-05-27T15:56:39+00:00] ERROR: Server returned error for
https://api.opscode.com/organizations/bti/environments/_default/cookbook_versions,
retrying 3/5 in 9s
localhost
localhost [2013-05-27T15:56:48+00:00] ERROR: Server returned error for
https://api.opscode.com/organizations/bti/environments/_default/cookbook_versions,
retrying 4/5 in 27s
localhost
localhost [2013-05-27T15:57:17+00:00] ERROR: Server returned error for
https://api.opscode.com/organizations/bti/environments/_default/cookbook_versions,
retrying 5/5 in 41s
localhost
localhost
localhost
localhost
================================================================================
localhost
localhost Error Resolving Cookbooks for Run List:
localhost
localhost
================================================================================
localhost
localhost
localhost
localhost
localhost Unknown Server Error:
localhost
localhost ---------------------
localhost
localhost The server had a fatal error attempting to load the node data.
localhost
localhost
localhost
localhost
localhost
localhost Server Response:
localhost ----------------
localhost ‘0.9.’ does not match ‘x.y.z’ or 'x.y’
localhost
localhost
localhost
localhost [2013-05-27T15:57:58+00:00] ERROR: Running exception handlers
localhost
localhost [2013-05-27T15:57:58+00:00] FATAL: Saving node information
to /var/chef/cache/failed-run-data.json
localhost
localhost [2013-05-27T15:57:58+00:00] ERROR: Exception handlers complete
localhost
localhost Chef Client failed. 0 resources updated
localhost
localhost [2013-05-27T15:57:58+00:00] FATAL: Stacktrace dumped to
/var/chef/cache/chef-stacktrace.out
localhost
localhost [2013-05-27T15:57:58+00:00] FATAL: Net::HTTPFatalError: 500
"Internal Server Error"
localhost

On node, running chef-client -l debug

[2013-05-27T16:02:16+00:00] ERROR: Server returned error for
https://api.opscode.com/organizations/bti/environments/_default/cookbook_versions,
retrying 5/5 in 36s
[2013-05-27T16:02:54+00:00] DEBUG: ---- HTTP Status and Header Data: ----
[2013-05-27T16:02:54+00:00] DEBUG: HTTP 1.1 500 Internal Server Error
[2013-05-27T16:02:54+00:00] DEBUG: server: ngx_openresty
[2013-05-27T16:02:54+00:00] DEBUG: date: Mon, 27 May 2013 16:02:54 GMT
[2013-05-27T16:02:54+00:00] DEBUG: content-type: application/json;
charset=utf-8
[2013-05-27T16:02:54+00:00] DEBUG: transfer-encoding: chunked
[2013-05-27T16:02:54+00:00] DEBUG: connection: close
[2013-05-27T16:02:54+00:00] DEBUG: status: 500 Internal Server Error
[2013-05-27T16:02:54+00:00] DEBUG: ---- End HTTP Status/Header Data ----
[2013-05-27T16:02:54+00:00] INFO: HTTP Request Returned 500 Internal
Server Error: ‘0.9.’ does not match ‘x.y.z’ or ‘x.y’

knife cookbook list

aliases 0.1.0
apache2 1.6.2
application 2.0.2
application_nginx 1.0.4
application_python 1.2.2
apt 1.10.0
build-essential 1.4.0
chef_handler 1.1.4
django 0.8.0
erlang 1.3.0
gunicorn 1.1.0
magic_shell 0.3.2
mercurial 1.1.4
mongodb 0.11.0
mysql 3.0.0
networking_basic 0.0.5
newrelic 0.4.7
newrelic_monitoring 1.0.0
nginx 1.6.0
ohai 1.1.8
openssl 1.0.2
php 1.1.8
python 1.3.0
rabbitmq 2.0.0
runit 1.1.4
supervisor 0.4.0
uwsgi 0.0.10
windows 1.8.10
xml 1.1.2
yum 2.2.2


Liam Kirsher
PGP: http://liam.numenet.com/pgp/


#2

Hi,

On 5/27/13 9:59 AM, Liam Kirsher wrote:

ngx_openresty must be required by one of my cookbooks (nginx,
application_nginx?), and there appears to be an error in the version
string, due to trailing ‘.’

‘0.9.’ does not match ‘x.y.z’ or 'x.y’
So, that’s one issue.

Updating the solve gem to 0.4.4 and then re-uploading your cookbooks
should resolve this issue. The cause is a bug in Chef Server that is
exercised by older versions of the solve gem.

But, what I /really/ don’t understand here is why it’s trying to load
ngx_openresty when I’m just using the tutorial cookbooks: [“apt”,
“aliases”, “apache2”, “networking_basic”]
Oh. Wait, that must be an error coming from the opscode server.

Keep in mind that I’m new to Chef, so there’s probably something obvious
I’m just not getting.

I think you might just be getting thrown off by the response headers in
the debug log. The following:

[2013-05-27T16:02:54+00:00] DEBUG: server: ngx_openresty

simply means that the server responding to your api request is using
ngx_openresty. That is, Hosted Chef uses openresty as part of the
underlying infrastructure used to respond to your request.

The problem is likely a 2-digit version constraint in one of the
cookbooks in your run_list (or one of their dependencies). Reuploading
via knife cookbook upload or via berkshelf with a recent version of
the “solve” gem installed should resolve the issue.

Cheers,

Steven


Steven Danna
Systems Engineer, Opscode, Inc
GPG Key: http://stevendanna.github.com/downloads/code/public.key


#3

Thanks! That worked.

On 05/27/2013 01:33 PM, Steven Danna wrote:

Hi,

On 5/27/13 9:59 AM, Liam Kirsher wrote:

ngx_openresty must be required by one of my cookbooks (nginx,
application_nginx?), and there appears to be an error in the version
string, due to trailing ‘.’

‘0.9.’ does not match ‘x.y.z’ or 'x.y’
So, that’s one issue.
Updating the solve gem to 0.4.4 and then re-uploading your cookbooks
should resolve this issue. The cause is a bug in Chef Server that is
exercised by older versions of the solve gem.

But, what I /really/ don’t understand here is why it’s trying to load
ngx_openresty when I’m just using the tutorial cookbooks: [“apt”,
“aliases”, “apache2”, “networking_basic”]
Oh. Wait, that must be an error coming from the opscode server.

Keep in mind that I’m new to Chef, so there’s probably something obvious
I’m just not getting.
I think you might just be getting thrown off by the response headers in
the debug log. The following:

[2013-05-27T16:02:54+00:00] DEBUG: server: ngx_openresty
simply means that the server responding to your api request is using
ngx_openresty. That is, Hosted Chef uses openresty as part of the
underlying infrastructure used to respond to your request.

The problem is likely a 2-digit version constraint in one of the
cookbooks in your run_list (or one of their dependencies). Reuploading
via knife cookbook upload or via berkshelf with a recent version of
the “solve” gem installed should resolve the issue.

Cheers,

Steven


Liam Kirsher
PGP: http://liam.numenet.com/pgp/