{"push_id":854413197,"size":14,"distinct_size":5,"ref":"refs/heads/master","head":"d9b1dc5958143f361694ef7f6c223333d166ad6e","before":"c2023c3edbb1aad9f9be3b777dddcbbf90e02bde","commits":[{"sha":"c9a7e6d506768cb1c00767f785339bec512d069e","author":{"email":"c028c213ed5efcf30c3f4fc7361dbde0c893c5b7@puppetlabs.com","name":"Josh Cooper"},"message":"(PUP-4516) Exit immediately when sent INT or TERM\n\nStarting in ruby 2, signal handlers are not allowed to acquire a\nmutex[1], because it could deadlock[2]. For example, the main thread\nacquires a mutex, is interrupted by a signal, signal handler runs in a\nseparate thread, and will deadlock if tries to acquire the already\nlocked mutex. In ruby 1.8/9, the behavior was allowed, but wasn't safe.\nIn ruby 2, it's a hard failure.\n\nCommit 6238616 removed thread-safety code because it was incomplete and\npuppet primarily runs single threaded -- exceptions being its signal\nhandler and webrick request processing. PUP-202 was marked as fixed\nsince we no longer tried to acquire a mutex from a trap context.\nHowever, the signal handler would still call back into puppet code, e.g.\nreload, which led to PUP-1635 \"current thread not owner\".\n\nCommit 245de036f modified the signal handler to queue the method to\nexecute, e.g. reload, and have the Daemon's event_loop periodically\ncheck if a new signal had been received, calling the method from the\nmain ruby thread.\n\nHowever, the event loop checks for new signals every 5 seconds, so\npuppet will not immediately exit when sent INT or TERM. Also, if puppet\nis making a blocking system call, e.g. agent is blocked reading from a\nsocket, then puppet will not exit until the system call returns.\n\nThis commit changes puppet's signal handlers to exit immediately in\nresponse to INT or TERM. We call stop instead of exit to gracefully\nshutdown, e.g. delete our pid file. There is a possibility the stop\nmethod could cause a mutex to be acquired, e.g. in ruby's webrick or\nlogger, but it doesn't seem to happen in practice.\n\nAlso we preserve the existing async handling for HUP, USR1, and USR2.\n\nThis commit affects the agent and webrick master as both support\ndaemonizing.\n\n[1] https://github.com/ruby/ruby/blob/v2_1_7/thread.c#L4384-L4386\n[2] https://bugs.ruby-lang.org/issues/6416","distinct":false,"url":"https://api.github.com/repos/camlow325/puppet/commits/c9a7e6d506768cb1c00767f785339bec512d069e"},{"sha":"7dd894d76b449ada5b2a53505f77cc8a1e8b36a9","author":{"email":"7cdd076e25adef0e25d3fedc5490d7fb59f5b1c0@puppetlabs.com","name":"Kylo Ginsberg"},"message":"Merge pull request #4382 from joshcooper/ticket/3.x/PUP-4516-exit-on-int-term\n\n(PUP-4516) Exit immediately when sent INT or TERM","distinct":false,"url":"https://api.github.com/repos/camlow325/puppet/commits/7dd894d76b449ada5b2a53505f77cc8a1e8b36a9"},{"sha":"5b725aaba43cbdc82e90a1172338fff1f3f8bf8e","author":{"email":"df1ed88a312a603dfee9f157a90fa8f7f195ab59@inuits.eu","name":"Julien Pivotto"},"message":"(PUP-4516) Add signal name in exit message\n\nPUP-4516 and commit c9a7e6d506768cb1c00767f785339bec512d069e introduce\na message before exiting after receiving a TERM or INT signal.\n\nThis commit adds the signal name to this error message, clarifying the\nfact that we actually exit because we receive a signal and specifying\nthe signal.","distinct":false,"url":"https://api.github.com/repos/camlow325/puppet/commits/5b725aaba43cbdc82e90a1172338fff1f3f8bf8e"},{"sha":"aeacf3add8eaae4b15c03ea4aa925f6ee98228d7","author":{"email":"a79ee7b20049521431fe879d8553375a09812d76@puppetlabs.com","name":"Josh Cooper"},"message":"Merge pull request #4386 from roidelapluie/3.x\n\n(PUP-4516) Add signal name in exit message","distinct":false,"url":"https://api.github.com/repos/camlow325/puppet/commits/aeacf3add8eaae4b15c03ea4aa925f6ee98228d7"},{"sha":"b2d5c203608cd15c85d08f95ccaa2bc3253aec13","author":{"email":"5fa21ba918749479f1a2164cc11f556766c4eb5f@puppetlabs.com","name":"Michael Smith"},"message":"Merge remote-tracking branch 'upstream/3.x' into stable","distinct":false,"url":"https://api.github.com/repos/camlow325/puppet/commits/b2d5c203608cd15c85d08f95ccaa2bc3253aec13"},{"sha":"b351624624e62818cb69de927d24e3fe8dabb5b5","author":{"email":"6eaaec1336f7acb13686b98a3495c3d683fe0810@github","name":"Ethan J. Brown"},"message":"(PUP-4386) Windows group invalid user error msgs\n\nAssume that `puppet resource group guests` yields the following:\n\ngroup { 'guests':\n  ensure  => 'present',\n  gid     => 'S-1-5-32-546',\n  members => ['Guest', 'Administrator'],\n}\n\nPreviously, trying to apply the following manifest with a bad user,\nwould trigger a bug in Puppet:\n\ngroup { 'guests':\n  ensure => present,\n  members => ['Guest', 'Administrator', ''],\n}\n\nAn error would be raised in resource_harness#sync_if_needed method, and\nwould lose important details about expected resource changes:\n\nNotice: Compiled catalog for vagrant-2008r2.corp.puppetlabs.net in environment production in 0.22 seconds Error: Could not resolve username:\nError: /Group[Guests]: Could not evaluate: Puppet::Util::Log requires a message\nNotice: Finished catalog run in 0.05 seconds\n\nThis change prevents both the loss of error detail, and triggering an\nextraneous / misleading message about Puppet::Util::Log:\n\nNotice: Compiled catalog for vagrant-2008r2.localdomain in environment production in 0.58 seconds\nError: Could not resolve name:\nError: /Stage[main]/Main/Group[Guests]/members: change from VAGRANT-2008R2\\Guest,VAGRANT-2008R2\\Administrator to VAGRANT-2008R2\\Guest,VAGRANT-2008R2\\Administrator, failed: Could not resolve name:\nNotice: Applied catalog in 0.03 seconds","distinct":true,"url":"https://api.github.com/repos/camlow325/puppet/commits/b351624624e62818cb69de927d24e3fe8dabb5b5"},{"sha":"d6385961c96d8084e3f47c964c85987a23ead4ed","author":{"email":"6eaaec1336f7acb13686b98a3495c3d683fe0810@github","name":"Ethan J. Brown"},"message":"Merge branch 'pr/4399' into 3.x\n\n* pr/4399:\n  (PUP-4386) Windows group invalid user error msgs","distinct":true,"url":"https://api.github.com/repos/camlow325/puppet/commits/d6385961c96d8084e3f47c964c85987a23ead4ed"},{"sha":"28c8ead5edf2c8d99b377fcbee7eb19ab6c88c93","author":{"email":"4a6636537ea38835a33f4e994a89d5506f14c67a@puppetlabs.com","name":"Jeremy Barlow"},"message":"(PUP-5470) Update handle_upstart test to case out Ubuntus by version\n\nThis commit modifies the confine block on the handle_upstart test to\nconfine out the execution of the ticket_14297_handle_upstart test based\non the platform version numbers, e.g., 15.04 or greater, as opposed to\njust the platform code name, e.g., Vivid or Werewolf.  This is needed\nbecause the platform field is populated for code names on some CI\npipelines - core Puppet - but by version number on other pipelines -\ne.g., Puppet Server.","distinct":false,"url":"https://api.github.com/repos/camlow325/puppet/commits/28c8ead5edf2c8d99b377fcbee7eb19ab6c88c93"},{"sha":"0279b836a8f94ad984ce1b20fca483268d0bbfed","author":{"email":"5f27a724a4143327a41b82eef2e1ecc03dda2555@gmail.com","name":"Nate Wolfe"},"message":"Merge pull request #4406 from camlow325/maint/stable/PUP-5470-update-handle-upstart-test-for-vivid-version-number\n\n(PUP-5470) Update handle_upstart test to case out Ubuntus by version","distinct":false,"url":"https://api.github.com/repos/camlow325/puppet/commits/0279b836a8f94ad984ce1b20fca483268d0bbfed"},{"sha":"cc4598f42c39629f650d416f41577e3151a59563","author":{"email":"c028c213ed5efcf30c3f4fc7361dbde0c893c5b7@puppetlabs.com","name":"Josh Cooper"},"message":"(PUP-5146) Update platform field to use version numbers\n\nPreviously, beaker tried to install puppet-agent on OSX 10.11 twice\nbecause the 'el' regex matched the elcapitan platform. When the 'el'\nregex was made to be more specific, beaker added PermitUserEnvironment\nto the pre 10.11 location, because beaker expects platform to contain\nversion numbers, not codenames.\n\nThis commit changes all OSX host configs to version numbers as\ncodenames, and makes the 'el' regex more specific, as 'el' could occur\nin a future OS name.\n\nIt also backports the osx-1011 node definition to stable, as we haven't\nmerged down yet.\n\nFor consistency, this commit also updates the platform identifier for\nsmoke testing gem installs.","distinct":false,"url":"https://api.github.com/repos/camlow325/puppet/commits/cc4598f42c39629f650d416f41577e3151a59563"},{"sha":"cb87cfdbc6636e6990868fb80a46d61e16557900","author":{"email":"7cdd076e25adef0e25d3fedc5490d7fb59f5b1c0@puppetlabs.com","name":"Kylo Ginsberg"},"message":"Merge pull request #4407 from joshcooper/ticket/stable/PUP-5146-osx-elcapitan\n\n(PUP-5146) Update platform field to use version numbers","distinct":false,"url":"https://api.github.com/repos/camlow325/puppet/commits/cb87cfdbc6636e6990868fb80a46d61e16557900"},{"sha":"8fc04b806202f4270056f602d3baf8065e538c09","author":{"email":"c028c213ed5efcf30c3f4fc7361dbde0c893c5b7@puppetlabs.com","name":"Josh Cooper"},"message":"Merge remote-tracking branch 'upstream/3.x' into stable\n\n* upstream/3.x:\n  (PUP-4386) Windows group invalid user error msgs","distinct":true,"url":"https://api.github.com/repos/camlow325/puppet/commits/8fc04b806202f4270056f602d3baf8065e538c09"},{"sha":"23a3278fb1ca92ee21246c4a0cd6561173df4df3","author":{"email":"c028c213ed5efcf30c3f4fc7361dbde0c893c5b7@puppetlabs.com","name":"Josh Cooper"},"message":"Merge remote-tracking branch 'upstream/stable'\n\n* upstream/stable:\n  (PUP-5146) Update platform field to use version numbers\n  (PUP-5470) Update handle_upstart test to case out Ubuntus by version\n  (PUP-4386) Windows group invalid user error msgs\n  (PUP-4516) Add signal name in exit message\n  (PUP-4516) Exit immediately when sent INT or TERM","distinct":true,"url":"https://api.github.com/repos/camlow325/puppet/commits/23a3278fb1ca92ee21246c4a0cd6561173df4df3"},{"sha":"d9b1dc5958143f361694ef7f6c223333d166ad6e","author":{"email":"c028c213ed5efcf30c3f4fc7361dbde0c893c5b7@puppetlabs.com","name":"Josh Cooper"},"message":"Merge remote-tracking branch 'upstream/master' into stable\n\n* upstream/master: (267 commits)\n  (maint) Update developer docs - adds parser_work\n  (PUP-4917) Windows Packages Use QuietDisplayName\n  (maint) Improve error message for xxx::data not found\n  (PUP-5035) Eliminate extra calls to resource.to_ral\n  (PUP-5035) Only add child resources for directory sources\n  (maint) Test using the correct catalog\n  (PUP-5278) Add test where value is found in global data binder\n  (PUP-5278) Include global data binding in explain output\n  (PUP-5395) Add test for regular lookup of 'lookup_options' hash.\n  (PUP-5395) Fix problem with lookup_options not found in module\n  (PUP-5145) Add node definition for OS X 10.11 El Capitan\n  (PUP-5097) Rename domainname trusted fact to domain\n  (maint) Include CentOS platform in mount util helpers\n  (PUP-5432) Use node_name to validate report test\n  (PUP-5441) Sanitize node's trusted info\n  (PUP-5441) Add methods to ignore/restore a context key\n  (PUP-5425) Fix bug with phantom node in PuppetDB\n  (PUP-5433) Set solaris zone teardown to exit cleanly\n  (PUP-5383) Don't restart puppetserver twice\n  (PUP-5339) Update mount tests to work in AIX\n  ...","distinct":true,"url":"https://api.github.com/repos/camlow325/puppet/commits/d9b1dc5958143f361694ef7f6c223333d166ad6e"}]}