aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2023-08-30 21:39:36 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2023-09-02 07:46:32 +0100
commit0fc821a22f2b49cbd336d9658d92942c0d733be1 (patch)
tree18b7142ff2ff5a398724bd712a4a760537984852
parentfb19d647697d56e7554722abb5f4903c774d4213 (diff)
downloadbitbake-contrib-0fc821a22f2b49cbd336d9658d92942c0d733be1.tar.gz
command: Avoid time intensive distractions for ping
We noticed some users were seeing very slow ping response times which caused 'server timeout' issues. There were some function calls in runCommand which could be slow such as the inotify callback processing. Mark up the ping command such that it doesn't need configuration information, it is allowed on a readonly server and specifically skip the inofity processing too since ping would never need that. This will hopefully resolve various ping timeout issues that were being reported. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--lib/bb/command.py7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/bb/command.py b/lib/bb/command.py
index a355f56c6..b494f84a0 100644
--- a/lib/bb/command.py
+++ b/lib/bb/command.py
@@ -65,7 +65,7 @@ class Command:
command = commandline.pop(0)
# Ensure cooker is ready for commands
- if command != "updateConfig" and command != "setFeatures":
+ if command not in ["updateConfig", "setFeatures", "ping"]:
try:
self.cooker.init_configdata()
if not self.remotedatastores:
@@ -85,7 +85,8 @@ class Command:
if not hasattr(command_method, 'readonly') or not getattr(command_method, 'readonly'):
return None, "Not able to execute not readonly commands in readonly mode"
try:
- self.cooker.process_inotify_updates_apply()
+ if command != "ping":
+ self.cooker.process_inotify_updates_apply()
if getattr(command_method, 'needconfig', True):
self.cooker.updateCacheSync()
result = command_method(self, commandline)
@@ -169,6 +170,8 @@ class CommandsSync:
Allow a UI to check the server is still alive
"""
return "Still alive!"
+ ping.needconfig = False
+ ping.readonly = True
def stateShutdown(self, command, params):
"""