Skip to content

Commit

Permalink
Merge pull request sequelize#1298 from janmeier/badPooling
Browse files Browse the repository at this point in the history
Fix for connection errors when using replication
  • Loading branch information
sdepold committed Jan 26, 2014
2 parents 2720578 + 7ad4892 commit fdc5859
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 7 deletions.
10 changes: 8 additions & 2 deletions lib/dialects/mariadb/connector-manager.js
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,10 @@ module.exports = (function() {
var config = self.config.replication.read[reads++]

connect.call(self, function (err, connection) {
connection.queryType = 'read'
if (connection) {
connection.queryType = 'read'
}

done(null, connection)
}, config)
},
Expand All @@ -106,7 +109,10 @@ module.exports = (function() {
name: 'sequelize-write',
create: function (done) {
connect.call(self, function (err, connection) {
connection.queryType = 'write'
if (connection) {
connection.queryType = 'write'
}

done(null, connection)
}, self.config.replication.write)
},
Expand Down
15 changes: 10 additions & 5 deletions lib/dialects/mysql/connector-manager.js
Original file line number Diff line number Diff line change
Expand Up @@ -88,8 +88,11 @@ module.exports = (function() {
var config = self.config.replication.read[reads++];

connect.call(self, function (err, connection) {
connection.queryType = 'read'
done(null, connection)
if (connection) {
connection.queryType = 'read'
}

done(err, connection)
}, config);
},
destroy: function(client) {
Expand All @@ -104,8 +107,11 @@ module.exports = (function() {
name: 'sequelize-write',
create: function (done) {
connect.call(self, function (err, connection) {
connection.queryType = 'write'
done(null, connection)
if (connection) {
connection.queryType = 'read'
}

done(err, connection)
}, self.config.replication.write);
},
destroy: function(client) {
Expand Down Expand Up @@ -296,7 +302,6 @@ module.exports = (function() {
}

var connection = mysql.createConnection(connectionConfig);

connection.connect(function(err) {
if (err) {
switch(err.code) {
Expand Down
16 changes: 16 additions & 0 deletions test/sequelize.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,22 @@ describe(Support.getTestDialectTeaser("Sequelize"), function () {
done()
})
})

it('triggers the error event when using replication', function (done) {
new Sequelize('sequelize', null, null, {
replication: {
read: {
host: 'localhost',
username: 'omg',
password: 'lol'
}
}
}).authenticate()
.complete(function(err, result) {
expect(err).to.not.be.null
done()
})
})
})
})
}
Expand Down

0 comments on commit fdc5859

Please sign in to comment.