Issue #15669 has been updated by Daniel Pittman.
eric sorenson wrote: > That is a pretty rough error message. It'd be good for the 3.0 agent to be > aware of the earlier servers and error out specifically. > > In general, we want to add content negotiation to agent-master communication > in 3.x ; I'm relating this to #6879 which I believe is the best place to > track the solution. There are two paths to fixing this: One is to change the way that classes signal their capability for transforming into PSON / JSON, and then make 2.7.x return an appropriate error instead of success, and the meaningless `instance.inspect` string as JSON. This fixes the problem cleanly, but doesn't resolve it until 2.7 users upgrade. The alternative is to have the client side PSON format detect this degenerate situation and handle it as a special sort of failure. That requires special-case logic in the decoder to handle this specific failure mode. Which is preferable? Note, also, that this isn't so much a failure of negotiation, as a failure of the 2.7.x master: because PSON infects every object with the ability to turn into PSON (but uselessly), the format handler can't actually tell if something should, or should not, emit JSON. ---------------------------------------- Feature #15669: A more helpful error message when the puppet master is at the wrong version (2.7.x to 3.0) https://projects.puppetlabs.com/issues/15669#change-71224 Author: Ben Hughes Status: Needs Decision Priority: Normal Assignee: eric sorenson Category: usability Target version: 3.0.0 Affected Puppet version: Keywords: errors Branch: At present, between the 2.7.x and 3.0 transition, when you have a 3.0 agent talk to a 2.7.x master you get the following: <pre> Error: Failed to apply catalog: Could not intern from pson: source '"#<Puppet::Node:0x7f' not in PSON! </pre> I imagine it won't be this simple, and this may not be the only case where that output is produced, but could we not add some code to the 2.7.x branch that detects that, and maybe goes "Hey, I'm not saying it's definitely this, but is your master older than your client? That's not cool buddy." With the move to semver, can we not have that in the handshake, before we get to this part? So the agent/master tell each other what they are and what to expect? Like SSH does with it's connect. I imagine this bump is going to be hit a few times for people. Partly why I'm "documenting" it here. (and added the doc team as watchers) -- 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 post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/puppet-bugs?hl=en.
