Commit 6522224
Clean up tmp files for interrupted
This fix tries to fix the issue raised in 29486 where interrupted
`docker build` leaves some tmp files in `/var/lib/docker/tmp`.
With tmp file name prefixed with `/var/lib/docker/tmp/docker-builderXXXXXX`.
The reason for the issue is that in `MakeTarSumContext()`:
```
if err := chrootarchive.Untar(sum, root, nil); err != nil {
return nil, err
}
```
the `err` is shadowed and caused the clean up function in `defer func()`
not being called.
This fix fixes the issue.
This fix is tested manually, as was specified in 29486:
```
rm -rf /var/lib/docker/tmp
mkdir repro && cd repro
fallocate -l 300M bigfile
cat > Dockerfile <<EOF
FROM scratch
COPY ./bigfile /
EOF
docker build .
{Cancel}
ls -la /var/lib/docker/tmp
```
This fix fixes 29486.
Signed-off-by: Yong Tang <yong.tang.github@outlook.com>docker build
1 parent 9bff9de commit 6522224
1 file changed
Lines changed: 2 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
104 | 104 | | |
105 | 105 | | |
106 | 106 | | |
107 | | - | |
| 107 | + | |
| 108 | + | |
108 | 109 | | |
109 | 110 | | |
110 | 111 | | |
| |||
0 commit comments