Issue #4694 has been updated by Markus Roberts.

Status changed from Unreviewed to Accepted

We aren't sure.  There are a nest of issues here, and three of us have been 
taking turns beating our heads against them for the last two weeks.  At the 
most abstract, the problem can be expressed as "various libraries have slightly 
conflicting ideas about who is responsible for thread/process safety and 
related concurrency issues" but that isn't enough to fix it.

----------------------------------------
Bug #4694: Storeconfig issue with AR/MySQL
http://projects.puppetlabs.com/issues/4694

Author: Andrew Forgue
Status: Accepted
Priority: Normal
Assignee: 
Category: stored configuration
Target version: 0.25.6
Affected version: 0.25.5
Keywords: stored configs 
Branch: 


We're having an issue with storeconfigs generating random MySQL disconnect 
errors.  This is not related to #2880 or #2816.  Though I suspect that the 
underlying cause may be the same.

First: 
     err: Mysql::Error: MySQL server has gone away: INSERT INTO `fact_values` 
(...)
    
Second:
    err: Puppet::Parser::Compiler failed with error 
ActiveRecord::StatementInvalid: Mysql::Error: Lost connection to MySQL server 
during query: SELECT * FROM `param_values` WHERE (`param_values`.resource_id = 
1136908 AND (param_name_id = 133)) on node xxx.

Third:
    err: Mysql::Error: Lost connection to MySQL server during query: SELECT 
t.id, t.resource_id, p.name FROM resource_tags as t INNER JOIN resources r ON 
t.resource_id=r.id INNER JOIN puppet_tags as p ON t.puppet_tag_id=p.id WHERE 
r.host_id=531

So they're coming from all over the place.  I've verified that in the code 
we're using, reconnect is set to true but it's not reconnecting.  Here's the 
versions:

* Puppet 0.25.5
* Rails 2.3.8
* Mongrel 1.1.5
* OS X Leopard (server)
* MySQL gem 2.8.1
* MySQL client library 5.0.82
* MySQL server 5.1.48
* Ruby 1.8.7-p22

Here's a summary of a single incident -- puppet server (puppet) to SQL server 
conversation:

    Puppet -> SQL: SYN
    Puppet <- SQL: SYN+ACK
    Puppet -> SQL: ACK

So the TCP connection is open, 

1. MySQL Login successful
1. SET NAMES
1. SELECT * FROM HOSTS where hosts.name='hostname'
1. SELECT Facts for host
1. executes a bunch of queries for facts
1. Runs SELECT `param_names`.* FROM `param_names`  INNER JOIN `param_values` ON 
`param_names`.id = `param_values`.param_name_id    WHERE 
((`param_values`.resource_id = 943831))
1. Server returns results and then the client issues a quit (!)?
1. Socket is shutdown, client sends FIN+ACK, server responds with FIN+ACK
1. Server sends RST to client twice.

I've been working on this for a day or 2 and I have no idea what could be 
causing this.  I don't see any pattern.


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