Hello,

I have been doing builds using a Docker setup on a VMware ESXi 6.5 virtual 
machine running Ubuntu 18.04 for the past year.  I have been asked to move to 
building on a VM in Azure.  I created a VM in Azure using the Ubuntu 18.04 
image from Canonical.  When I try to do the same build in Azure, I get the 
following error messages:

=== Start ERROR messages ===
ERROR: docker-base-image-1.0-r0 do_image_wic: Function failed: do_image_wic 
(log file is located at 
/home/blah/build-0.0.13/tmp-glibc/work/intel_corei7_64-oe-linux/foo/1.0-r0/temp/log.do_image_wic.44033)
ERROR: Logfile of failure stored in: 
/home/blah/build-0.0.13/tmp-glibc/work/intel_corei7_64-oe-linux/foo/1.0-r0/temp/log.do_image_wic.44033
| OSError: [Errno 22] Invalid argument
| wic.filemap.Error: cannot get block size for 
'/home/blah/build-0.0.13/tmp-glibc/work/intel_corei7_64-oe-linux/foo/1.0-r0/deploy-foo-image-complete/foo-intel-corei7-64-0.0.13/tmp.wic.5lmon88k/boot.img':
 [Errno 22] Invalid argument
| ERROR: Function failed: do_image_wic (log file is located at 
/home/blah/build-0.0.13/tmp-glibc/work/intel_corei7_64-oe-linux/foo/1.0-r0/temp/log.do_image_wic.44033)
ERROR: Task 
(/home/blah/meta-stryker/common/recipes-common/images/foo.bb:do_image_wic) 
failed with exit code '1'
Summary: There was 1 ERROR message shown, returning a non-zero exit code.
ERROR:   Ext4 filesystem name 
(/home/blah/build-0.0.13/tmp-glibc/deploy/images/intel-corei7-64/foo-intel-corei7-64-0.0.13.rootfs.ext4)
 does not exist.
=== End ERROR messages ===

The log.do_image_wic.44033 has the following stack trace.

=== Start log.do_image_wic.44033 stack trace ===
DEBUG: Python function extend_recipe_sysroot finished
DEBUG: Executing shell function do_image_wic
INFO: Creating image(s)...

WARNING: overhead-factor was specified, but size was not, so bitbake variables 
will be used for the size. In this case both IMAGE_OVERHEAD_FACTOR and 
--overhead-factor will be applied
Traceback (most recent call last):
  File "/home/blah/oe-core/scripts/lib/wic/filemap.py", line 97, in __init__
    self.block_size = get_block_size(self._f_image)
  File "/home/bruce/oe-core/scripts/lib/wic/filemap.py", line 40, in 
get_block_size
    binary_data = fcntl.ioctl(file_obj, 2, struct.pack('I', 0))
OSError: [Errno 22] Invalid argument

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/blah/oe-core/scripts/wic", line 534, in <module>
    sys.exit(main(sys.argv[1:]))
  File "/home/blah/oe-core/scripts/wic", line 529, in main
    return hlp.invoke_subcommand(args, parser, hlp.wic_help_usage, subcommands)
  File "/home/blah/oe-core/scripts/lib/wic/help.py", line 98, in 
invoke_subcommand
    subcmd[0](args, usage)
  File "/home/blah/oe-core/scripts/wic", line 234, in wic_create_subcommand
    native_sysroot, options)
  File "/home/blah/oe-core/scripts/lib/wic/engine.py", line 202, in wic_create
    plugin.do_create()
  File "/home/blah/oe-core/scripts/lib/wic/plugins/imager/direct.py", line 101, 
in do_create
    self.assemble()
  File "/home/blah/oe-core/scripts/lib/wic/plugins/imager/direct.py", line 218, 
in assemble
    self._image.assemble()
  File "/home/blah/oe-core/scripts/lib/wic/plugins/imager/direct.py", line 605, 
in assemble
    sparse_copy(source, self.path, seek=part.start * self.sector_size)
  File "/home/blah/oe-core/scripts/lib/wic/filemap.py", line 552, in sparse_copy
    fmap = api(src_fname)
  File "/home/blah/oe-core/scripts/lib/wic/filemap.py", line 534, in filemap
    return FilemapFiemap(image, log)
  File "/home/blah/oe-core/scripts/lib/wic/filemap.py", line 352, in __init__
    _FilemapBase.__init__(self, image, log)
  File "/home/blah/oe-core/scripts/lib/wic/filemap.py", line 100, in __init__
    % (self._image_path, err))
wic.filemap.Error: cannot get block size for 
'/home/blah/build-0.0.13/tmp-glibc/work/intel_corei7_64-oe-linux/foo/1.0-r0/deploy-foo-image-complete/foo-intel-corei7-64-0.0.13/tmp.wic.5lmon88k/boot.img':
 [Errno 22] Invalid argument
WARNING: exit code 1 from a shell command.
ERROR: Function failed: do_image_wic (log file is located at 
/home/blah/build-0.0.13/tmp-glibc/work/intel_corei7_64-oe-linux/foo/1.0-r0/temp/log.do_image_wic.44033)
=== End log.do_image_wic.44033 stack trace ===

For some reason, it looks like it appears on the Azure VM the build is looking 
for boot.img in a temporary directory, 
.../tmp-glibc/work/intel_corei7_64-oe-linux/foo/1.0-r0/deploy-foo-complete/foo-intel-corei7-64-0.0.13/tmp.wic.5lmon88k.
  The tmp.wic.5lmon88k does not exist.  However, in the 
.../foo-intel-corei7-64-0.0.13 there is a boot.img file.

So, I'm very confused as to why my build works on my VMware ESXi 6.5 VM but not 
on the Azure VM.  I'm using docker-ce 18.09.1 on my VMware ESXi 6.5 VM.  I am 
using docker-ce 19.03.3 on my Azure VM.  The Dockerfile and all of the files 
I'm copying into the Docker image are the same.  I've done side by side builds. 
 So, I'm very confident I'm downloading the same OpenEmbedded GIT repos.  I'm 
guessing I'm missing something somewhere, but I do not know where.

If anyone can help me understand this, and give me guidance on how to fix this, 
it would be greatly appreciated.

Thank you

Lewis Muhlenkamp

Follow this link to read our Privacy 
Statement<https://www.stryker.com/content/stryker/gb/en/legal/global-policy-statement.html/>
-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to