<div dir="ltr">Hello to all,<div>As the error might require more analysis, I copy/paste the issue mentioned on irc.</div><div><br></div><div>From my understanding, </div><div>when an error appears in the buildbot<->db conversation to add a log line:</div><div><a href="https://github.com/buildbot/buildbot/blob/master/master/buildbot/process/log.py#L76">https://github.com/buildbot/buildbot/blob/master/master/buildbot/process/log.py#L76</a></div><div><br></div><div>the step calling addStdout will not be able to finish, as it will wait </div><div>for the lock to be released, forever.</div><div><br></div><div>I see two solutions for now:</div><div>1. return the deferred in log.addStdout calls, and let the developper</div><div>    handle the issue if there is any. It has the drawback of changing</div><div>    the way steps are implemented:</div><div>    before: </div><div>        log.addStdout</div><div>        log.addStdout</div><div>    after: </div><div>        yield log.addStdout</div><div>        yield log.addStdout</div><div><br></div><div>2. implement a retry mechanism in addRawLines (with a random sleep between)</div><div>    and raise an error if the issue is not solved (that the developer will handle or not). </div><div>    This aims at reducing the number of discarded logs so that they could become tolerable.</div><div><br></div><div>gracinet (correct me if i'm wrong) prefers 2, inputs are welcome :)</div><div><br></div><div><br></div><div>P.S: </div><div>I'm currently testing solution 2 in a use case that stresses the logs long enough</div><div>to make the db (mysql innodb) report the following issues:</div><div><br></div><div>- sqlalchemy.exc.OperationalError: (OperationalError) (1213, 'Deadlock found when trying to get lock; try restarting transaction') None None<br></div><div><div><span style="white-space:pre">- </span>sqlalchemy.exc.OperationalError: (OperationalError) (1213, 'Deadlock found when trying to get lock; try restarting transaction') 'INSERT INTO logchunks (logid, first_line, last_line, content, compressed) VALUES (%s, %s, %s, %s, %s)' (924L, 315L, 315L, 'x\xdaKU\x80\x02\xbf|\x85\x92\xcc\xdcT\x85\xaa\xfc\xbcT\x85\xcc\xbc\xb4| \xa1P\x92\x91Y\xac\x90\x92X\x92\xaa\xa0ad`h\xa6k`\xa2kd\xa1```\x05F\x9a:\n\xc5\xa9%%\x99y\xe9\n%\xf9\n\xa1!\xce\x00BM\x15\x96', 1)</div></div><div><br></div><div><br clear="all"><div><br></div>-- <br><div class="gmail_signature">Ion</div>
</div></div>