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

ctr-remote: ensure cancel cleanly when recieves signals during conversion #733

Merged
merged 1 commit into from Apr 8, 2022

Conversation

ktock
Copy link
Member

@ktock ktock commented Apr 8, 2022

When ctr-remote receives signals during conversion, it currently cannot cancel cleanly and leaves some temp files.
This commit fixes this issue.

main version

cannot cancel cleanly.

# ctr-remote i optimize registry:5000/ubuntu:20.04-org foo
INFO[0000] analyzing blob "sha256:345e3491a907bb7c6f1bdddcf4a94284b8b6ddd77eb7d93f09432b17b20f2bbe" 
INFO[0000] analyzing blob "sha256:57671312ef6fdbecf340e5fed0fb0863350cd806c92b1fdd7978adbd02afc5c3" 
INFO[0000] analyzing blob "sha256:5e9250ddb7d0fa6d13302c7c3e6a0aa40390e42424caed1e5289077ee4054709" 
INFO[0000] waiting for 10s ...                          
INFO[0000] container exit with code 0                   
INFO[2022-04-08T02:24:50.396344056Z] shim disconnected                             id=c97ppsfe2ibaaiirntm0
WARN[2022-04-08T02:24:50.396455621Z] cleaning up after shim disconnected           id=c97ppsfe2ibaaiirntm0 namespace=default
INFO[2022-04-08T02:24:50.396466611Z] cleaning up dead shim                        
WARN[2022-04-08T02:24:50.420887043Z] cleanup warnings time="2022-04-08T02:24:50Z" level=info msg="starting signal loop" namespace=default pid=104129 
INFO[0000] converting...                                 digest="sha256:345e3491a907bb7c6f1bdddcf4a94284b8b6ddd77eb7d93f09432b17b20f2bbe"
INFO[0000] converting...                                 digest="sha256:57671312ef6fdbecf340e5fed0fb0863350cd806c92b1fdd7978adbd02afc5c3"
INFO[0000] converting...                                 digest="sha256:5e9250ddb7d0fa6d13302c7c3e6a0aa40390e42424caed1e5289077ee4054709"
  C-c C-c^C
# ls /tmp/
uncompresseddata499525600
# ctr-remote i convert --estargz --oci registry:5000/ubuntu:20.04-org foo
  C-c C-c^C
# ls /tmp/
esgzdata1041668335  esgzdata1108552712	esgzdata2609414019  esgzdata2787121175	esgzdata3750809904  esgzdata524932944  esgzdata600126681  esgzdata778947561  esgzdata874216793	uncompresseddata3151736297

PR version

cancels cleanly.

# ctr-remote i optimize registry:5000/ubuntu:20.04-org foo
INFO[0000] analyzing blob "sha256:345e3491a907bb7c6f1bdddcf4a94284b8b6ddd77eb7d93f09432b17b20f2bbe" 
INFO[0000] analyzing blob "sha256:57671312ef6fdbecf340e5fed0fb0863350cd806c92b1fdd7978adbd02afc5c3" 
INFO[0000] analyzing blob "sha256:5e9250ddb7d0fa6d13302c7c3e6a0aa40390e42424caed1e5289077ee4054709" 
INFO[0000] waiting for 10s ...                          
INFO[0000] container exit with code 0                   
INFO[2022-04-08T02:27:23.281296239Z] shim disconnected                             id=c97pr2ne2ibanqjvcoeg
WARN[2022-04-08T02:27:23.281342827Z] cleaning up after shim disconnected           id=c97pr2ne2ibanqjvcoeg namespace=default
INFO[2022-04-08T02:27:23.281355320Z] cleaning up dead shim                        
WARN[2022-04-08T02:27:23.308342504Z] cleanup warnings time="2022-04-08T02:27:23Z" level=info msg="starting signal loop" namespace=default pid=104738 
INFO[0000] converting...                                 digest="sha256:345e3491a907bb7c6f1bdddcf4a94284b8b6ddd77eb7d93f09432b17b20f2bbe"
INFO[0000] converting...                                 digest="sha256:57671312ef6fdbecf340e5fed0fb0863350cd806c92b1fdd7978adbd02afc5c3"
INFO[0000] converting...                                 digest="sha256:5e9250ddb7d0fa6d13302c7c3e6a0aa40390e42424caed1e5289077ee4054709"
  C-c C-c^CINFO[0002] Got interrupt                                
ctr-remote: error from context "context canceled": error copying "usr/lib/x86_64-linux-gnu/perl-base/Exporter/Heavy.pm": Failed to write tar payload: read /tmp/uncompresseddata782059284: file already closed
# ls /tmp/
# ctr-remote i convert --estargz --oci registry:5000/ubuntu:20.04-org foo
  C-c C-c^CINFO[0001] Got interrupt                                
ctr-remote: error from context "context canceled": write /tmp/uncompresseddata620393635: file already closed

…sion

Signed-off-by: Kohei Tokunaga <ktokunaga.mail@gmail.com>
@ktock ktock changed the title ctr-remote: ensure cancel cleanly when recieves signals during conver… ctr-remote: ensure cancel cleanly when recieves signals during conversion Apr 8, 2022
@AkihiroSuda AkihiroSuda merged commit 844a78d into containerd:main Apr 8, 2022
@ktock ktock deleted the optimization-cleanup branch April 8, 2022 12:23
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

Successfully merging this pull request may close these issues.

None yet

2 participants