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

unable to run with zfs storage driver #10

Closed
gerhard6 opened this issue Jun 5, 2016 · 5 comments
Closed

unable to run with zfs storage driver #10

gerhard6 opened this issue Jun 5, 2016 · 5 comments

Comments

@gerhard6
Copy link

gerhard6 commented Jun 5, 2016

Hello

your image does not work based on docker with zfs storage driver
I think its a bug in docker/zfs (read on), but I want to keep you noticed, and perhaps you have some ideas for workarounds. I'll try to file an issue on docker...

ubuntu 16.04 with zfs
docker 1.11.2
https://docs.docker.com/engine/userguide/storagedriver/zfs-driver/
(setup of zfs fs is a bit simpler with new ubuntu now.)

both "make test" and "test3" (means with and without a volume) fails on both listener and on dbca execution. See the erros below.
I also tried to run the image with "-u root", and I noticed,that the error on the listener went away, however, dbca is not allowed to run as root user.
--privileged also did not help.

Also mind that when I try to create such files manually (as oracle user) things work fine, so I think oracle does some special things during opening the files.

regarding volumes:
(1) no -v : fails (implies zfs)
(2) -v /data: fails (implieds zfs)
(3) -v /some_non_zfs:/data: works
(4) -v /some_zfs:/data: fails

So, it seems that docker/zfs integration has a problem with access control setup (remember the -u root above, where the listener startup is successful)

Greetings, Gerhard.

listener: [AutoCreate Relation]: following error encountered and ignored:
listener: DIA-48316: relation [ADR_CONTROL] unavailable or cannot be created
listener: DIA-48210: Relation Not Found
listener: DIA-48166: error with opening ADR block file because file does not exist [/app/oracle/diag/tnslsnr/bc9000c85096/listener/metadata/ADR_CONTROL.ams] [0]
listener: DIA-48122: error with opening the ADR block file [/app/oracle/diag/tnslsnr/bc9000c85096/listener/metadata/ADR_CONTROL.ams] [0]
listener: DIA-27040: Message 27040 not found; product=RDBMS; facility=DIA
listener: Linux-x86_64 Error: 22: Invalid argument
listener: Additional information: 2
...

dbca_log: Creating and starting Oracle instance
dbca_log: DBCA_PROGRESS : 2%
dbca_log: DBCA_PROGRESS : 3%
dbca_log: DBCA_PROGRESS : 5%
dbca_log: ORA-01501: CREATE DATABASE failed
dbca_log: ORA-00200: control file could not be created
dbca_log: ORA-00202: control file: '/data/oracle/oradata/ORCL/control01.ctl'
dbca_log: ORA-27040: file create error, unable to create file

@bofm
Copy link
Owner

bofm commented Jun 5, 2016

Is the filesystem inside the container writeable? You can check that this way:
docker run --rm -it bofm/oracle12c bash and play around interactively.

@gerhard6
Copy link
Author

gerhard6 commented Jun 5, 2016

yes, it is. I logged into the container (as oracle user) and tried to create those files manually, it worked.

@gerhard6
Copy link
Author

gerhard6 commented Jun 7, 2016

mind the progress/comments on moby/moby#23264, it seems that
oracle's usage of O_DIRECT is not yet supported on zfs - see openzfs/zfs#224

@bofm bofm closed this as completed Jun 7, 2016
@thaJeztah
Copy link

ping @amitkris - you may be interested in this 👍

@gerhard6
Copy link
Author

was finally able to apply the workaround described in comment "nigoroll commented on 27 Nov 2015" here: openzfs/zfs#224
which ensures that usage of O_DIRECT does not fail.

So In order to make things work on zfs, you need to add to the Dockerfile:
COPY files/libo_direct_interpose.so /tmp/
ENV LD_PRELOAD=/tmp/libo_direct_interpose.so

where libo_direct_interpose.so is one of the build results of this project/commit:
https://code.uplex.de/liblongpath/liblongpath/commit/2e46a921ce2b6b1caa56d39cbd58be85c5988bd0

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

3 participants