Issue #8229 has been updated by Josh Cooper.

Josh Cooper wrote:
> So there are a few issues here:
> 
> * There are some places where we read the entire file into memory, especially 
> when we write a file into the file bucket and ensure it matches the checksum 
> that was specified.
> 
> * The `file_bucket` indirected type supports several serialization formats. 
> With a webrick setup, I see it supports 4 serialization formats, only the 
> last one `raw` will work. Depending on the master load, size of the file, the 
> request may fail, the pson regexp buffer may be exceeded. All of this is 
> incredibly slow and dumb.
> 
> [...]
> 
> * When the agent sends a file to the master to backup, the master 
> unintentionally sends the same `instance` back. Yes, the master echos the 
> file back to the agent, and the agent ignores it!
> 
> * There is a bug in the `file` face such that if you do `puppet file find` it 
> uses `puts` to write out the response, thereby corrupting the returned file.
> 
> The `file_bucket` needs to be using the `raw` serialization format, similar 
> to what is done for `file_content`.



----------------------------------------
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-96991

* Author: Jeff McCune
* Status: Accepted
* Priority: High
* Assignee: Josh Cooper
* Category: filebucket
* 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.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to