All of lore.kernel.org
 help / color / mirror / Atom feed
* Fixes for Toaster broken on master (xmlrpc)
@ 2017-07-28  6:34 Reyna, David
  0 siblings, 0 replies; only message in thread
From: Reyna, David @ 2017-07-28  6:34 UTC (permalink / raw)
  To: toaster

Hi all,

* The recent changes to bitbake broke several parts of Toaster.

  "[bitbake-devel] [PATCH 5/6] server: Rework the server API so	process and xmlrpc servers coexist"

I have 2/3 fixed with the below patch. 

The final piece is for the ability to cancel builds, which broke when they deleted xmlrpc.py" and replaced it with "xmlrpcclient.py". I am working on that now.

* There are other oddities resulting from this bb change. For example for command line builds I sometimes get this (see Bug 11833).

  [build]$ bitbake core-image-minimal
  Gave up; Too many tries: timeout while attempting to communicate with bitbake server
  [build]$

Also, I cannot get "bitbake -m" nor "bitbake --status-only" to work:

  [build]$ bitbake -m --remote-server=0.0.0.0:51957 
  [build]$ bitbake --status-only --remote-server=127.0.0.1:51957
  Traceback (most recent call last):
  File "/opt/dreyna/toaster_master/poky/bitbake/bin/bitbake", line 48, in <module>
    cookerdata.CookerConfiguration()))
  File "/opt/dreyna/toaster_master/poky/bitbake/lib/bb/main.py", line 370, in bitbake_main
    server_connection, ui_module = setup_bitbake(configParams, configuration)
  File "/opt/dreyna/toaster_master/poky/bitbake/lib/bb/main.py", line 423, in setup_bitbake
    configParams.observe_only, configParams.xmlrpctoken)
  File "/opt/dreyna/toaster_master/poky/bitbake/lib/bb/server/xmlrpcclient.py", line 151, in connectXMLRPC
    raise e
  File "/opt/dreyna/toaster_master/poky/bitbake/lib/bb/server/xmlrpcclient.py", line 147, in connectXMLRPC
    connection = BitBakeXMLRPCServerConnection(host, port, (ip, 0), observer_only, featureset)
  File "/opt/dreyna/toaster_master/poky/bitbake/lib/bb/server/xmlrpcclient.py", line 89, in __init__
    self.events = uievent.BBUIEventQueue(self.connection, self.clientinfo)
  File "/opt/dreyna/toaster_master/poky/bitbake/lib/bb/ui/uievent.py", line 72, in __init__
    raise Exception(errmsg)
  Exception: Could not register UI event handler. Error: Cooker is busy: running, host 127.0.0.1, port  55744
  [build]$ 

- David

-----Original Message-----
From: toaster-bounces@yoctoproject.org [mailto:toaster-bounces@yoctoproject.org] On Behalf Of David Reyna
Sent: Thursday, July 27, 2017 7:09 PM
To: toaster@yoctoproject.org
Subject: [Toaster] [PATCH] toaster: move to new bitbake xmlrpc default

From: David Reyna <David.Reyna@windriver.com>

The bitbake option "-t SERVERTYPE" was deprecated and can be
removed since the desired XMLRPC listener now the default. Also,
the bitbake server port cannot be "-1" anymore and must be
explicitly passed. There is also a race condition for the bblock
file to not only be created but to actually be populated, so
a delay test loop is required (usually only one pass).

[YOCTO #11851]

Signed-off-by: David Reyna <David.Reyna@windriver.com>
---
 .../lib/toaster/bldcontrol/localhostbecontroller.py   | 19 +++++++++++++++----
 1 file changed, 15 insertions(+), 4 deletions(-)

diff --git a/bitbake/lib/toaster/bldcontrol/localhostbecontroller.py b/bitbake/lib/toaster/bldcontrol/localhostbecontroller.py
index 2916246..6142f7e 100644
--- a/bitbake/lib/toaster/bldcontrol/localhostbecontroller.py
+++ b/bitbake/lib/toaster/bldcontrol/localhostbecontroller.py
@@ -24,6 +24,7 @@ import os
 import sys
 import re
 import shutil
+import time
 from django.db import transaction
 from django.db.models import Q
 from bldcontrol.models import BuildEnvironment, BRLayer, BRVariable, BRTarget, BRBitbake
@@ -331,12 +332,22 @@ class LocalhostBEController(BuildEnvironmentController):
         bitbake = os.path.join(self.pokydirname, 'bitbake', 'bin', 'bitbake')
         toasterlayers = os.path.join(builddir,"conf/toaster-bblayers.conf")
         self._shellcmd('bash -c \"source %s %s; BITBAKE_UI="knotty" %s --read %s --read %s '
-                       '--server-only -t xmlrpc -B 0.0.0.0:0\"' % (oe_init,
+                       '--server-only -B 0.0.0.0:0\"' % (oe_init,
                        builddir, bitbake, confpath, toasterlayers), self.be.sourcedir)
 
         # read port number from bitbake.lock
         self.be.bbport = ""
         bblock = os.path.join(builddir, 'bitbake.lock')
+        # allow 10 seconds for bb lock file to appear but also be populated
+        for lock_check in range(10):
+            if not os.path.exists(bblock):
+                logger.debug("localhostbecontroller: waiting for bblock file to appear")
+                time.sleep(1)
+                continue
+            if 10 < os.stat(bblock).st_size:
+                break
+            logger.debug("localhostbecontroller: waiting for bblock content to appear")
+            time.sleep(1)
         with open(bblock) as fplock:
             for line in fplock:
                 if ":" in line:
@@ -365,10 +376,10 @@ class LocalhostBEController(BuildEnvironmentController):
         log = os.path.join(builddir, 'toaster_ui.log')
         local_bitbake = os.path.join(os.path.dirname(os.getenv('BBBASEDIR')),
                                      'bitbake')
-        self._shellcmd(['bash -c \"(TOASTER_BRBE="%s" BBSERVER="0.0.0.0:-1" '
+        self._shellcmd(['bash -c \"(TOASTER_BRBE="%s" BBSERVER="0.0.0.0:%s" '
                         '%s %s -u toasterui --token="" >>%s 2>&1;'
-                        'BITBAKE_UI="knotty" BBSERVER=0.0.0.0:-1 %s -m)&\"' \
-                        % (brbe, local_bitbake, bbtargets, log, bitbake)],
+                        'BITBAKE_UI="knotty" BBSERVER=0.0.0.0:%s %s -m)&\"' \
+                        % (brbe, self.be.bbport, local_bitbake, bbtargets, log, self.be.bbport, bitbake)],
                         builddir, nowait=True)
 
         logger.debug('localhostbecontroller: Build launched, exiting. '
-- 
1.9.1

-- 
_______________________________________________
toaster mailing list
toaster@yoctoproject.org
https://lists.yoctoproject.org/listinfo/toaster


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2017-07-28  6:34 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-07-28  6:34 Fixes for Toaster broken on master (xmlrpc) Reyna, David

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.