Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tests: java_async_profiler_musl_and_cpu fail on aarch64 #743

Open
pfilipko1 opened this issue Mar 23, 2023 · 0 comments
Open

tests: java_async_profiler_musl_and_cpu fail on aarch64 #743

pfilipko1 opened this issue Mar 23, 2023 · 0 comments

Comments

@pfilipko1
Copy link
Contributor

docker_client = <docker.client.DockerClient object at 0xffff8ac66860>                                                                                                                                                                                                          application_docker_image_configs = {'dotnet': {'runtime': 'dotnet'}, 'golang': {'runtime': 'golang'}, 'java': {'runtime': 'java'}, 'java_hotspot-jdk-11': {'buildargs': {'JAVA_BASE_IMAGE': 'openjdk:11-jdk'}, 'runtime': 'java'}, ...}, runtime = 'java'                      application_image_tag = 'musl'                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    @fixture                                                                                                                                                                                                                                                                       def application_docker_image(                                                                                                                                                                                                                                                      docker_client: DockerClient,                                                                                                                                                                                                                                                   application_docker_image_configs: Mapping[str, Dict[str, Any]],                                                                                                                                                                                                                runtime: str,                                                                                                                                                                                                                                                                  application_image_tag: str,                                                                                                                                                                                                                                                ) -> Iterable[Image]:                                                                                                                                                                                                                                                              if is_aarch64():                                                                                                                                                                                                                                                                   if application_image_tag == "j9" or application_image_tag == "zing":                                                                                                                                                                                                               pytest.xfail(                                                                                                                                                                                                                                                                      "Different JVMs are not supported on aarch64, see https://github.com/Granulate/gprofiler/issues/717"                                                                                                                                                                       )                                                                                                                                                                                                                                                                  #        if application_image_tag == "musl":                                                                                                                                                                                                                                   #            pytest.xfail("musl is not supported on aarch64, see https://github.com/Granulate/gprofiler/issues/714")                                                                                                                                                       >       yield _build_image(docker_client, **application_docker_image_configs[image_name(runtime, application_image_tag)])                                                                                                                                                                                                                                                                                                                                                                                                                                     tests/conftest.py:360:                                                                                                                                                                                                                                                         _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _tests/conftest.py:237: in _build_image                                                                                                                                                                                                                                             return docker_client.images.build(path=str(base_path), rm=True, dockerfile=str(base_path / dockerfile), **kwargs)[0]                                                                                                                                                       _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <docker.models.images.ImageCollection object at 0xffff8ab5b8b0>, kwargs = {'dockerfile': '/home/ubuntu/gprofiler/tests/containers/java/musl.Dockerfile', 'path': '/home/ubuntu/gprofiler/tests/containers/java', 'rm': True}                                            resp = <generator object APIClient._stream_helper at 0xffff89175bd0>, last_event = {'stream': '\x1b[91mexec /bin/sh: exec format error\n\x1b[0m'}, image_id = 'd49bf8c44670834d3dade17f8b84d709e7db47f1887f671a0e098bafa9bae49f'                                               result_stream = <itertools._tee object at 0xffff8ab40b40>, internal_stream = <itertools._tee object at 0xffff8ab40800>                                                                                                                                                         chunk = {'error': "The command '/bin/sh -c javac Fibonacci.java' returned a non-zero code: 1", 'errorDetail': {'code': 1, 'message': "The command '/bin/sh -c javac Fibonacci.java' returned a non-zero code: 1"}}, match = None                                                                                                                                                                                                                                                                                                                                  def build(self, **kwargs):                                                                                                                                                                                                                                                         """                                                                                                                                                                                                                                                                            Build an image and return it. Similar to the ``docker build``                                                                                                                                                                                                                  command. Either ``path`` or ``fileobj`` must be set.

        If you have a tar file for the Docker build context (including a
        Dockerfile) already, pass a readable file-like object to ``fileobj``
        and also pass ``custom_context=True``. If the stream is compressed
        also, set ``encoding`` to the correct value (e.g ``gzip``).

        If you want to get the raw output of the build, use the
        :py:meth:`~docker.api.build.BuildApiMixin.build` method in the
        low-level API.

        Args:
            path (str): Path to the directory containing the Dockerfile
            fileobj: A file object to use as the Dockerfile. (Or a file-like
                object)
            tag (str): A tag to add to the final image
            quiet (bool): Whether to return the status
            nocache (bool): Don't use the cache when set to ``True``                                                                                                                                                                                                                       rm (bool): Remove intermediate containers. The ``docker build``
                command now defaults to ``--rm=true``, but we have kept the old                                                                                                                                                                                                                default of `False` to preserve backward compatibility
            timeout (int): HTTP timeout
            custom_context (bool): Optional if using ``fileobj``
            encoding (str): The encoding for a stream. Set to ``gzip`` for                                                                                                                                                                                                                     compressing
            pull (bool): Downloads any updates to the FROM image in Dockerfiles
            forcerm (bool): Always remove intermediate containers, even after
                unsuccessful builds                                                                                                                                                                                                                                                        dockerfile (str): path within the build context to the Dockerfile                                                                                                                                                                                                              buildargs (dict): A dictionary of build arguments                                                                                                                                                                                                                              container_limits (dict): A dictionary of limits applied to each
                container created by the build process. Valid keys:

                - memory (int): set memory limit for build
                - memswap (int): Total memory (memory + swap), -1 to disable
                    swap
                - cpushares (int): CPU shares (relative weight)
                - cpusetcpus (str): CPUs in which to allow execution, e.g.,
                    ``"0-3"``, ``"0,1"``
            shmsize (int): Size of `/dev/shm` in bytes. The size must be
                greater than 0. If omitted the system uses 64MB
            labels (dict): A dictionary of labels to set on the image
            cache_from (list): A list of images used for build cache
                resolution
            target (str): Name of the build-stage to build in a multi-stage
                Dockerfile
            network_mode (str): networking mode for the run commands during
                build
            squash (bool): Squash the resulting images layers into a
                single layer.
            extra_hosts (dict): Extra hosts to add to /etc/hosts in building
                containers, as a mapping of hostname to IP address.
            platform (str): Platform in the format ``os[/arch[/variant]]``.
            isolation (str): Isolation technology used during build.
                Default: `None`.
            use_config_proxy (bool): If ``True``, and if the docker client
                configuration file (``~/.docker/config.json`` by default)
                contains a proxy configuration, the corresponding environment
                variables will be set in the container being built.
        Returns:
            (tuple): The first item is the :py:class:`Image` object for the
                image that was build. The second item is a generator of the
                build logs as JSON-decoded objects.

        Raises:
            :py:class:`docker.errors.BuildError`
                If there is an error during the build.
            :py:class:`docker.errors.APIError`
                If the server returns any other error.
            ``TypeError``
                If neither ``path`` nor ``fileobj`` is specified.
        """
        resp = self.client.api.build(**kwargs)
        if isinstance(resp, six.string_types):
            return self.get(resp)
        last_event = None
        image_id = None
        result_stream, internal_stream = itertools.tee(json_stream(resp))
        for chunk in internal_stream:
            if 'error' in chunk:
>               raise BuildError(chunk['error'], result_stream)
E               docker.errors.BuildError: The command '/bin/sh -c javac Fibonacci.java' returned a non-zero code: 1

/usr/local/lib/python3.10/dist-packages/docker/models/images.py:287: BuildError
============================================================================================================================== warnings summary ===============================================================================================================================test_java.py: 75 warnings
  /usr/local/lib/python3.10/dist-packages/docker/utils/utils.py:52: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
    s1 = StrictVersion(v1)

test_java.py: 75 warnings
  /usr/local/lib/python3.10/dist-packages/docker/utils/utils.py:53: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
    s2 = StrictVersion(v2)

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================================================================================================================== short test summary info ===========================================================================================================================
ERROR tests/test_java.py::test_java_async_profiler_musl_and_cpu[musl-True] - docker.errors.BuildError: The command '/bin/sh -c javac Fibonacci.java' returned a non-zero code: 1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant