Hi Ed, I have no idea if that change will fix anything - but if so, I'll be glad to add it in!
-Yaron On Sun, Dec 13, 2015 at 4:14 PM, Ed <[email protected]> wrote: > Hi, > > I went over the code and noticed that DB_SLAVE was being used in read-only > queries that are part of update processes. I do not know if this is what > generated the issues I'm experiencing (I'm not running replication). > However, it could generate race conditions in a replicated environment as > the slave would not always have the most current information. Therefore I > updated the calls to DB_MASTER for the functions that seemed to be called > as part of an update/delete/insert sequence. That left only one or two > instances using DB_SLAVE. So I updated all calls to DB_MASTER for good > measure -- in case I had missed something. > > I will run it like this for a while and see if we get more duplicate > entries in the cargo tables. > > Thoughts? > > > On Sun, Dec 13, 2015 at 8:39 AM, Yaron Koren <[email protected]> wrote: > > > Yes, it probably is due to a race condition. > > > > Hopefully, there's a better solution than using unbuffered queries - if > > that is a solution. > > > > -Yaron > > > > On Sun, Dec 13, 2015 at 12:51 AM, Ed <[email protected]> wrote: > > > > > Hi, > > > > > > The duplicate rows seem to happen as a result of a race condition when > > the > > > new record has been queued and somewhere in the process we reedit or > > > regenerate and queue a second one. > > > > > > I'm not sure if it is buffering, using multiple connections, something > > > else. > > > > > > I was going to mess around with the DBO_NOBUFFER setting but the > comments > > > in "includes/db/Database.php" are a bit ominous: > > > > > > * Unbuffered queries are very troublesome in MySQL: > > > * > > > * - If another query is executed while the first query is > > being > > > read > > > * out, the first query is killed. This means you can't > call > > > normal > > > * MediaWiki functions while you are reading an unbuffered > > > query result > > > * from a normal wfGetDB() connection. > > > * > > > * - Unbuffered queries cause the MySQL server to use large > > > amounts of > > > * memory and to hold broad locks which block other > queries. > > > > > > Thoughts? > > > > > _______________________________________________ > > MediaWiki-l mailing list > > To unsubscribe, go to: > > https://lists.wikimedia.org/mailman/listinfo/mediawiki-l > > > _______________________________________________ > MediaWiki-l mailing list > To unsubscribe, go to: > https://lists.wikimedia.org/mailman/listinfo/mediawiki-l > -- WikiWorks · MediaWiki Consulting · http://wikiworks.com _______________________________________________ MediaWiki-l mailing list To unsubscribe, go to: https://lists.wikimedia.org/mailman/listinfo/mediawiki-l
