in core/lib/payload/copy.py [0:0]
def ddl_guard(self):
"""
If there're already too many concurrent queries running, it's probably
a bad idea to run DDL. Wait for some time until they finished or
we timed out
"""
for _ in range(self.ddl_guard_attempts):
result = self.query(sql.show_status, ("Threads_running",))
if result:
threads_running = int(result[0]["Value"])
if threads_running > self.max_running_before_ddl:
log.warning(
"Threads running: {}, bigger than allowed: {}. "
"Sleep 1 second before check again.".format(
threads_running, self.max_running_before_ddl
)
)
time.sleep(1)
else:
log.debug(
"Threads running: {}, less than: {}. We are good "
"to go".format(threads_running, self.max_running_before_ddl)
)
return
log.error(
"Hit max attempts: {}, but the threads running still don't drop"
"below: {}.".format(self.ddl_guard_attempts, self.max_running_before_ddl)
)
raise OSCError("DDL_GUARD_FAILED")