Comment 25 for bug 1720251

Revision history for this message
Tim Penhey (thumper) wrote :

OK, I think we've found the culprit.

I provided a custom binary today with extra logging of the txn ops for any transaction that touched the controllers "e" document. And what we ended up with was somewhat eye-opening.

The txn.op said to add "1" and "2" to both "machineids" and "votingmachineids".
The rs.Config() in mongo showed only one machine.
The document in the database had the observed symptom of
{"machineids": ["0"], "votingmachineids": ["0", "1", "2"}]}.
The txns collection said that it had added "1" and "2" to "machineids" -- and only "machineids". This was clearly a lie.

A big key here was the written out transaction showed a top level key of "$addToSet", and the txn.op had two of these.

It seemed that somehow during the execution process the two commands got flattened to one.