Issue #4570 has been updated by James Turnbull.

Status changed from Available In Testing Branch to Closed


----------------------------------------
Bug #4570: Race conditions when serializing objects to YAML
https://projects.puppetlabs.com/issues/4570

Author: Paul Berry
Status: Closed
Priority: Normal
Assignee: Jesse Wolfe
Category: 
Target version: 
Affected Puppet version: 
Keywords: 
Branch: http://github.com/reductivelabs/puppet/tree/next


The ZAML class (which Puppet uses to serialize objects to YAML) keeps track of 
the mapping from object id to label using a class variable.  It also uses a 
class variable to keep track of which label to emit next (so as to guarantee 
uniqueness).  This creates at least two race conditions:

1. If one thread starts serializing objects while a second thread is in the 
process of performing serialization, the first thread will clear the variables 
being used by the second, causing the second thread to output non-unique labels 
and to possibly emit duplicate objects when it should emit back-references.

2. If one thread attempts to serialize an object that a second thread has 
already serialized, the first thread will emit a back-reference when it should 
have emitted the full object.

Both of these race conditions could result in ill-formed or incorrect YAML 
generation.


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

Reply via email to