Bug #2367
reporting fails on .25.0b2, possibly apache/mongrel's fault
| Status: | Closed | Start: | 06/26/2009 | |
|---|---|---|---|---|
| Priority: | High | Due date: | ||
| Assignee: | - | % Done: | 100% |
|
| Category: | reports | |||
| Target version: | 0.25.0 | |||
| Affected version: | 0.25.0beta2 | Branch: | ||
| Keywords: | ||||
| Votes: | 2 |
Description
Hi, I’m using mongrel behind mod_proxy_balancer in apache and piloting the .25b2, I get this when reporting should happen:
err: Reporting failed: Server returned 400: undefined method `save' for false:FalseClass
I have this error in the apache error log:
[Thu Jun 25 20:32:50 2009] [warn] proxy: bad HTTP/1.1 header returned by /production/report/link.phishnet.internal (PUT)
Related issues
| duplicated by Puppet - Bug #2373: 25b2 client to 25b2 server reporting error | Duplicate | 06/29/2009 |
Associated revisions
Revision 1fd98b15a4f93c77182b080c68960d6d1c0bcd59
Fixes #2367 – Mongrel::HTTPRequest returns a StringIO object
When the PUT body is large enough that Mongrel::HTTPRequest#body returns a StringIO object instead of a String. StringIO#to_s then returns “<StringIO#8236987299>” instead of the string contents.
When that string is passed to YAML it returns false which is then passed to save_object without any real time checking.
This is a combination of patches from Jordan Curzon and Ricky Zhou.
History
Updated by James Turnbull about 1 year ago
- Status changed from Unreviewed to Needs more information
Any other logs from Puppet?
Updated by Brice Figureau about 1 year ago
James Turnbull wrote:
Any other logs from Puppet?
Yes, running your puppetmaster with —trace would really help diagnose the issue.
Updated by Luke Kanies about 1 year ago
- Category set to reports
- Status changed from Needs more information to Accepted
- Target version set to 0.25.0
Updated by Luke Kanies about 1 year ago
- Priority changed from Normal to High
Updated by Joe McDonagh about 1 year ago
Hey guys, really sorry can’t seem to locate the trace text file I saved, I think it’s on my master which is a VM on this box, but my vmware workstation is fubar’d right now. Have you guys been able to reproduce?
Updated by Ricky Zhou about 1 year ago
Hi, I was able to reproduce this issue. My puppetmasterd —trace output is:
debug: /File[/var/lib/puppet/ssl/certs]/seluser: Found seluser default 'system_u' for /var/lib/puppet/ssl/certs debug: /File[/var/lib/puppet/ssl/certs]/selrole: Found selrole default 'object_r' for /var/lib/puppet/ssl/certs debug: /File[/var/lib/puppet/ssl/certs]/seltype: Found seltype default 'var_lib_t' for /var/lib/puppet/ssl/certs debug: /File[/var/lib/puppet/ssl/certs]/selrange: Found selrange default 's0' for /var/lib/puppet/ssl/certs debug: /File[/var/lib/puppet/ssl/private_keys]/seluser: Found seluser default 'system_u' for /var/lib/puppet/ssl/private_keys debug: /File[/var/lib/puppet/ssl/private_keys]/selrole: Found selrole default 'object_r' for /var/lib/puppet/ssl/private_keys debug: /File[/var/lib/puppet/ssl/private_keys]/seltype: Found seltype default 'var_lib_t' for /var/lib/puppet/ssl/private_keys debug: /File[/var/lib/puppet/ssl/private_keys]/selrange: Found selrange default 's0' for /var/lib/puppet/ssl/private_keys debug: /File[/var/lib/puppet/ssl]/seluser: Found seluser default 'system_u' for /var/lib/puppet/ssl debug: /File[/var/lib/puppet/ssl]/selrole: Found selrole default 'object_r' for /var/lib/puppet/ssl debug: /File[/var/lib/puppet/ssl]/seltype: Found seltype default 'var_lib_t' for /var/lib/puppet/ssl debug: /File[/var/lib/puppet/ssl]/selrange: Found selrange default 's0' for /var/lib/puppet/ssl debug: /File[/var/lib/puppet/lib]/seluser: Found seluser default 'system_u' for /var/lib/puppet/lib debug: /File[/var/lib/puppet/lib]/selrole: Found selrole default 'object_r' for /var/lib/puppet/lib debug: /File[/var/lib/puppet/lib]/seltype: Found seltype default 'var_lib_t' for /var/lib/puppet/lib debug: /File[/var/lib/puppet/lib]/selrange: Found selrange default 's0' for /var/lib/puppet/lib debug: /File[/var/run/puppet]/seluser: Found seluser default 'system_u' for /var/run/puppet debug: /File[/var/run/puppet]/selrole: Found selrole default 'object_r' for /var/run/puppet debug: /File[/var/run/puppet]/seltype: Found seltype default 'var_run_t' for /var/run/puppet debug: /File[/var/run/puppet]/selrange: Found selrange default 's0' for /var/run/puppet debug: /File[/etc/puppet/manifests/site.pp]/seluser: Found seluser default 'system_u' for /etc/puppet/manifests/site.pp debug: /File[/etc/puppet/manifests/site.pp]/selrole: Found selrole default 'object_r' for /etc/puppet/manifests/site.pp debug: /File[/etc/puppet/manifests/site.pp]/seltype: Found seltype default 'etc_t' for /etc/puppet/manifests/site.pp debug: /File[/etc/puppet/manifests/site.pp]/selrange: Found selrange default 's0' for /etc/puppet/manifests/site.pp debug: /File[/var/lib/puppet/ssl/crl.pem]/seluser: Found seluser default 'system_u' for /var/lib/puppet/ssl/crl.pem debug: /File[/var/lib/puppet/ssl/crl.pem]/selrole: Found selrole default 'object_r' for /var/lib/puppet/ssl/crl.pem debug: /File[/var/lib/puppet/ssl/crl.pem]/seltype: Found seltype default 'var_lib_t' for /var/lib/puppet/ssl/crl.pem debug: /File[/var/lib/puppet/ssl/crl.pem]/selrange: Found selrange default 's0' for /var/lib/puppet/ssl/crl.pem debug: /File[/var/lib/puppet/ssl/certs/ca.pem]/seluser: Found seluser default 'system_u' for /var/lib/puppet/ssl/certs/ca.pem debug: /File[/var/lib/puppet/ssl/certs/ca.pem]/selrole: Found selrole default 'object_r' for /var/lib/puppet/ssl/certs/ca.pem debug: /File[/var/lib/puppet/ssl/certs/ca.pem]/seltype: Found seltype default 'var_lib_t' for /var/lib/puppet/ssl/certs/ca.pem debug: /File[/var/lib/puppet/ssl/certs/ca.pem]/selrange: Found selrange default 's0' for /var/lib/puppet/ssl/certs/ca.pem debug: /File[/var/lib/puppet/ssl/private]/seluser: Found seluser default 'system_u' for /var/lib/puppet/ssl/private debug: /File[/var/lib/puppet/ssl/private]/selrole: Found selrole default 'object_r' for /var/lib/puppet/ssl/private debug: /File[/var/lib/puppet/ssl/private]/seltype: Found seltype default 'var_lib_t' for /var/lib/puppet/ssl/private debug: /File[/var/lib/puppet/ssl/private]/selrange: Found selrange default 's0' for /var/lib/puppet/ssl/private debug: /File[/var/lib/puppet/yaml]/seluser: Found seluser default 'system_u' for /var/lib/puppet/yaml debug: /File[/var/lib/puppet/yaml]/selrole: Found selrole default 'object_r' for /var/lib/puppet/yaml debug: /File[/var/lib/puppet/yaml]/seltype: Found seltype default 'var_lib_t' for /var/lib/puppet/yaml debug: /File[/var/lib/puppet/yaml]/selrange: Found selrange default 's0' for /var/lib/puppet/yaml debug: /File[/var/lib/puppet/facts/]/seluser: Found seluser default 'system_u' for /var/lib/puppet/facts debug: /File[/var/lib/puppet/facts/]/selrole: Found selrole default 'object_r' for /var/lib/puppet/facts debug: /File[/var/lib/puppet/facts/]/seltype: Found seltype default 'var_lib_t' for /var/lib/puppet/facts debug: /File[/var/lib/puppet/facts/]/selrange: Found selrange default 's0' for /var/lib/puppet/facts debug: /File[/var/lib/puppet/rrd]/seluser: Found seluser default 'system_u' for /var/lib/puppet/rrd debug: /File[/var/lib/puppet/rrd]/selrole: Found selrole default 'object_r' for /var/lib/puppet/rrd debug: /File[/var/lib/puppet/rrd]/seltype: Found seltype default 'var_lib_t' for /var/lib/puppet/rrd debug: /File[/var/lib/puppet/rrd]/selrange: Found selrange default 's0' for /var/lib/puppet/rrd debug: /File[/etc/puppet/puppet.conf]/seluser: Found seluser default 'system_u' for /etc/puppet/puppet.conf debug: /File[/etc/puppet/puppet.conf]/selrole: Found selrole default 'object_r' for /etc/puppet/puppet.conf debug: /File[/etc/puppet/puppet.conf]/seltype: Found seltype default 'etc_t' for /etc/puppet/puppet.conf debug: /File[/etc/puppet/puppet.conf]/selrange: Found selrange default 's0' for /etc/puppet/puppet.conf debug: /File[/var/log/puppet/masterhttp.log]/seluser: Found seluser default 'system_u' for /var/log/puppet/masterhttp.log debug: /File[/var/log/puppet/masterhttp.log]/selrole: Found selrole default 'object_r' for /var/log/puppet/masterhttp.log debug: /File[/var/log/puppet/masterhttp.log]/seltype: Found seltype default 'var_log_t' for /var/log/puppet/masterhttp.log debug: /File[/var/log/puppet/masterhttp.log]/selrange: Found selrange default 's0' for /var/log/puppet/masterhttp.log debug: /File[/var/lib/puppet/ssl/private_keys/publictest1.fedoraproject.org.pem]/seluser: Found seluser default 'system_u' for /var/lib/puppet/ssl/private_keys/publictest1.fedoraproject.org.pem debug: /File[/var/lib/puppet/ssl/private_keys/publictest1.fedoraproject.org.pem]/selrole: Found selrole default 'object_r' for /var/lib/puppet/ssl/private_keys/publictest1.fedoraproject.org.pem debug: /File[/var/lib/puppet/ssl/private_keys/publictest1.fedoraproject.org.pem]/seltype: Found seltype default 'var_lib_t' for /var/lib/puppet/ssl/private_keys/publictest1.fedoraproject.org.pem debug: /File[/var/lib/puppet/ssl/private_keys/publictest1.fedoraproject.org.pem]/selrange: Found selrange default 's0' for /var/lib/puppet/ssl/private_keys/publictest1.fedoraproject.org.pem debug: /File[/var/lib/puppet/ssl/certs/publictest1.fedoraproject.org.pem]/seluser: Found seluser default 'system_u' for /var/lib/puppet/ssl/certs/publictest1.fedoraproject.org.pem debug: /File[/var/lib/puppet/ssl/certs/publictest1.fedoraproject.org.pem]/selrole: Found selrole default 'object_r' for /var/lib/puppet/ssl/certs/publictest1.fedoraproject.org.pem debug: /File[/var/lib/puppet/ssl/certs/publictest1.fedoraproject.org.pem]/seltype: Found seltype default 'var_lib_t' for /var/lib/puppet/ssl/certs/publictest1.fedoraproject.org.pem debug: /File[/var/lib/puppet/ssl/certs/publictest1.fedoraproject.org.pem]/selrange: Found selrange default 's0' for /var/lib/puppet/ssl/certs/publictest1.fedoraproject.org.pem debug: /File[/var/lib/puppet/reports]/seluser: Found seluser default 'system_u' for /var/lib/puppet/reports debug: /File[/var/lib/puppet/reports]/selrole: Found selrole default 'object_r' for /var/lib/puppet/reports debug: /File[/var/lib/puppet/reports]/seltype: Found seltype default 'var_lib_t' for /var/lib/puppet/reports debug: /File[/var/lib/puppet/reports]/selrange: Found selrange default 's0' for /var/lib/puppet/reports debug: /File[/var/log/puppet]/seluser: Found seluser default 'system_u' for /var/log/puppet debug: /File[/var/log/puppet]/selrole: Found selrole default 'object_r' for /var/log/puppet debug: /File[/var/log/puppet]/seltype: Found seltype default 'var_log_t' for /var/log/puppet debug: /File[/var/log/puppet]/selrange: Found selrange default 's0' for /var/log/puppet debug: /File[/etc/puppet/manifests]/seluser: Found seluser default 'system_u' for /etc/puppet/manifests debug: /File[/etc/puppet/manifests]/selrole: Found selrole default 'object_r' for /etc/puppet/manifests debug: /File[/etc/puppet/manifests]/seltype: Found seltype default 'etc_t' for /etc/puppet/manifests debug: /File[/etc/puppet/manifests]/selrange: Found selrange default 's0' for /etc/puppet/manifests debug: /File[/var/lib/puppet]/seluser: Found seluser default 'system_u' for /var/lib/puppet debug: /File[/var/lib/puppet]/selrole: Found selrole default 'object_r' for /var/lib/puppet debug: /File[/var/lib/puppet]/seltype: Found seltype default 'var_lib_t' for /var/lib/puppet debug: /File[/var/lib/puppet]/selrange: Found selrange default 's0' for /var/lib/puppet debug: /File[/var/lib/puppet/ssl/public_keys]/seluser: Found seluser default 'system_u' for /var/lib/puppet/ssl/public_keys debug: /File[/var/lib/puppet/ssl/public_keys]/selrole: Found selrole default 'object_r' for /var/lib/puppet/ssl/public_keys debug: /File[/var/lib/puppet/ssl/public_keys]/seltype: Found seltype default 'var_lib_t' for /var/lib/puppet/ssl/public_keys debug: /File[/var/lib/puppet/ssl/public_keys]/selrange: Found selrange default 's0' for /var/lib/puppet/ssl/public_keys debug: /File[/var/lib/puppet/bucket]/seluser: Found seluser default 'system_u' for /var/lib/puppet/bucket debug: /File[/var/lib/puppet/bucket]/selrole: Found selrole default 'object_r' for /var/lib/puppet/bucket debug: /File[/var/lib/puppet/bucket]/seltype: Found seltype default 'var_lib_t' for /var/lib/puppet/bucket debug: /File[/var/lib/puppet/bucket]/selrange: Found selrange default 's0' for /var/lib/puppet/bucket debug: /File[/var/lib/puppet/state]/seluser: Found seluser default 'system_u' for /var/lib/puppet/state debug: /File[/var/lib/puppet/state]/selrole: Found selrole default 'object_r' for /var/lib/puppet/state debug: /File[/var/lib/puppet/state]/seltype: Found seltype default 'var_lib_t' for /var/lib/puppet/state debug: /File[/var/lib/puppet/state]/selrange: Found selrange default 's0' for /var/lib/puppet/state debug: /File[/etc/puppet]/seluser: Found seluser default 'system_u' for /etc/puppet debug: /File[/etc/puppet]/selrole: Found selrole default 'object_r' for /etc/puppet debug: /File[/etc/puppet]/seltype: Found seltype default 'etc_t' for /etc/puppet debug: /File[/etc/puppet]/selrange: Found selrange default 's0' for /etc/puppet debug: /File[/var/lib/puppet/ssl/certificate_requests]/seluser: Found seluser default 'system_u' for /var/lib/puppet/ssl/certificate_requests debug: /File[/var/lib/puppet/ssl/certificate_requests]/selrole: Found selrole default 'object_r' for /var/lib/puppet/ssl/certificate_requests debug: /File[/var/lib/puppet/ssl/certificate_requests]/seltype: Found seltype default 'var_lib_t' for /var/lib/puppet/ssl/certificate_requests debug: /File[/var/lib/puppet/ssl/certificate_requests]/selrange: Found selrange default 's0' for /var/lib/puppet/ssl/certificate_requests debug: Failed to load library 'ldap' for feature 'ldap' debug: /File[/var/lib/puppet/lib]: Autorequiring File[/var/lib/puppet] debug: /File[/var/lib/puppet/ssl/crl.pem]: Autorequiring File[/var/lib/puppet/ssl] debug: /File[/var/lib/puppet/rrd]: Autorequiring File[/var/lib/puppet] debug: /File[/etc/puppet/manifests]: Autorequiring File[/etc/puppet] debug: /File[/var/lib/puppet/ssl/private]: Autorequiring File[/var/lib/puppet/ssl] debug: /File[/var/lib/puppet/facts]: Autorequiring File[/var/lib/puppet] debug: /File[/etc/puppet/manifests/site.pp]: Autorequiring File[/etc/puppet/manifests] debug: /File[/var/lib/puppet/ssl/certs/publictest1.fedoraproject.org.pem]: Autorequiring File[/var/lib/puppet/ssl/certs] debug: /File[/var/lib/puppet/yaml]: Autorequiring File[/var/lib/puppet] debug: /File[/var/lib/puppet/reports]: Autorequiring File[/var/lib/puppet] debug: /File[/var/lib/puppet/bucket]: Autorequiring File[/var/lib/puppet] debug: /File[/var/lib/puppet/ssl/certificate_requests]: Autorequiring File[/var/lib/puppet/ssl] debug: /File[/var/lib/puppet/ssl/private_keys]: Autorequiring File[/var/lib/puppet/ssl] debug: /File[/var/lib/puppet/ssl/certs]: Autorequiring File[/var/lib/puppet/ssl] debug: /File[/var/lib/puppet/ssl/public_keys]: Autorequiring File[/var/lib/puppet/ssl] debug: /File[/var/lib/puppet/ssl]: Autorequiring File[/var/lib/puppet] debug: /File[/var/lib/puppet/ssl/certs/ca.pem]: Autorequiring File[/var/lib/puppet/ssl/certs] debug: /File[/etc/puppet/puppet.conf]: Autorequiring File[/etc/puppet] debug: /File[/var/lib/puppet/ssl/private_keys/publictest1.fedoraproject.org.pem]: Autorequiring File[/var/lib/puppet/ssl/private_keys] debug: /File[/var/lib/puppet/state]: Autorequiring File[/var/lib/puppet] debug: /File[/var/log/puppet/masterhttp.log]: Autorequiring File[/var/log/puppet] debug: Finishing transaction 70290910158920 with 0 changes debug: /File[/var/lib/puppet/ssl/ca/signed]/seluser: Found seluser default 'system_u' for /var/lib/puppet/ssl/ca/signed debug: /File[/var/lib/puppet/ssl/ca/signed]/selrole: Found selrole default 'object_r' for /var/lib/puppet/ssl/ca/signed debug: /File[/var/lib/puppet/ssl/ca/signed]/seltype: Found seltype default 'var_lib_t' for /var/lib/puppet/ssl/ca/signed debug: /File[/var/lib/puppet/ssl/ca/signed]/selrange: Found selrange default 's0' for /var/lib/puppet/ssl/ca/signed debug: /File[/var/lib/puppet/ssl/ca/private]/seluser: Found seluser default 'system_u' for /var/lib/puppet/ssl/ca/private debug: /File[/var/lib/puppet/ssl/ca/private]/selrole: Found selrole default 'object_r' for /var/lib/puppet/ssl/ca/private debug: /File[/var/lib/puppet/ssl/ca/private]/seltype: Found seltype default 'var_lib_t' for /var/lib/puppet/ssl/ca/private debug: /File[/var/lib/puppet/ssl/ca/private]/selrange: Found selrange default 's0' for /var/lib/puppet/ssl/ca/private debug: /File[/var/lib/puppet/ssl/ca/ca_crl.pem]/seluser: Found seluser default 'system_u' for /var/lib/puppet/ssl/ca/ca_crl.pem debug: /File[/var/lib/puppet/ssl/ca/ca_crl.pem]/selrole: Found selrole default 'object_r' for /var/lib/puppet/ssl/ca/ca_crl.pem debug: /File[/var/lib/puppet/ssl/ca/ca_crl.pem]/seltype: Found seltype default 'var_lib_t' for /var/lib/puppet/ssl/ca/ca_crl.pem debug: /File[/var/lib/puppet/ssl/ca/ca_crl.pem]/selrange: Found selrange default 's0' for /var/lib/puppet/ssl/ca/ca_crl.pem debug: /File[/var/lib/puppet/ssl/ca/private/ca.pass]/seluser: Found seluser default 'system_u' for /var/lib/puppet/ssl/ca/private/ca.pass debug: /File[/var/lib/puppet/ssl/ca/private/ca.pass]/selrole: Found selrole default 'object_r' for /var/lib/puppet/ssl/ca/private/ca.pass debug: /File[/var/lib/puppet/ssl/ca/private/ca.pass]/seltype: Found seltype default 'var_lib_t' for /var/lib/puppet/ssl/ca/private/ca.pass debug: /File[/var/lib/puppet/ssl/ca/private/ca.pass]/selrange: Found selrange default 's0' for /var/lib/puppet/ssl/ca/private/ca.pass debug: /File[/var/lib/puppet/ssl/ca/ca_key.pem]/seluser: Found seluser default 'system_u' for /var/lib/puppet/ssl/ca/ca_key.pem debug: /File[/var/lib/puppet/ssl/ca/ca_key.pem]/selrole: Found selrole default 'object_r' for /var/lib/puppet/ssl/ca/ca_key.pem debug: /File[/var/lib/puppet/ssl/ca/ca_key.pem]/seltype: Found seltype default 'var_lib_t' for /var/lib/puppet/ssl/ca/ca_key.pem debug: /File[/var/lib/puppet/ssl/ca/ca_key.pem]/selrange: Found selrange default 's0' for /var/lib/puppet/ssl/ca/ca_key.pem debug: /File[/var/lib/puppet/ssl/ca/inventory.txt]/seluser: Found seluser default 'system_u' for /var/lib/puppet/ssl/ca/inventory.txt debug: /File[/var/lib/puppet/ssl/ca/inventory.txt]/selrole: Found selrole default 'object_r' for /var/lib/puppet/ssl/ca/inventory.txt debug: /File[/var/lib/puppet/ssl/ca/inventory.txt]/seltype: Found seltype default 'var_lib_t' for /var/lib/puppet/ssl/ca/inventory.txt debug: /File[/var/lib/puppet/ssl/ca/inventory.txt]/selrange: Found selrange default 's0' for /var/lib/puppet/ssl/ca/inventory.txt debug: /File[/var/lib/puppet/ssl/ca]/seluser: Found seluser default 'system_u' for /var/lib/puppet/ssl/ca debug: /File[/var/lib/puppet/ssl/ca]/selrole: Found selrole default 'object_r' for /var/lib/puppet/ssl/ca debug: /File[/var/lib/puppet/ssl/ca]/seltype: Found seltype default 'var_lib_t' for /var/lib/puppet/ssl/ca debug: /File[/var/lib/puppet/ssl/ca]/selrange: Found selrange default 's0' for /var/lib/puppet/ssl/ca debug: /File[/var/lib/puppet/ssl/ca/serial]/seluser: Found seluser default 'system_u' for /var/lib/puppet/ssl/ca/serial debug: /File[/var/lib/puppet/ssl/ca/serial]/selrole: Found selrole default 'object_r' for /var/lib/puppet/ssl/ca/serial debug: /File[/var/lib/puppet/ssl/ca/serial]/seltype: Found seltype default 'var_lib_t' for /var/lib/puppet/ssl/ca/serial debug: /File[/var/lib/puppet/ssl/ca/serial]/selrange: Found selrange default 's0' for /var/lib/puppet/ssl/ca/serial debug: /File[/var/lib/puppet/ssl/ca/ca_crt.pem]/seluser: Found seluser default 'system_u' for /var/lib/puppet/ssl/ca/ca_crt.pem debug: /File[/var/lib/puppet/ssl/ca/ca_crt.pem]/selrole: Found selrole default 'object_r' for /var/lib/puppet/ssl/ca/ca_crt.pem debug: /File[/var/lib/puppet/ssl/ca/ca_crt.pem]/seltype: Found seltype default 'var_lib_t' for /var/lib/puppet/ssl/ca/ca_crt.pem debug: /File[/var/lib/puppet/ssl/ca/ca_crt.pem]/selrange: Found selrange default 's0' for /var/lib/puppet/ssl/ca/ca_crt.pem debug: /File[/var/lib/puppet/ssl/ca/requests]/seluser: Found seluser default 'system_u' for /var/lib/puppet/ssl/ca/requests debug: /File[/var/lib/puppet/ssl/ca/requests]/selrole: Found selrole default 'object_r' for /var/lib/puppet/ssl/ca/requests debug: /File[/var/lib/puppet/ssl/ca/requests]/seltype: Found seltype default 'var_lib_t' for /var/lib/puppet/ssl/ca/requests debug: /File[/var/lib/puppet/ssl/ca/requests]/selrange: Found selrange default 's0' for /var/lib/puppet/ssl/ca/requests debug: /File[/var/lib/puppet/ssl/ca/inventory.txt]: Autorequiring File[/var/lib/puppet/ssl/ca] debug: /File[/var/lib/puppet/ssl/ca/signed]: Autorequiring File[/var/lib/puppet/ssl/ca] debug: /File[/var/lib/puppet/ssl/ca/serial]: Autorequiring File[/var/lib/puppet/ssl/ca] debug: /File[/var/lib/puppet/ssl/ca/ca_crl.pem]: Autorequiring File[/var/lib/puppet/ssl/ca] debug: /File[/var/lib/puppet/ssl/ca/private/ca.pass]: Autorequiring File[/var/lib/puppet/ssl/ca/private] debug: /File[/var/lib/puppet/ssl/ca/ca_key.pem]: Autorequiring File[/var/lib/puppet/ssl/ca] debug: /File[/var/lib/puppet/ssl/ca/ca_crt.pem]: Autorequiring File[/var/lib/puppet/ssl/ca] debug: /File[/var/lib/puppet/ssl/ca/private]: Autorequiring File[/var/lib/puppet/ssl/ca] debug: /File[/var/lib/puppet/ssl/ca/requests]: Autorequiring File[/var/lib/puppet/ssl/ca] debug: Finishing transaction 70290909868040 with 0 changes debug: Using cached certificate for ca debug: Using cached certificate for ca debug: Using cached certificate for publictest1.fedoraproject.org notice: Starting Puppet server version 0.25.0 debug: Mongrel client debugging enabled. [$mongrel_debug_client = true]. debug: Finishing transaction 70290898121040 with 0 changes debug: No file server configuration file; autocreating modules mount with default permissions debug: No file server configuration file; autocreating plugins mount with default permissions debug: Creating interpreter debug: Finishing transaction 70290898106980 with 0 changes warning: Inserting default '~ ^/catalog/([^/]+)$'(auth) acl because none were found in 'no auth.conf file configured' warning: Inserting default '/file'(non-auth) acl because none were found in 'no auth.conf file configured' warning: Inserting default '/certificate_revocation_list/ca'(auth) acl because none were found in 'no auth.conf file configured' warning: Inserting default '/report'(auth) acl because none were found in 'no auth.conf file configured' warning: Inserting default '/certificate/ca'(non-auth) acl because none were found in 'no auth.conf file configured' warning: Inserting default '/certificate/'(non-auth) acl because none were found in 'no auth.conf file configured' warning: Inserting default '/certificate_request'(non-auth) acl because none were found in 'no auth.conf file configured' info: Expiring the node cache of publictest1.fedoraproject.org info: Not using expired node for publictest1.fedoraproject.org from cache; expired at Sat Jul 04 01:03:37 +0000 2009 info: Caching node for publictest1.fedoraproject.org warning: You cannot collect without storeconfigs being set on line 11 in file /etc/puppet/manifests/site.pp warning: You cannot collect exported resources without storeconfigs being set; the collection will be ignored on line 22 in file /etc/puppet/manifests/site.pp notice: Scope(Class[main]): This is a test warning: Not collecting exported resources without storeconfigs notice: Compiled catalog for publictest1.fedoraproject.org in 0.06 seconds /root/puppet/lib/puppet/network/http/handler.rb:145:in `save_object' /root/puppet/lib/puppet/network/http/handler.rb:122:in `do_save' /root/puppet/lib/puppet/network/http/handler.rb:47:in `send' /root/puppet/lib/puppet/network/http/handler.rb:47:in `process' /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:159:in `process_client' /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:158:in `each' /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:158:in `process_client' /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `run' /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `initialize' /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `new' /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:285:in `run' /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in `initialize' /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in `new' /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/lib/mongrel.rb:268:in `run' /root/puppet/lib/puppet/network/http/mongrel.rb:22:in `listen' /root/puppet/lib/puppet/network/server.rb:131:in `listen' /root/puppet/lib/puppet/network/server.rb:146:in `start' /root/puppet/lib/puppet/daemon.rb:128:in `start' /root/puppet/lib/puppet/application/puppetmasterd.rb:96:in `main' /root/puppet/lib/puppet/application.rb:226:in `send' /root/puppet/lib/puppet/application.rb:226:in `run_command' /root/puppet/lib/puppet/application.rb:217:in `run' ./sbin/puppetmasterd:66 err: undefined method `save' for false:FalseClass
Updated by Brice Figureau about 1 year ago
Ricky Zhou wrote:
Hi, I was able to reproduce this issue. My puppetmasterd —trace output is:
[…]
I think the issue is the same as in: #2392 The client sends an Accept-Encoding header containing marshall, yaml, raw, so the server thinks that what the client sends is marshall, when in fact it is yaml. I don’t get why we don’t use Content-Type instead of relying on hypothetical Accept-Encoding which is the reverse (ie what the client can get) in client to server communication.
Updated by Jordan Curzon about 1 year ago
The bug is related to #2392, but different. I’m submitting a patch for #2392 that does just that, use the Content-Header.
This happens because because the PUT body is large enough that Mongrel::HTTPRequest#body returns a StringIO object instead of a String. StringIO#to_s returns “<StringIO#8236987299>” instead of the string contents. When that string is passed to YAML it returns false which is then passed to save_object without any time checking. I’ll post a patch that properly returns the string contents of the request body and another that type checks the decoded result of the body.
Updated by Ricky Zhou about 1 year ago
I think Jordan hit the root cause of this on the head :–) This patch on lib/puppet/network/http/mongrel/rest.rb corrected the issue for me (not sure if it can break anything else though). Some additional error checking would be good though, as Jordan mentioned.
diff --git a/lib/puppet/network/http/mongrel/rest.rb b/lib/puppet/network/http/mongrel/rest.rb
index 369d4c6..eed62c2 100644
--- a/lib/puppet/network/http/mongrel/rest.rb
+++ b/lib/puppet/network/http/mongrel/rest.rb
@@ -37,7 +37,7 @@ class Puppet::Network::HTTP::MongrelREST < Mongrel::HttpHandler
# return the request body
def body(request)
- request.body
+ request.body.read
end
def set_content_type(response, format)
Updated by Jordan Curzon about 1 year ago
Ricky,
I posted a fix that was more complicated but I looked at it more and your patch is complete. Here is the change for the rspec tests:
diff --git a/spec/unit/network/http/mongrel/rest.rb b/spec/unit/network/http/mongrel/rest.rb
index abd573a..83d9651 100755
--- a/spec/unit/network/http/mongrel/rest.rb
+++ b/spec/unit/network/http/mongrel/rest.rb
@@ -54,7 +54,7 @@ describe "Puppet::Network::HTTP::MongrelREST" do
end
it "should return the request body as the body" do
- @request.expects(:body).returns "mybody"
+ @request.expects(:body).returns StringIO.new("mybody")
@handler.body(@request).should == "mybody"
end
Updated by Ricky Zhou about 1 year ago
Hey, Jordan – thanks for bringing this up on list. I’m happy to get this committed as is, but feel free to make them into a single patch if you’d like.
Updated by Ricky Zhou about 1 year ago
- Status changed from Accepted to Ready for Testing
Changing status to “Ready for Testing” (sorry if this wasn’t the right thing to do).
Updated by James Turnbull about 1 year ago
I’ve mailed a patch combing the fix and the test updates to the -dev list for comment.
Updated by James Turnbull about 1 year ago
- Status changed from Ready for Testing to Closed
- % Done changed from 0 to 100
Applied in changeset commit:“1fd98b15a4f93c77182b080c68960d6d1c0bcd59”.