<classResult _class='hudson.tasks.junit.ClassResult'><child><age>0</age><className>OmeroPy.test.integration.test_mail.TestMail</className><duration>5.326</duration><failedSince>0</failedSince><name>testComment</name><properties></properties><skipped>false</skipped><status>PASSED</status></child><child><age>1</age><className>OmeroPy.test.integration.test_mail.TestMail</className><duration>12.32</duration><errorDetails>omero.LockTimeout: exception ::omero::LockTimeout
{
    serverStackTrace = None
    serverExceptionClass = None
    message = Command unfinished after 5.0 seconds
    backOff = 5000
    seconds = 5
}</errorDetails><errorStackTrace>self = &lt;test.integration.test_mail.TestMail object at 0x7f435674a590&gt;

    def testEveryone(self):
        self.skipIfNot()
        uuid = self.uuid()
        req = self.mailRequest(subject=uuid,
                               body="test",
                               everyone=True)
        try:
&gt;           self.root.submit(req)

test/integration/test_mail.py:74: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../../../../.venv3/lib64/python3.11/site-packages/omero/clients.py:966: in submit
    return self.waitOnCmd(
../../../../.venv3/lib64/python3.11/site-packages/omero/clients.py:989: in waitOnCmd
    callback.loop(loops, ms)  # Throw LockTimeout
    ^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = object #0 (::omero::cmd::CmdCallback)
{
}, loops = 10, ms = 500

    def loop(self, loops, ms):
        """
        Calls block(long) "loops" number of times with the "ms"
        argument. This means the total wait time for the delete to occur
        is: loops X ms. Sensible values might be 10 loops for 500 ms, or
        5 seconds.
    
        @param loops Number of times to call block(long)
        @param ms Number of milliseconds to pass to block(long
        @throws omero.LockTimeout if block(long) does not return
        a non-null value after loops calls.
        """
    
        count = 0
        found = False
        while count &lt; loops:
            count += 1
            found = self.block(ms)
            if found:
                break
    
        if found:
            return self.getResponse()
        else:
            waited = (ms / 1000.0) * loops
&gt;           raise omero.LockTimeout(
                None, None, "Command unfinished after %s seconds" % waited,
                5000, int(waited))
E           omero.LockTimeout: exception ::omero::LockTimeout
E           {
E               serverStackTrace = None
E               serverExceptionClass = None
E               message = Command unfinished after 5.0 seconds
E               backOff = 5000
E               seconds = 5
E           }

../../../../.venv3/lib64/python3.11/site-packages/omero/callbacks.py:258: LockTimeout</errorStackTrace><failedSince>9</failedSince><name>testEveryone</name><properties></properties><skipped>false</skipped><status>FAILED</status></child><child><age>0</age><className>OmeroPy.test.integration.test_mail.TestMail</className><duration>2.44</duration><failedSince>0</failedSince><name>testUserAdd</name><properties></properties><skipped>false</skipped><status>PASSED</status></child><failCount>1</failCount><name>TestMail</name><passCount>2</passCount><skipCount>0</skipCount></classResult>