-
Notifications
You must be signed in to change notification settings - Fork 996
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
Problem with usage of juicedata/mount docker image #5206
Comments
My ugly workaround is running
instead of:
|
I looked in source code and made a little patch against main branch to solve the problem:
Should I make it a PR? |
@halsbox I did not duplicate the issue. I was able to stop the container normally using docker stop and no lingering processes were observed. When I mounted the foreground mount point using juicefs and then killed the daemon process with |
@zhijian-pro
Commands to reproduce:
|
The workflow is following:
|
@halsbox You are right, welcome PR, thank you very much! |
What happened:
Juicefs is not properly unmounted when stopping docker container created as documented in
juicefs_on_docker#method-2-use-the-officially-maintained-image
What you expected to happen:
Juicefs is unmounted on container stop
How to reproduce it (as minimally and precisely as possible):
Follow
juicefs_on_docker#method-2-use-the-officially-maintained-image
documentation to create and start a container, then stop container. Runstat
orls
on directory that was bind-mounted in the container to getTransport endpoint is not connected
error. Unmount the directory manually.Anything else we need to know?
juicefs mount
command starts two processes, of which only the second one is listening for signals (SIGTERM, etc) and only the second process does graceful stop with unmount when receiving a signal from docker engine (or anything else). When run in docker container as described in docs, the signal is sent to the first process with PID 1 and container is just killed without graceful unmount. The bug can be reproduced without using containers: just runjuicefs mount
in foreground, then go to another terminal and dops auxww | grep juicefs
, you'll get two processes with their PIDs. Runkill -SIGTERM
with first PID as argument.Environment:
juicefs --version
) or Hadoop Java SDK version: 1.2.1+2024-08-30.cd871d19cat /etc/os-release
): Debian GNU/Linux 12 (bookworm)uname -a
): 6.1.0-26-amd64 SMP PREEMPT_DYNAMIC Debian 6.1.112-1 (2024-09-30) x86_64 GNU/LinuxThe text was updated successfully, but these errors were encountered: