BOINC/boinc-client-docker

boinc docker exits immediately after running command (s390x z/OS suse)

sunk818 opened this issue · 18 comments

I ran the following command on s390x architecture (IBM z/OS) mainframe using SUSE:

docker run -d \
  --name boinc \
  --net=host \
  -v /opt/appdata/boinc:/var/lib/boinc-client \
  -e BOINC_GUI_RPC_PASSWORD="123" \
  -e BOINC_CMD_LINE_OPTIONS="--allow_remote_gui_rpc" \
  boinc/client
~> sudo docker ps -a
CONTAINER ID        IMAGE               COMMAND                 CREATED             STATUS                    PORTS               NAMES
5df225cbc86b        boinc/client        "start-boinc.sh"        17 hours ago        Exited (1) 17 hours ago                       laughing_visvesvaraya
:~> sudo docker logs 5df225cbc86b
standard_init_linux.go:185: exec user process caused "exec format error"

Does this mean the docker image is not compatible with the s390x architecture?

~> uname -a
Linux linux1-marist-03 4.4.103-94.6-default #1 SMP Tue Jan 9 12:53:49 UTC 2018 (69ac2b4) s390x s390x s390x GNU/Linux
:~> cat /etc/os-release
NAME="SLES"
VERSION="12-SP3"
VERSION_ID="12.3"
PRETTY_NAME="SUSE Linux Enterprise Server 12 SP3"
ID="sles"
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:suse:sles:12:sp3"

The issue must be with the s390x architecture. I created a new image for you. When it's compiled, I'll let you know the details.

Currently I can't even run the standard s390x Ubuntu image on my system.
The command I tried: sudo docker run -ti s390x/ubuntu:18.04 bash
The error message I got: standard_init_linux.go:190: exec user process caused "exec format error"

Thank you for trying. I know this is rare architecture to work with s390x and even the OS (enterprise) is not so common like RHEL Linux.

Does Docker care what kind of line ending is used? For example, Windows hex is 0D0A while Unix is 0A for line endings. Second article mentions XML may not be processed correctly depending on how line endings are processed?

Is this helpful? https://www.lewuathe.com/exec-format-error-in-docker-container.html
or https://blog.hompus.nl/2018/01/24/docker-run-throws-exec-user-process-errors/

Could you try building the image on your system.
Here is the command:
docker build -t boinc/client:s390x -f Dockerfile.s390x .

Attached is the output. I did a git pull then ran the command you asked.

I am not sure if the docker container rebuilt correctly. I got the same error when I checked the logs of the docker container.

boinc-docker-s390x.log

It looks the container built correctly.
Did you use the built image, with the s390x tag?

docker run -d \
  --name boinc \
  --net=host \
  -v /opt/appdata/boinc:/var/lib/boinc-client \
  -e BOINC_GUI_RPC_PASSWORD="123" \
  -e BOINC_CMD_LINE_OPTIONS="--allow_remote_gui_rpc" \
  boinc/client:s390x

The main question is, there will be any project that support your architecture?

Hi, your suggestion solved it.

Ran into some issue with xorg:x11 docker boinc looking for /var/input/mice (?), but otherwise seemed to work until

I tried with Rosetta@Home, World Community Grid, Collatz Conjecture, and SETI@Home. None support s390x architecture.

The /var/input/mice issue is solved in a the newer version.
Then I remove this image until no one support it. Maybe you should write for the Seti@H, if any chance to build the project to you platform. I see the biggest chance with them.

@davidpanderson Do you see any chance to build a project that run on s390x architecture?

s390x is an IBM mainframe architecture?
Do you mean to use it as a BOINC server or as a client?
Do any of them exist?

@davidpanderson We were able to build the boinc client for the s390x architecture, but there is no project that support it so he can't crunch the WUs. Do you see any chance that S@H can support it in the near future?

If someone builds and tests the S@h client for s390x, Eric Korpela might release it. Or you could run it using anonymous platform.

@sunk818 what do you think, do you wanna give a try?

@adamradocz I'm happy to do it if you provide me the steps. s390x platform using SUSE Linux. I don't have entitlement for Red Hat 7, so I'm not allowed to use it.

Honesty,I have no idea how to do that. Maybe @davidpanderson can give you some guidance.

It's described here:
https://boinc.berkeley.edu/wiki/Anonymous_platform
The idea is that you get the source code of the app (S@h in this case),
build it and link it with the BOINC runtime library,
and make a config file that tells the server to use your app.

-- David

I close this issue. @sunk818 if you succeed with building the project, I will recreate the s390x image.