This repository was archived by the owner on Oct 13, 2023. It is now read-only.

[19.03] Add chroot back to Tar/Untar without the previously introduced regression - #280

Merged
andrewhsu merged 7 commits into
docker-archive:19.03from
tiborvass:19.03-chroot-tar-untar-and-cp-slash-fix
Jun 17, 2019
Merged

[19.03] Add chroot back to Tar/Untar without the previously introduced regression#280
andrewhsu merged 7 commits into
docker-archive:19.03from
tiborvass:19.03-chroot-tar-untar-and-cp-slash-fix

Conversation

@tiborvass

Copy link
Copy Markdown

Reverts #275 which reverted #254 and cherry-picks the needed fix from moby#39357

Related to moby#39348

Tibor Vassand others added 5 commits June 14, 2019 01:37
This reverts commit 60013ba.
Signed-off-by: Tibor Vass <tibor@docker.com>
This reverts commit 96df6d4.
Signed-off-by: Tibor Vass <tibor@docker.com>
CID=$(docker create alpine)
docker cp $CID:/ out
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 6db9f1c)
Signed-off-by: Tibor Vass <tibor@docker.com>
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 02f1eb8)
Signed-off-by: Tibor Vass <tibor@docker.com>
Before 7a7357d, archive.TarResourceRebase was being used to copy files
and folders from the container. That function splits the source path
into a dirname + basename pair to support copying a file:
if you wanted to tar `dir/file` it would tar from `dir` the file `file`
(as part of the IncludedFiles option).
However, that path splitting logic was kept for folders as well, which
resulted in weird inputs to archive.TarWithOptions:
if you wanted to tar `dir1/dir2` it would tar from `dir1` the directory
`dir2` (as part of IncludedFiles option).
Although it was weird, it worked fine until we started chrooting into
the container rootfs when doing a `docker cp` with container source set
to `/` (cf 3029e76).
The fix is to only do the path splitting logic if the source is a file.
Unfortunately, 7a7357d added support for LCOW by duplicating some of
this subtle logic. Ideally we would need to do more refactoring of the
archive codebase to properly encapsulate these behaviors behind well-
documented APIs.
This fix does not do that. Instead, it fixes the issue inline.
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 171538c)
Signed-off-by: Tibor Vass <tibor@docker.com>
@tiborvasstiborvass changed the title 19.03 chroot tar untar and cp slash fix[19.03] Add chroot back to Tar/Untar without the previously introduced regressionJun 14, 2019
Previously, getWalkRoot("/", "foo") would return "//foo"
Now it returns "/foo"
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 7410f1a)
Signed-off-by: Tibor Vass <tibor@docker.com>
@tiborvass
tiborvassforce-pushed the 19.03-chroot-tar-untar-and-cp-slash-fix branch from 852e7c7 to 186afe3CompareJune 14, 2019 04:02
@thaJeztah

Copy link
Copy Markdown
Member

Failing on

04:15:28 # github.com/docker/docker/integration/container [github.com/docker/docker/integration/container.test]
04:15:28 integration/container/copy_test.go:108:25: cannot use ctx (type context.Context) as type *testing.T in argument to "github.com/docker/docker/integration/internal/container".Create
04:15:28 integration/container/copy_test.go:108:25: cannot use t (type *testing.T) as type context.Context in argument to "github.com/docker/docker/integration/internal/container".Create:
04:15:28 *testing.T does not implement context.Context (missing Deadline method)

To easify future backports, I think we should backport;

(But #279 ("[19.03 backport] Handle the error case when a container reattaches to the same network") has to be merged first)

So;

  1. 1. merge [19.03 backport] Handle the error case when a container reattaches to the same network #279 ("[19.03 backport] Handle the error case when a container reattaches to the same network") has to be merged first.
  2. 2. rebase and merge [19.03 backport] Integration: change signatures to fix golint warnings #281 [19.03 backport] Integration: change signatures to fix golint warnings
  3. 3. rebase and merge this PR

@thaJeztahthaJeztah added this to the 19.03.1 milestone Jun 14, 2019
@tiborvass
tiborvass marked this pull request as ready for review June 14, 2019 18:06
For reference on why this is needed:
docker-archive#280 (comment)
Signed-off-by: Tibor Vass <tibor@docker.com>
@tiborvass
tiborvassforce-pushed the 19.03-chroot-tar-untar-and-cp-slash-fix branch from 7ad2521 to 8f4b96fCompareJune 14, 2019 18:28
@thaJeztah

Copy link
Copy Markdown
Member

discussed with @tiborvass - well do a patch in this PR itself, and keep the other changes for 19.03.1

@thaJeztahthaJeztah left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@cpuguy83cpuguy83 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@andrewhsuandrewhsu modified the milestones: 19.03.1, 19.03.0Jun 17, 2019

@andrewhsuandrewhsu left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@andrewhsu
andrewhsu merged commit 3452f74 into docker-archive:19.03Jun 17, 2019
docker-jenkins pushed a commit to docker-archive/docker-ce that referenced this pull request Jun 17, 2019
For reference on why this is needed:
docker-archive/engine#280 (comment)
Signed-off-by: Tibor Vass <tibor@docker.com>
Upstream-commit: 8f4b96f19e64b96df9d8c43208cefb113715ccbf
Component: engine
thaJeztah pushed a commit to thaJeztah/docker that referenced this pull request Jun 18, 2019
For reference on why this is needed:
docker-archive#280 (comment)
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 8f4b96f)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
docker-jenkins pushed a commit to docker-archive/docker-ce that referenced this pull request Jun 20, 2019
For reference on why this is needed:
docker-archive/engine#280 (comment)
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 8f4b96f19e64b96df9d8c43208cefb113715ccbf)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Upstream-commit: 584c0857ab21895e62feac686448085113c6c977
Component: engine
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@tiborvass@thaJeztah@andrewhsu@cpuguy83
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content
This repository was archived by the owner on Oct 13, 2023. It is now read-only.

[19.03] Add chroot back to Tar/Untar without the previously introduced regression - #280

Merged
andrewhsu merged 7 commits into
docker-archive:19.03from
tiborvass:19.03-chroot-tar-untar-and-cp-slash-fix
Jun 17, 2019
Merged

[19.03] Add chroot back to Tar/Untar without the previously introduced regression#280
andrewhsu merged 7 commits into
docker-archive:19.03from
tiborvass:19.03-chroot-tar-untar-and-cp-slash-fix

Conversation

@tiborvass

Copy link
Copy Markdown

Reverts #275 which reverted #254 and cherry-picks the needed fix from moby#39357

Related to moby#39348

Tibor Vassand others added 5 commits June 14, 2019 01:37
This reverts commit 60013ba.
Signed-off-by: Tibor Vass <tibor@docker.com>
This reverts commit 96df6d4.
Signed-off-by: Tibor Vass <tibor@docker.com>
CID=$(docker create alpine)
docker cp $CID:/ out
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 6db9f1c)
Signed-off-by: Tibor Vass <tibor@docker.com>
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 02f1eb8)
Signed-off-by: Tibor Vass <tibor@docker.com>
Before 7a7357d, archive.TarResourceRebase was being used to copy files
and folders from the container. That function splits the source path
into a dirname + basename pair to support copying a file:
if you wanted to tar `dir/file` it would tar from `dir` the file `file`
(as part of the IncludedFiles option).
However, that path splitting logic was kept for folders as well, which
resulted in weird inputs to archive.TarWithOptions:
if you wanted to tar `dir1/dir2` it would tar from `dir1` the directory
`dir2` (as part of IncludedFiles option).
Although it was weird, it worked fine until we started chrooting into
the container rootfs when doing a `docker cp` with container source set
to `/` (cf 3029e76).
The fix is to only do the path splitting logic if the source is a file.
Unfortunately, 7a7357d added support for LCOW by duplicating some of
this subtle logic. Ideally we would need to do more refactoring of the
archive codebase to properly encapsulate these behaviors behind well-
documented APIs.
This fix does not do that. Instead, it fixes the issue inline.
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 171538c)
Signed-off-by: Tibor Vass <tibor@docker.com>
@tiborvasstiborvass changed the title 19.03 chroot tar untar and cp slash fix[19.03] Add chroot back to Tar/Untar without the previously introduced regressionJun 14, 2019
Previously, getWalkRoot("/", "foo") would return "//foo"
Now it returns "/foo"
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 7410f1a)
Signed-off-by: Tibor Vass <tibor@docker.com>
@tiborvass
tiborvassforce-pushed the 19.03-chroot-tar-untar-and-cp-slash-fix branch from 852e7c7 to 186afe3CompareJune 14, 2019 04:02
@thaJeztah

Copy link
Copy Markdown
Member

Failing on

04:15:28 # github.com/docker/docker/integration/container [github.com/docker/docker/integration/container.test]
04:15:28 integration/container/copy_test.go:108:25: cannot use ctx (type context.Context) as type *testing.T in argument to "github.com/docker/docker/integration/internal/container".Create
04:15:28 integration/container/copy_test.go:108:25: cannot use t (type *testing.T) as type context.Context in argument to "github.com/docker/docker/integration/internal/container".Create:
04:15:28 *testing.T does not implement context.Context (missing Deadline method)

To easify future backports, I think we should backport;

(But #279 ("[19.03 backport] Handle the error case when a container reattaches to the same network") has to be merged first)

So;

  1. 1. merge [19.03 backport] Handle the error case when a container reattaches to the same network #279 ("[19.03 backport] Handle the error case when a container reattaches to the same network") has to be merged first.
  2. 2. rebase and merge [19.03 backport] Integration: change signatures to fix golint warnings #281 [19.03 backport] Integration: change signatures to fix golint warnings
  3. 3. rebase and merge this PR

@thaJeztahthaJeztah added this to the 19.03.1 milestone Jun 14, 2019
@tiborvass
tiborvass marked this pull request as ready for review June 14, 2019 18:06
For reference on why this is needed:
docker-archive#280 (comment)
Signed-off-by: Tibor Vass <tibor@docker.com>
@tiborvass
tiborvassforce-pushed the 19.03-chroot-tar-untar-and-cp-slash-fix branch from 7ad2521 to 8f4b96fCompareJune 14, 2019 18:28
@thaJeztah

Copy link
Copy Markdown
Member

discussed with @tiborvass - well do a patch in this PR itself, and keep the other changes for 19.03.1

@thaJeztahthaJeztah left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@cpuguy83cpuguy83 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@andrewhsuandrewhsu modified the milestones: 19.03.1, 19.03.0Jun 17, 2019

@andrewhsuandrewhsu left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@andrewhsu
andrewhsu merged commit 3452f74 into docker-archive:19.03Jun 17, 2019
docker-jenkins pushed a commit to docker-archive/docker-ce that referenced this pull request Jun 17, 2019
For reference on why this is needed:
docker-archive/engine#280 (comment)
Signed-off-by: Tibor Vass <tibor@docker.com>
Upstream-commit: 8f4b96f19e64b96df9d8c43208cefb113715ccbf
Component: engine
thaJeztah pushed a commit to thaJeztah/docker that referenced this pull request Jun 18, 2019
For reference on why this is needed:
docker-archive#280 (comment)
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 8f4b96f)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
docker-jenkins pushed a commit to docker-archive/docker-ce that referenced this pull request Jun 20, 2019
For reference on why this is needed:
docker-archive/engine#280 (comment)
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 8f4b96f19e64b96df9d8c43208cefb113715ccbf)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Upstream-commit: 584c0857ab21895e62feac686448085113c6c977
Component: engine
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@tiborvass@thaJeztah@andrewhsu@cpuguy83
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Oct 13, 2023. It is now read-only.

[19.03] Add chroot back to Tar/Untar without the previously introduced regression - #280

Merged
andrewhsu merged 7 commits into
docker-archive:19.03from
tiborvass:19.03-chroot-tar-untar-and-cp-slash-fix
Jun 17, 2019
Merged

[19.03] Add chroot back to Tar/Untar without the previously introduced regression#280
andrewhsu merged 7 commits into
docker-archive:19.03from
tiborvass:19.03-chroot-tar-untar-and-cp-slash-fix

Conversation

@tiborvass

Copy link
Copy Markdown

Reverts #275 which reverted #254 and cherry-picks the needed fix from moby#39357

Related to moby#39348

Tibor Vassand others added 5 commits June 14, 2019 01:37
This reverts commit 60013ba.
Signed-off-by: Tibor Vass <tibor@docker.com>
This reverts commit 96df6d4.
Signed-off-by: Tibor Vass <tibor@docker.com>
CID=$(docker create alpine)
docker cp $CID:/ out
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 6db9f1c)
Signed-off-by: Tibor Vass <tibor@docker.com>
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 02f1eb8)
Signed-off-by: Tibor Vass <tibor@docker.com>
Before 7a7357d, archive.TarResourceRebase was being used to copy files
and folders from the container. That function splits the source path
into a dirname + basename pair to support copying a file:
if you wanted to tar `dir/file` it would tar from `dir` the file `file`
(as part of the IncludedFiles option).
However, that path splitting logic was kept for folders as well, which
resulted in weird inputs to archive.TarWithOptions:
if you wanted to tar `dir1/dir2` it would tar from `dir1` the directory
`dir2` (as part of IncludedFiles option).
Although it was weird, it worked fine until we started chrooting into
the container rootfs when doing a `docker cp` with container source set
to `/` (cf 3029e76).
The fix is to only do the path splitting logic if the source is a file.
Unfortunately, 7a7357d added support for LCOW by duplicating some of
this subtle logic. Ideally we would need to do more refactoring of the
archive codebase to properly encapsulate these behaviors behind well-
documented APIs.
This fix does not do that. Instead, it fixes the issue inline.
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 171538c)
Signed-off-by: Tibor Vass <tibor@docker.com>
@tiborvasstiborvass changed the title 19.03 chroot tar untar and cp slash fix[19.03] Add chroot back to Tar/Untar without the previously introduced regressionJun 14, 2019
Previously, getWalkRoot("/", "foo") would return "//foo"
Now it returns "/foo"
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 7410f1a)
Signed-off-by: Tibor Vass <tibor@docker.com>
@tiborvass
tiborvassforce-pushed the 19.03-chroot-tar-untar-and-cp-slash-fix branch from 852e7c7 to 186afe3CompareJune 14, 2019 04:02
@thaJeztah

Copy link
Copy Markdown
Member

Failing on

04:15:28 # github.com/docker/docker/integration/container [github.com/docker/docker/integration/container.test]
04:15:28 integration/container/copy_test.go:108:25: cannot use ctx (type context.Context) as type *testing.T in argument to "github.com/docker/docker/integration/internal/container".Create
04:15:28 integration/container/copy_test.go:108:25: cannot use t (type *testing.T) as type context.Context in argument to "github.com/docker/docker/integration/internal/container".Create:
04:15:28 *testing.T does not implement context.Context (missing Deadline method)

To easify future backports, I think we should backport;

(But #279 ("[19.03 backport] Handle the error case when a container reattaches to the same network") has to be merged first)

So;

  1. 1. merge [19.03 backport] Handle the error case when a container reattaches to the same network #279 ("[19.03 backport] Handle the error case when a container reattaches to the same network") has to be merged first.
  2. 2. rebase and merge [19.03 backport] Integration: change signatures to fix golint warnings #281 [19.03 backport] Integration: change signatures to fix golint warnings
  3. 3. rebase and merge this PR

@thaJeztahthaJeztah added this to the 19.03.1 milestone Jun 14, 2019
@tiborvass
tiborvass marked this pull request as ready for review June 14, 2019 18:06
For reference on why this is needed:
docker-archive#280 (comment)
Signed-off-by: Tibor Vass <tibor@docker.com>
@tiborvass
tiborvassforce-pushed the 19.03-chroot-tar-untar-and-cp-slash-fix branch from 7ad2521 to 8f4b96fCompareJune 14, 2019 18:28
@thaJeztah

Copy link
Copy Markdown
Member

discussed with @tiborvass - well do a patch in this PR itself, and keep the other changes for 19.03.1

@thaJeztahthaJeztah left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@cpuguy83cpuguy83 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@andrewhsuandrewhsu modified the milestones: 19.03.1, 19.03.0Jun 17, 2019

@andrewhsuandrewhsu left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@andrewhsu
andrewhsu merged commit 3452f74 into docker-archive:19.03Jun 17, 2019
docker-jenkins pushed a commit to docker-archive/docker-ce that referenced this pull request Jun 17, 2019
For reference on why this is needed:
docker-archive/engine#280 (comment)
Signed-off-by: Tibor Vass <tibor@docker.com>
Upstream-commit: 8f4b96f19e64b96df9d8c43208cefb113715ccbf
Component: engine
thaJeztah pushed a commit to thaJeztah/docker that referenced this pull request Jun 18, 2019
For reference on why this is needed:
docker-archive#280 (comment)
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 8f4b96f)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
docker-jenkins pushed a commit to docker-archive/docker-ce that referenced this pull request Jun 20, 2019
For reference on why this is needed:
docker-archive/engine#280 (comment)
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 8f4b96f19e64b96df9d8c43208cefb113715ccbf)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Upstream-commit: 584c0857ab21895e62feac686448085113c6c977
Component: engine
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@tiborvass@thaJeztah@andrewhsu@cpuguy83
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Oct 13, 2023. It is now read-only.

[19.03] Add chroot back to Tar/Untar without the previously introduced regression - #280

Merged
andrewhsu merged 7 commits into
docker-archive:19.03from
tiborvass:19.03-chroot-tar-untar-and-cp-slash-fix
Jun 17, 2019
Merged

[19.03] Add chroot back to Tar/Untar without the previously introduced regression#280
andrewhsu merged 7 commits into
docker-archive:19.03from
tiborvass:19.03-chroot-tar-untar-and-cp-slash-fix

Conversation

@tiborvass

Copy link
Copy Markdown

Reverts #275 which reverted #254 and cherry-picks the needed fix from moby#39357

Related to moby#39348

Tibor Vassand others added 5 commits June 14, 2019 01:37
This reverts commit 60013ba.
Signed-off-by: Tibor Vass <tibor@docker.com>
This reverts commit 96df6d4.
Signed-off-by: Tibor Vass <tibor@docker.com>
CID=$(docker create alpine)
docker cp $CID:/ out
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 6db9f1c)
Signed-off-by: Tibor Vass <tibor@docker.com>
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 02f1eb8)
Signed-off-by: Tibor Vass <tibor@docker.com>
Before 7a7357d, archive.TarResourceRebase was being used to copy files
and folders from the container. That function splits the source path
into a dirname + basename pair to support copying a file:
if you wanted to tar `dir/file` it would tar from `dir` the file `file`
(as part of the IncludedFiles option).
However, that path splitting logic was kept for folders as well, which
resulted in weird inputs to archive.TarWithOptions:
if you wanted to tar `dir1/dir2` it would tar from `dir1` the directory
`dir2` (as part of IncludedFiles option).
Although it was weird, it worked fine until we started chrooting into
the container rootfs when doing a `docker cp` with container source set
to `/` (cf 3029e76).
The fix is to only do the path splitting logic if the source is a file.
Unfortunately, 7a7357d added support for LCOW by duplicating some of
this subtle logic. Ideally we would need to do more refactoring of the
archive codebase to properly encapsulate these behaviors behind well-
documented APIs.
This fix does not do that. Instead, it fixes the issue inline.
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 171538c)
Signed-off-by: Tibor Vass <tibor@docker.com>
@tiborvasstiborvass changed the title 19.03 chroot tar untar and cp slash fix[19.03] Add chroot back to Tar/Untar without the previously introduced regressionJun 14, 2019
Previously, getWalkRoot("/", "foo") would return "//foo"
Now it returns "/foo"
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 7410f1a)
Signed-off-by: Tibor Vass <tibor@docker.com>
@tiborvass
tiborvassforce-pushed the 19.03-chroot-tar-untar-and-cp-slash-fix branch from 852e7c7 to 186afe3CompareJune 14, 2019 04:02
@thaJeztah

Copy link
Copy Markdown
Member

Failing on

04:15:28 # github.com/docker/docker/integration/container [github.com/docker/docker/integration/container.test]
04:15:28 integration/container/copy_test.go:108:25: cannot use ctx (type context.Context) as type *testing.T in argument to "github.com/docker/docker/integration/internal/container".Create
04:15:28 integration/container/copy_test.go:108:25: cannot use t (type *testing.T) as type context.Context in argument to "github.com/docker/docker/integration/internal/container".Create:
04:15:28 *testing.T does not implement context.Context (missing Deadline method)

To easify future backports, I think we should backport;

(But #279 ("[19.03 backport] Handle the error case when a container reattaches to the same network") has to be merged first)

So;

  1. 1. merge [19.03 backport] Handle the error case when a container reattaches to the same network #279 ("[19.03 backport] Handle the error case when a container reattaches to the same network") has to be merged first.
  2. 2. rebase and merge [19.03 backport] Integration: change signatures to fix golint warnings #281 [19.03 backport] Integration: change signatures to fix golint warnings
  3. 3. rebase and merge this PR

@thaJeztahthaJeztah added this to the 19.03.1 milestone Jun 14, 2019
@tiborvass
tiborvass marked this pull request as ready for review June 14, 2019 18:06
For reference on why this is needed:
docker-archive#280 (comment)
Signed-off-by: Tibor Vass <tibor@docker.com>
@tiborvass
tiborvassforce-pushed the 19.03-chroot-tar-untar-and-cp-slash-fix branch from 7ad2521 to 8f4b96fCompareJune 14, 2019 18:28
@thaJeztah

Copy link
Copy Markdown
Member

discussed with @tiborvass - well do a patch in this PR itself, and keep the other changes for 19.03.1

@thaJeztahthaJeztah left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@cpuguy83cpuguy83 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@andrewhsuandrewhsu modified the milestones: 19.03.1, 19.03.0Jun 17, 2019

@andrewhsuandrewhsu left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@andrewhsu
andrewhsu merged commit 3452f74 into docker-archive:19.03Jun 17, 2019
docker-jenkins pushed a commit to docker-archive/docker-ce that referenced this pull request Jun 17, 2019
For reference on why this is needed:
docker-archive/engine#280 (comment)
Signed-off-by: Tibor Vass <tibor@docker.com>
Upstream-commit: 8f4b96f19e64b96df9d8c43208cefb113715ccbf
Component: engine
thaJeztah pushed a commit to thaJeztah/docker that referenced this pull request Jun 18, 2019
For reference on why this is needed:
docker-archive#280 (comment)
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 8f4b96f)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
docker-jenkins pushed a commit to docker-archive/docker-ce that referenced this pull request Jun 20, 2019
For reference on why this is needed:
docker-archive/engine#280 (comment)
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 8f4b96f19e64b96df9d8c43208cefb113715ccbf)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Upstream-commit: 584c0857ab21895e62feac686448085113c6c977
Component: engine
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@tiborvass@thaJeztah@andrewhsu@cpuguy83
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
This repository was archived by the owner on Oct 13, 2023. It is now read-only.

[19.03] Add chroot back to Tar/Untar without the previously introduced regression - #280

Merged
andrewhsu merged 7 commits into
docker-archive:19.03from
tiborvass:19.03-chroot-tar-untar-and-cp-slash-fix
Jun 17, 2019
Merged

[19.03] Add chroot back to Tar/Untar without the previously introduced regression#280
andrewhsu merged 7 commits into
docker-archive:19.03from
tiborvass:19.03-chroot-tar-untar-and-cp-slash-fix

Conversation

@tiborvass

Copy link
Copy Markdown

Reverts #275 which reverted #254 and cherry-picks the needed fix from moby#39357

Related to moby#39348

Tibor Vassand others added 5 commits June 14, 2019 01:37
This reverts commit 60013ba.
Signed-off-by: Tibor Vass <tibor@docker.com>
This reverts commit 96df6d4.
Signed-off-by: Tibor Vass <tibor@docker.com>
CID=$(docker create alpine)
docker cp $CID:/ out
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 6db9f1c)
Signed-off-by: Tibor Vass <tibor@docker.com>
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 02f1eb8)
Signed-off-by: Tibor Vass <tibor@docker.com>
Before 7a7357d, archive.TarResourceRebase was being used to copy files
and folders from the container. That function splits the source path
into a dirname + basename pair to support copying a file:
if you wanted to tar `dir/file` it would tar from `dir` the file `file`
(as part of the IncludedFiles option).
However, that path splitting logic was kept for folders as well, which
resulted in weird inputs to archive.TarWithOptions:
if you wanted to tar `dir1/dir2` it would tar from `dir1` the directory
`dir2` (as part of IncludedFiles option).
Although it was weird, it worked fine until we started chrooting into
the container rootfs when doing a `docker cp` with container source set
to `/` (cf 3029e76).
The fix is to only do the path splitting logic if the source is a file.
Unfortunately, 7a7357d added support for LCOW by duplicating some of
this subtle logic. Ideally we would need to do more refactoring of the
archive codebase to properly encapsulate these behaviors behind well-
documented APIs.
This fix does not do that. Instead, it fixes the issue inline.
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 171538c)
Signed-off-by: Tibor Vass <tibor@docker.com>
@tiborvasstiborvass changed the title 19.03 chroot tar untar and cp slash fix[19.03] Add chroot back to Tar/Untar without the previously introduced regressionJun 14, 2019
Previously, getWalkRoot("/", "foo") would return "//foo"
Now it returns "/foo"
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 7410f1a)
Signed-off-by: Tibor Vass <tibor@docker.com>
@tiborvass
tiborvassforce-pushed the 19.03-chroot-tar-untar-and-cp-slash-fix branch from 852e7c7 to 186afe3CompareJune 14, 2019 04:02
@thaJeztah

Copy link
Copy Markdown
Member

Failing on

04:15:28 # github.com/docker/docker/integration/container [github.com/docker/docker/integration/container.test]
04:15:28 integration/container/copy_test.go:108:25: cannot use ctx (type context.Context) as type *testing.T in argument to "github.com/docker/docker/integration/internal/container".Create
04:15:28 integration/container/copy_test.go:108:25: cannot use t (type *testing.T) as type context.Context in argument to "github.com/docker/docker/integration/internal/container".Create:
04:15:28 *testing.T does not implement context.Context (missing Deadline method)

To easify future backports, I think we should backport;

(But #279 ("[19.03 backport] Handle the error case when a container reattaches to the same network") has to be merged first)

So;

  1. 1. merge [19.03 backport] Handle the error case when a container reattaches to the same network #279 ("[19.03 backport] Handle the error case when a container reattaches to the same network") has to be merged first.
  2. 2. rebase and merge [19.03 backport] Integration: change signatures to fix golint warnings #281 [19.03 backport] Integration: change signatures to fix golint warnings
  3. 3. rebase and merge this PR

@thaJeztahthaJeztah added this to the 19.03.1 milestone Jun 14, 2019
@tiborvass
tiborvass marked this pull request as ready for review June 14, 2019 18:06
For reference on why this is needed:
docker-archive#280 (comment)
Signed-off-by: Tibor Vass <tibor@docker.com>
@tiborvass
tiborvassforce-pushed the 19.03-chroot-tar-untar-and-cp-slash-fix branch from 7ad2521 to 8f4b96fCompareJune 14, 2019 18:28
@thaJeztah

Copy link
Copy Markdown
Member

discussed with @tiborvass - well do a patch in this PR itself, and keep the other changes for 19.03.1

@thaJeztahthaJeztah left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@cpuguy83cpuguy83 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@andrewhsuandrewhsu modified the milestones: 19.03.1, 19.03.0Jun 17, 2019

@andrewhsuandrewhsu left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@andrewhsu
andrewhsu merged commit 3452f74 into docker-archive:19.03Jun 17, 2019
docker-jenkins pushed a commit to docker-archive/docker-ce that referenced this pull request Jun 17, 2019
For reference on why this is needed:
docker-archive/engine#280 (comment)
Signed-off-by: Tibor Vass <tibor@docker.com>
Upstream-commit: 8f4b96f19e64b96df9d8c43208cefb113715ccbf
Component: engine
thaJeztah pushed a commit to thaJeztah/docker that referenced this pull request Jun 18, 2019
For reference on why this is needed:
docker-archive#280 (comment)
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 8f4b96f)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
docker-jenkins pushed a commit to docker-archive/docker-ce that referenced this pull request Jun 20, 2019
For reference on why this is needed:
docker-archive/engine#280 (comment)
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 8f4b96f19e64b96df9d8c43208cefb113715ccbf)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Upstream-commit: 584c0857ab21895e62feac686448085113c6c977
Component: engine
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@tiborvass@thaJeztah@andrewhsu@cpuguy83
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Oct 13, 2023. It is now read-only.

[19.03] Add chroot back to Tar/Untar without the previously introduced regression - #280

Merged
andrewhsu merged 7 commits into
docker-archive:19.03from
tiborvass:19.03-chroot-tar-untar-and-cp-slash-fix
Jun 17, 2019
Merged

[19.03] Add chroot back to Tar/Untar without the previously introduced regression#280
andrewhsu merged 7 commits into
docker-archive:19.03from
tiborvass:19.03-chroot-tar-untar-and-cp-slash-fix

Conversation

@tiborvass

Copy link
Copy Markdown

Reverts #275 which reverted #254 and cherry-picks the needed fix from moby#39357

Related to moby#39348

Tibor Vassand others added 5 commits June 14, 2019 01:37
This reverts commit 60013ba.
Signed-off-by: Tibor Vass <tibor@docker.com>
This reverts commit 96df6d4.
Signed-off-by: Tibor Vass <tibor@docker.com>
CID=$(docker create alpine)
docker cp $CID:/ out
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 6db9f1c)
Signed-off-by: Tibor Vass <tibor@docker.com>
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 02f1eb8)
Signed-off-by: Tibor Vass <tibor@docker.com>
Before 7a7357d, archive.TarResourceRebase was being used to copy files
and folders from the container. That function splits the source path
into a dirname + basename pair to support copying a file:
if you wanted to tar `dir/file` it would tar from `dir` the file `file`
(as part of the IncludedFiles option).
However, that path splitting logic was kept for folders as well, which
resulted in weird inputs to archive.TarWithOptions:
if you wanted to tar `dir1/dir2` it would tar from `dir1` the directory
`dir2` (as part of IncludedFiles option).
Although it was weird, it worked fine until we started chrooting into
the container rootfs when doing a `docker cp` with container source set
to `/` (cf 3029e76).
The fix is to only do the path splitting logic if the source is a file.
Unfortunately, 7a7357d added support for LCOW by duplicating some of
this subtle logic. Ideally we would need to do more refactoring of the
archive codebase to properly encapsulate these behaviors behind well-
documented APIs.
This fix does not do that. Instead, it fixes the issue inline.
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 171538c)
Signed-off-by: Tibor Vass <tibor@docker.com>
@tiborvasstiborvass changed the title 19.03 chroot tar untar and cp slash fix[19.03] Add chroot back to Tar/Untar without the previously introduced regressionJun 14, 2019
Previously, getWalkRoot("/", "foo") would return "//foo"
Now it returns "/foo"
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 7410f1a)
Signed-off-by: Tibor Vass <tibor@docker.com>
@tiborvass
tiborvassforce-pushed the 19.03-chroot-tar-untar-and-cp-slash-fix branch from 852e7c7 to 186afe3CompareJune 14, 2019 04:02
@thaJeztah

Copy link
Copy Markdown
Member

Failing on

04:15:28 # github.com/docker/docker/integration/container [github.com/docker/docker/integration/container.test]
04:15:28 integration/container/copy_test.go:108:25: cannot use ctx (type context.Context) as type *testing.T in argument to "github.com/docker/docker/integration/internal/container".Create
04:15:28 integration/container/copy_test.go:108:25: cannot use t (type *testing.T) as type context.Context in argument to "github.com/docker/docker/integration/internal/container".Create:
04:15:28 *testing.T does not implement context.Context (missing Deadline method)

To easify future backports, I think we should backport;

(But #279 ("[19.03 backport] Handle the error case when a container reattaches to the same network") has to be merged first)

So;

  1. 1. merge [19.03 backport] Handle the error case when a container reattaches to the same network #279 ("[19.03 backport] Handle the error case when a container reattaches to the same network") has to be merged first.
  2. 2. rebase and merge [19.03 backport] Integration: change signatures to fix golint warnings #281 [19.03 backport] Integration: change signatures to fix golint warnings
  3. 3. rebase and merge this PR

@thaJeztahthaJeztah added this to the 19.03.1 milestone Jun 14, 2019
@tiborvass
tiborvass marked this pull request as ready for review June 14, 2019 18:06
For reference on why this is needed:
docker-archive#280 (comment)
Signed-off-by: Tibor Vass <tibor@docker.com>
@tiborvass
tiborvassforce-pushed the 19.03-chroot-tar-untar-and-cp-slash-fix branch from 7ad2521 to 8f4b96fCompareJune 14, 2019 18:28
@thaJeztah

Copy link
Copy Markdown
Member

discussed with @tiborvass - well do a patch in this PR itself, and keep the other changes for 19.03.1

@thaJeztahthaJeztah left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@cpuguy83cpuguy83 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@andrewhsuandrewhsu modified the milestones: 19.03.1, 19.03.0Jun 17, 2019

@andrewhsuandrewhsu left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@andrewhsu
andrewhsu merged commit 3452f74 into docker-archive:19.03Jun 17, 2019
docker-jenkins pushed a commit to docker-archive/docker-ce that referenced this pull request Jun 17, 2019
For reference on why this is needed:
docker-archive/engine#280 (comment)
Signed-off-by: Tibor Vass <tibor@docker.com>
Upstream-commit: 8f4b96f19e64b96df9d8c43208cefb113715ccbf
Component: engine
thaJeztah pushed a commit to thaJeztah/docker that referenced this pull request Jun 18, 2019
For reference on why this is needed:
docker-archive#280 (comment)
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 8f4b96f)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
docker-jenkins pushed a commit to docker-archive/docker-ce that referenced this pull request Jun 20, 2019
For reference on why this is needed:
docker-archive/engine#280 (comment)
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 8f4b96f19e64b96df9d8c43208cefb113715ccbf)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Upstream-commit: 584c0857ab21895e62feac686448085113c6c977
Component: engine
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@tiborvass@thaJeztah@andrewhsu@cpuguy83
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Oct 13, 2023. It is now read-only.

[19.03] Add chroot back to Tar/Untar without the previously introduced regression - #280

Merged
andrewhsu merged 7 commits into
docker-archive:19.03from
tiborvass:19.03-chroot-tar-untar-and-cp-slash-fix
Jun 17, 2019
Merged

[19.03] Add chroot back to Tar/Untar without the previously introduced regression#280
andrewhsu merged 7 commits into
docker-archive:19.03from
tiborvass:19.03-chroot-tar-untar-and-cp-slash-fix

Conversation

@tiborvass

Copy link
Copy Markdown

Reverts #275 which reverted #254 and cherry-picks the needed fix from moby#39357

Related to moby#39348

Tibor Vassand others added 5 commits June 14, 2019 01:37
This reverts commit 60013ba.
Signed-off-by: Tibor Vass <tibor@docker.com>
This reverts commit 96df6d4.
Signed-off-by: Tibor Vass <tibor@docker.com>
CID=$(docker create alpine)
docker cp $CID:/ out
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 6db9f1c)
Signed-off-by: Tibor Vass <tibor@docker.com>
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 02f1eb8)
Signed-off-by: Tibor Vass <tibor@docker.com>
Before 7a7357d, archive.TarResourceRebase was being used to copy files
and folders from the container. That function splits the source path
into a dirname + basename pair to support copying a file:
if you wanted to tar `dir/file` it would tar from `dir` the file `file`
(as part of the IncludedFiles option).
However, that path splitting logic was kept for folders as well, which
resulted in weird inputs to archive.TarWithOptions:
if you wanted to tar `dir1/dir2` it would tar from `dir1` the directory
`dir2` (as part of IncludedFiles option).
Although it was weird, it worked fine until we started chrooting into
the container rootfs when doing a `docker cp` with container source set
to `/` (cf 3029e76).
The fix is to only do the path splitting logic if the source is a file.
Unfortunately, 7a7357d added support for LCOW by duplicating some of
this subtle logic. Ideally we would need to do more refactoring of the
archive codebase to properly encapsulate these behaviors behind well-
documented APIs.
This fix does not do that. Instead, it fixes the issue inline.
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 171538c)
Signed-off-by: Tibor Vass <tibor@docker.com>
@tiborvasstiborvass changed the title 19.03 chroot tar untar and cp slash fix[19.03] Add chroot back to Tar/Untar without the previously introduced regressionJun 14, 2019
Previously, getWalkRoot("/", "foo") would return "//foo"
Now it returns "/foo"
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 7410f1a)
Signed-off-by: Tibor Vass <tibor@docker.com>
@tiborvass
tiborvassforce-pushed the 19.03-chroot-tar-untar-and-cp-slash-fix branch from 852e7c7 to 186afe3CompareJune 14, 2019 04:02
@thaJeztah

Copy link
Copy Markdown
Member

Failing on

04:15:28 # github.com/docker/docker/integration/container [github.com/docker/docker/integration/container.test]
04:15:28 integration/container/copy_test.go:108:25: cannot use ctx (type context.Context) as type *testing.T in argument to "github.com/docker/docker/integration/internal/container".Create
04:15:28 integration/container/copy_test.go:108:25: cannot use t (type *testing.T) as type context.Context in argument to "github.com/docker/docker/integration/internal/container".Create:
04:15:28 *testing.T does not implement context.Context (missing Deadline method)

To easify future backports, I think we should backport;

(But #279 ("[19.03 backport] Handle the error case when a container reattaches to the same network") has to be merged first)

So;

  1. 1. merge [19.03 backport] Handle the error case when a container reattaches to the same network #279 ("[19.03 backport] Handle the error case when a container reattaches to the same network") has to be merged first.
  2. 2. rebase and merge [19.03 backport] Integration: change signatures to fix golint warnings #281 [19.03 backport] Integration: change signatures to fix golint warnings
  3. 3. rebase and merge this PR

@thaJeztahthaJeztah added this to the 19.03.1 milestone Jun 14, 2019
@tiborvass
tiborvass marked this pull request as ready for review June 14, 2019 18:06
For reference on why this is needed:
docker-archive#280 (comment)
Signed-off-by: Tibor Vass <tibor@docker.com>
@tiborvass
tiborvassforce-pushed the 19.03-chroot-tar-untar-and-cp-slash-fix branch from 7ad2521 to 8f4b96fCompareJune 14, 2019 18:28
@thaJeztah

Copy link
Copy Markdown
Member

discussed with @tiborvass - well do a patch in this PR itself, and keep the other changes for 19.03.1

@thaJeztahthaJeztah left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@cpuguy83cpuguy83 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@andrewhsuandrewhsu modified the milestones: 19.03.1, 19.03.0Jun 17, 2019

@andrewhsuandrewhsu left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@andrewhsu
andrewhsu merged commit 3452f74 into docker-archive:19.03Jun 17, 2019
docker-jenkins pushed a commit to docker-archive/docker-ce that referenced this pull request Jun 17, 2019
For reference on why this is needed:
docker-archive/engine#280 (comment)
Signed-off-by: Tibor Vass <tibor@docker.com>
Upstream-commit: 8f4b96f19e64b96df9d8c43208cefb113715ccbf
Component: engine
thaJeztah pushed a commit to thaJeztah/docker that referenced this pull request Jun 18, 2019
For reference on why this is needed:
docker-archive#280 (comment)
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 8f4b96f)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
docker-jenkins pushed a commit to docker-archive/docker-ce that referenced this pull request Jun 20, 2019
For reference on why this is needed:
docker-archive/engine#280 (comment)
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 8f4b96f19e64b96df9d8c43208cefb113715ccbf)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Upstream-commit: 584c0857ab21895e62feac686448085113c6c977
Component: engine
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@tiborvass@thaJeztah@andrewhsu@cpuguy83
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
This repository was archived by the owner on Oct 13, 2023. It is now read-only.

[19.03] Add chroot back to Tar/Untar without the previously introduced regression - #280

Merged
andrewhsu merged 7 commits into
docker-archive:19.03from
tiborvass:19.03-chroot-tar-untar-and-cp-slash-fix
Jun 17, 2019
Merged

[19.03] Add chroot back to Tar/Untar without the previously introduced regression#280
andrewhsu merged 7 commits into
docker-archive:19.03from
tiborvass:19.03-chroot-tar-untar-and-cp-slash-fix

Conversation

@tiborvass

Copy link
Copy Markdown

Reverts #275 which reverted #254 and cherry-picks the needed fix from moby#39357

Related to moby#39348

Tibor Vassand others added 5 commits June 14, 2019 01:37
This reverts commit 60013ba.
Signed-off-by: Tibor Vass <tibor@docker.com>
This reverts commit 96df6d4.
Signed-off-by: Tibor Vass <tibor@docker.com>
CID=$(docker create alpine)
docker cp $CID:/ out
Signed-off-by: Brian Goff <cpuguy83@gmail.com>
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 6db9f1c)
Signed-off-by: Tibor Vass <tibor@docker.com>
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 02f1eb8)
Signed-off-by: Tibor Vass <tibor@docker.com>
Before 7a7357d, archive.TarResourceRebase was being used to copy files
and folders from the container. That function splits the source path
into a dirname + basename pair to support copying a file:
if you wanted to tar `dir/file` it would tar from `dir` the file `file`
(as part of the IncludedFiles option).
However, that path splitting logic was kept for folders as well, which
resulted in weird inputs to archive.TarWithOptions:
if you wanted to tar `dir1/dir2` it would tar from `dir1` the directory
`dir2` (as part of IncludedFiles option).
Although it was weird, it worked fine until we started chrooting into
the container rootfs when doing a `docker cp` with container source set
to `/` (cf 3029e76).
The fix is to only do the path splitting logic if the source is a file.
Unfortunately, 7a7357d added support for LCOW by duplicating some of
this subtle logic. Ideally we would need to do more refactoring of the
archive codebase to properly encapsulate these behaviors behind well-
documented APIs.
This fix does not do that. Instead, it fixes the issue inline.
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 171538c)
Signed-off-by: Tibor Vass <tibor@docker.com>
@tiborvasstiborvass changed the title 19.03 chroot tar untar and cp slash fix[19.03] Add chroot back to Tar/Untar without the previously introduced regressionJun 14, 2019
Previously, getWalkRoot("/", "foo") would return "//foo"
Now it returns "/foo"
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 7410f1a)
Signed-off-by: Tibor Vass <tibor@docker.com>
@tiborvass
tiborvassforce-pushed the 19.03-chroot-tar-untar-and-cp-slash-fix branch from 852e7c7 to 186afe3CompareJune 14, 2019 04:02
@thaJeztah

Copy link
Copy Markdown
Member

Failing on

04:15:28 # github.com/docker/docker/integration/container [github.com/docker/docker/integration/container.test]
04:15:28 integration/container/copy_test.go:108:25: cannot use ctx (type context.Context) as type *testing.T in argument to "github.com/docker/docker/integration/internal/container".Create
04:15:28 integration/container/copy_test.go:108:25: cannot use t (type *testing.T) as type context.Context in argument to "github.com/docker/docker/integration/internal/container".Create:
04:15:28 *testing.T does not implement context.Context (missing Deadline method)

To easify future backports, I think we should backport;

(But #279 ("[19.03 backport] Handle the error case when a container reattaches to the same network") has to be merged first)

So;

  1. 1. merge [19.03 backport] Handle the error case when a container reattaches to the same network #279 ("[19.03 backport] Handle the error case when a container reattaches to the same network") has to be merged first.
  2. 2. rebase and merge [19.03 backport] Integration: change signatures to fix golint warnings #281 [19.03 backport] Integration: change signatures to fix golint warnings
  3. 3. rebase and merge this PR

@thaJeztahthaJeztah added this to the 19.03.1 milestone Jun 14, 2019
@tiborvass
tiborvass marked this pull request as ready for review June 14, 2019 18:06
For reference on why this is needed:
docker-archive#280 (comment)
Signed-off-by: Tibor Vass <tibor@docker.com>
@tiborvass
tiborvassforce-pushed the 19.03-chroot-tar-untar-and-cp-slash-fix branch from 7ad2521 to 8f4b96fCompareJune 14, 2019 18:28
@thaJeztah

Copy link
Copy Markdown
Member

discussed with @tiborvass - well do a patch in this PR itself, and keep the other changes for 19.03.1

@thaJeztahthaJeztah left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@cpuguy83cpuguy83 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@andrewhsuandrewhsu modified the milestones: 19.03.1, 19.03.0Jun 17, 2019

@andrewhsuandrewhsu left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@andrewhsu
andrewhsu merged commit 3452f74 into docker-archive:19.03Jun 17, 2019
docker-jenkins pushed a commit to docker-archive/docker-ce that referenced this pull request Jun 17, 2019
For reference on why this is needed:
docker-archive/engine#280 (comment)
Signed-off-by: Tibor Vass <tibor@docker.com>
Upstream-commit: 8f4b96f19e64b96df9d8c43208cefb113715ccbf
Component: engine
thaJeztah pushed a commit to thaJeztah/docker that referenced this pull request Jun 18, 2019
For reference on why this is needed:
docker-archive#280 (comment)
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 8f4b96f)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
docker-jenkins pushed a commit to docker-archive/docker-ce that referenced this pull request Jun 20, 2019
For reference on why this is needed:
docker-archive/engine#280 (comment)
Signed-off-by: Tibor Vass <tibor@docker.com>
(cherry picked from commit 8f4b96f19e64b96df9d8c43208cefb113715ccbf)
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Upstream-commit: 584c0857ab21895e62feac686448085113c6c977
Component: engine
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@tiborvass@thaJeztah@andrewhsu@cpuguy83