Issue #8229 has been updated by Charlie Sharpsteen.
Re-produced on Centos 6.3 w/ Puppet 3.1.1. Used the following `site.pp`:
<pre>
node 'puppetagent.boxnet' {
filebucket { 'bkup':
server => 'puppetmaster.boxnet',
path => false,
}
File { backup => 'bkup' }
file { '/usr/local/puppet':
ensure => directory,
purge => true,
recurse => true,
}
}
</pre>
Then, copied the contents of `/usr/bin/*` to `/usr/local/puppet/`. `puppet
agent` dutifully purged each binary and sent copies up to the master for
backup. However, when the agent reached `emacs`, it croaked with the regexp
buffer overflow from the server while executing the `save` method in the
indirector against---exactly as reported earlier. The URI being accessed was:
/production/file_bucket_file/md5/8db5f58ee234bb1b366aecb061604e97//usr/local/puppet/emacs
Here is the server log with `--trace`:
<pre>
Mon Apr 08 12:20:27 -0700 2013 Puppet (info): Could not find file_bucket_file
for 'md5/8db5f58ee234bb1b366aecb061604e97/usr/local/puppet/emacs'
Mon Apr 08 12:20:35 -0700 2013 Puppet (err): Could not intern from pson: Caught
StringScanner::Error: regexp buffer overflow
/usr/lib/ruby/site_ruby/1.8/puppet/external/pson/pure/parser.rb:153:in
`parse_string'
/usr/lib/ruby/site_ruby/1.8/puppet/external/pson/pure/parser.rb:168:in
`parse_value'
/usr/lib/ruby/site_ruby/1.8/puppet/external/pson/pure/parser.rb:232:in
`parse_object'
/usr/lib/ruby/site_ruby/1.8/puppet/external/pson/pure/parser.rb:97:in `parse'
/usr/lib/ruby/site_ruby/1.8/puppet/external/pson/common.rb:133:in `parse'
/usr/lib/ruby/site_ruby/1.8/puppet/network/formats.rb:105:in `intern'
/usr/lib/ruby/site_ruby/1.8/puppet/network/format_handler.rb:12:in `send'
/usr/lib/ruby/site_ruby/1.8/puppet/network/format_handler.rb:12:in `protect'
/usr/lib/ruby/site_ruby/1.8/puppet/network/format_handler.rb:26:in `intern'
/usr/lib/ruby/site_ruby/1.8/puppet/network/format_handler.rb:108:in
`convert_from'
/usr/lib/ruby/site_ruby/1.8/puppet/network/http/handler.rb:167:in `do_save'
/usr/lib/ruby/site_ruby/1.8/puppet/network/http/handler.rb:71:in `send'
/usr/lib/ruby/site_ruby/1.8/puppet/network/http/handler.rb:71:in `process'
/usr/lib/ruby/site_ruby/1.8/puppet/network/http/webrick/rest.rb:24:in `service'
/usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
/usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
/usr/lib/ruby/site_ruby/1.8/puppet/network/http/webrick.rb:33:in `listen'
/usr/lib/ruby/1.8/webrick/server.rb:173:in `call'
/usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
/usr/lib/ruby/1.8/webrick/server.rb:162:in `start'
/usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
/usr/lib/ruby/1.8/webrick/server.rb:95:in `start'
/usr/lib/ruby/1.8/webrick/server.rb:92:in `each'
/usr/lib/ruby/1.8/webrick/server.rb:92:in `start'
/usr/lib/ruby/1.8/webrick/server.rb:23:in `start'
/usr/lib/ruby/1.8/webrick/server.rb:82:in `start'
/usr/lib/ruby/site_ruby/1.8/puppet/network/http/webrick.rb:30:in `listen'
/usr/lib/ruby/site_ruby/1.8/puppet/network/http/webrick.rb:29:in `initialize'
/usr/lib/ruby/site_ruby/1.8/puppet/network/http/webrick.rb:29:in `new'
/usr/lib/ruby/site_ruby/1.8/puppet/network/http/webrick.rb:29:in `listen'
/usr/lib/ruby/site_ruby/1.8/puppet/network/http/webrick.rb:26:in `synchronize'
/usr/lib/ruby/site_ruby/1.8/puppet/network/http/webrick.rb:26:in `listen'
/usr/lib/ruby/site_ruby/1.8/puppet/network/server.rb:92:in `listen'
/usr/lib/ruby/site_ruby/1.8/puppet/network/server.rb:104:in `start'
/usr/lib/ruby/site_ruby/1.8/puppet/daemon.rb:136:in `start'
/usr/lib/ruby/site_ruby/1.8/puppet/application/master.rb:207:in `main'
/usr/lib/ruby/site_ruby/1.8/puppet/application/master.rb:157:in `run_command'
/usr/lib/ruby/site_ruby/1.8/puppet/application.rb:364:in `run'
/usr/lib/ruby/site_ruby/1.8/puppet/application.rb:456:in `plugin_hook'
/usr/lib/ruby/site_ruby/1.8/puppet/application.rb:364:in `run'
/usr/lib/ruby/site_ruby/1.8/puppet/util.rb:504:in `exit_on_fail'
/usr/lib/ruby/site_ruby/1.8/puppet/application.rb:364:in `run'
/usr/lib/ruby/site_ruby/1.8/puppet/util/command_line.rb:132:in `run'
/usr/lib/ruby/site_ruby/1.8/puppet/util/command_line.rb:86:in `execute'
/usr/bin/puppet:4
Mon Apr 08 12:20:35 -0700 2013 Puppet (debug): Finishing transaction -611259548
Mon Apr 08 12:20:35 -0700 2013 Puppet (debug): Received report to process from
puppetagent.boxnet
Mon Apr 08 12:20:35 -0700 2013 Puppet (debug): Processing report from
puppetagent.boxnet with processor Puppet::Reports::Store
</pre>
The odd thing about this bug is that 833 other files from `/usr/bin` were
successfully backed up and deleted. Emacs was the only executable that Puppet
had a problem with. Emacs was also the largest executable at 6.1 MB---the
second largest executable was 3.2 MB and was deleted successfully.
Will poke around some more.
----------------------------------------
Bug #8229: File bucket and Puppet File resource: fails with "regexp buffer
overflow" when backing up binary file
https://projects.puppetlabs.com/issues/8229#change-88894
* Author: Jeff McCune
* Status: Investigating
* Priority: High
* Assignee: Charlie Sharpsteen
* Category: file
* Target version:
* Affected Puppet version: 2.6.0
* Keywords: puppet inspect upload archive customer
* Branch:
----------------------------------------
# Overview #
When uploading files using `puppet inspect` I often get this on the managed
node side of the equation:
<pre>
/usr/lib/ruby/1.8/timeout.rb:64:in `rbuf_fill': execution expired
(Timeout::Error)
from /usr/lib/ruby/1.8/net/protocol.rb:134:in `rbuf_fill'
from /usr/lib/ruby/1.8/net/protocol.rb:116:in `readuntil'
from /usr/lib/ruby/1.8/net/protocol.rb:126:in `readline'
from /usr/lib/ruby/1.8/net/http.rb:2028:in `read_status_line'
from /usr/lib/ruby/1.8/net/http.rb:2017:in `read_new'
from /usr/lib/ruby/1.8/net/http.rb:1051:in `request'
from /usr/lib/ruby/1.8/net/http.rb:1037:in `request'
from /usr/lib/ruby/1.8/net/http.rb:543:in `start'
from /usr/lib/ruby/1.8/net/http.rb:1035:in `request'
from /usr/lib/ruby/1.8/net/http.rb:857:in `put'
from /usr/lib/ruby/site_ruby/1.8/puppet/indirector/rest.rb:107:in `save'
from
/usr/lib/ruby/site_ruby/1.8/puppet/indirector/indirection.rb:264:in `save'
from /usr/lib/ruby/site_ruby/1.8/puppet/indirector.rb:68:in `save'
from /usr/lib/ruby/site_ruby/1.8/puppet/file_bucket/dipper.rb:43:in
`backup'
from /usr/lib/ruby/site_ruby/1.8/puppet/application/inspect.rb:157:in
`run_command'
from /usr/lib/ruby/site_ruby/1.8/puppet/application/inspect.rb:117:in
`each'
from /usr/lib/ruby/site_ruby/1.8/puppet/application/inspect.rb:117:in
`run_command'
from /usr/lib/ruby/site_ruby/1.8/puppet/util.rb:193:in `benchmark'
from /usr/lib/ruby/1.8/benchmark.rb:308:in `realtime'
from /usr/lib/ruby/site_ruby/1.8/puppet/util.rb:192:in `benchmark'
from /usr/lib/ruby/site_ruby/1.8/puppet/application/inspect.rb:101:in
`run_command'
from /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:305:in `run'
from /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:420:in `hook'
from /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:305:in `run'
from /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:411:in
`exit_on_fail'
from /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:305:in `run'
from /usr/lib/ruby/site_ruby/1.8/puppet/util/command_line.rb:62:in
`execute'
from /usr/bin/puppet:4
</pre>
On the master side, I saw this error message but did not have trace enabled:
<pre>
err: Could not intern from pson: regexp buffer overflow
</pre>
--
You have received this notification because you have either subscribed to it,
or are involved in it.
To change your notification preferences, please click here:
http://projects.puppetlabs.com/my/account
--
You received this message because you are subscribed to the Google Groups
"Puppet Bugs" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/puppet-bugs?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.