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

Implicit binding to temporary location results in failure #5

Closed
guillon opened this issue Oct 17, 2012 · 4 comments
Closed

Implicit binding to temporary location results in failure #5

guillon opened this issue Oct 17, 2012 · 4 comments

Comments

@guillon
Copy link
Contributor

guillon commented Oct 17, 2012

With proot v2.2 I have a issue with a double binding to the same location causing errors.
As the implicit binding created by proot itself is choosen, I can't access the actual host location.
I have not seen the issue on previous proot versions.
Note that I have nested bindings, If I remove the three bindings and replace it by a single binding /work1/gcc-build:/opt/gcc-build, I am not able to reproduce the error anymore.

The issue can be reproduced with a very specific sequence:

  • remove recursively the /rootfs/opt directory
  • run once the test (see below) -> this time it works
  • actually the /rootfs/opt have been created by proot after this run (but the directory /rootfs/opt/gcc-build was not created)

  • run a second time the test --> now proot fails with the double binding
  • looking at the rootfs proot has now created the /rootfs/opt/gcc-build dir

  • run a third time the test -> it works again and forever.

The test is:

/work1$ /work1/guillon/gcc-build/devimage/bin/proot -b /work1/gcc-build:/opt/gcc-build -b /work1/gcc-build/build:/opt/gcc-build/build -b /work1/gcc-build/devimage:/opt/gcc-build/devimage -r /work1/guillon/gcc-build/distros/rhlinux-i586-5el-rootfs -w /opt/gcc-build/build /opt/gcc-build/test.sh

When it fails the following message is outputed:
proot warning: both '/work1/gcc-build' and '/tmp/proot-7886-XwThQF/opt/gcc-build' are bound to '/opt/gcc-build', only the last binding is active.
proot info: started
proot warning: execv("/opt/gcc-build/test.sh"): No such file or directory
proot info: possible causes:
* is a script but its interpreter (eg. /bin/sh) was not found;
* is an ELF but its interpreter (eg. ld-linux.so) was not found;
* is a foreign binary but no was specified;
* does not work correctly (if specified).
proot info: exited

@guillon
Copy link
Contributor Author

guillon commented Oct 17, 2012

To complete the report, when I leave a single binding, even if there is no error, actually two consecutive runs of proot do not behave the same way:

  • with the /opt/gcc-build:/work1/gcc-build binding, starting with no /rootfs/opt dir
  • the first time, after the execution, the /rootfs/opt dir is created but empty
  • running a second time, the /rootfs/opt/gcc-build dir is now created.

I would expect that at the first run proot creates the /rootfs/opt/gcc-build dir.

@cedric-vincent
Copy link
Contributor

Thanks for this report. Please could you try with PRoot v2.3: binding mechanism was reworked.

@cedric-vincent
Copy link
Contributor

Hello @guillon

Do you confirm the release v2.4.1 works as expected in this regard?

Cedric.

@cedric-vincent
Copy link
Contributor

Hello @guillon,

Feel free to re-open if it is not correctly fixed.

Regards,
Cédric.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants