Hi Chen, Thanks for report, may be related to the name of the NIC inside qemu. I will investigate.
Regards!, Anibal On Tue, 2 Jul 2019 at 21:08, ChenQi <[email protected]> wrote: > Could you please help check if the following failures are related to > this patch series? > > https://autobuilder.yoctoproject.org/typhoon/#/builders/47/builds/785/steps/7/logs/step1c > > https://autobuilder.yoctoproject.org/typhoon/#/builders/63/builds/766/steps/7/logs/step1c > > Regards, > Chen Qi > > On 07/02/2019 05:23 AM, Aníbal Limón wrote: > > In order to support multiple tap devices in the same qemu virtual > > machine. > > > > Signed-off-by: Aníbal Limón <[email protected]> > > --- > > scripts/runqemu | 50 +++++++++++++++++++++++++------------------------ > > 1 file changed, 26 insertions(+), 24 deletions(-) > > > > diff --git a/scripts/runqemu b/scripts/runqemu > > index 4079f2b17d..38dd1c30d9 100755 > > --- a/scripts/runqemu > > +++ b/scripts/runqemu > > @@ -181,8 +181,7 @@ class BaseConfig(object): > > self.audio_enabled = False > > self.tcpserial_portnum = '' > > self.custombiosdir = '' > > - self.lock = '' > > - self.lock_descriptor = None > > + self.lock_descriptors = {} > > self.bitbake_e = '' > > self.snapshot = False > > self.wictypes = ('wic', 'wic.vmdk', 'wic.qcow2', 'wic.vdi') > > @@ -204,30 +203,32 @@ class BaseConfig(object): > > # avoid cleanup twice > > self.cleaned = False > > > > - def acquire_lock(self, error=True): > > - logger.debug("Acquiring lockfile %s..." % self.lock) > > + def acquire_lock(self, lock, error=True): > > + logger.debug("Acquiring lockfile %s..." % lock) > > + descriptor = None > > try: > > - self.lock_descriptor = open(self.lock, 'w') > > - fcntl.flock(self.lock_descriptor, > fcntl.LOCK_EX|fcntl.LOCK_NB) > > + descriptor = open(lock, 'w') > > + fcntl.flock(descriptor, fcntl.LOCK_EX|fcntl.LOCK_NB) > > except Exception as e: > > - msg = "Acquiring lockfile %s failed: %s" % (self.lock, e) > > + msg = "Acquiring lockfile %s failed: %s" % (lock, e) > > if error: > > logger.error(msg) > > else: > > logger.info(msg) > > - if self.lock_descriptor: > > - self.lock_descriptor.close() > > - self.lock_descriptor = None > > + if descriptor: > > + descriptor.close() > > + descriptor = None > > return False > > + self.lock_descriptors[lock] = descriptor > > return True > > > > - def release_lock(self): > > - if self.lock_descriptor: > > - logger.debug("Releasing lockfile for tap device '%s'" % > self.tap) > > - fcntl.flock(self.lock_descriptor, fcntl.LOCK_UN) > > - self.lock_descriptor.close() > > - os.remove(self.lock) > > - self.lock_descriptor = None > > + def release_lock(self, lock): > > + if self.lock_descriptors[lock]: > > + logger.debug("Releasing lockfile for tap device '%s'" % > lock) > > + fcntl.flock(self.lock_descriptors[lock], fcntl.LOCK_UN) > > + self.lock_descriptors[lock].close() > > + os.remove(lock) > > + self.lock_descriptors[lock] = None > > > > def get(self, key): > > if key in self.d: > > @@ -1016,8 +1017,8 @@ class BaseConfig(object): > > if os.path.exists('%s.skip' % lockfile): > > logger.info('Found %s.skip, skipping %s' % (lockfile, > p)) > > continue > > - self.lock = lockfile + '.lock' > > - if self.acquire_lock(error=False): > > + lock = lockfile + '.lock' > > + if self.acquire_lock(lock, error=False): > > tap = p > > logger.info("Using preconfigured tap device %s" % tap) > > logger.info("If this is not intended, touch %s.skip > to make runqemu skip %s." %(lockfile, tap)) > > @@ -1035,8 +1036,8 @@ class BaseConfig(object): > > cmd = ('sudo', self.qemuifup, str(uid), str(gid), > self.bindir_native) > > tap = subprocess.check_output(cmd).decode('utf-8').strip() > > lockfile = os.path.join(lockdir, tap) > > - self.lock = lockfile + '.lock' > > - self.acquire_lock() > > + lock = lockfile + '.lock' > > + self.acquire_lock(lock) > > self.cleantap = True > > logger.debug('Created tap: %s' % tap) > > > > @@ -1268,8 +1269,8 @@ class BaseConfig(object): > > cmds = shlex.split(cmd) > > logger.info('Running %s\n' % cmd) > > pass_fds = [] > > - if self.lock_descriptor: > > - pass_fds = [self.lock_descriptor.fileno()] > > + if self.lock_descriptors.keys(): > > + pass_fds = [self.lock_descriptors[lock].fileno() for lock > in self.lock_descriptors.keys()] > > process = subprocess.Popen(cmds, stderr=subprocess.PIPE, > pass_fds=pass_fds) > > self.qemupid = process.pid > > retcode = process.wait() > > @@ -1291,7 +1292,8 @@ class BaseConfig(object): > > cmd = ('sudo', self.qemuifdown, self.tap, > self.bindir_native) > > logger.debug('Running %s' % str(cmd)) > > subprocess.check_call(cmd) > > - self.release_lock() > > + for lock in self.lock_descriptors.keys(): > > + self.release_lock(lock) > > > > if self.nfs_running: > > logger.info("Shutting down the userspace NFS server...") > > >
-- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
