You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .github/ISSUE_TEMPLATE/bug_report.yaml
+4Lines changed: 4 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -34,3 +34,7 @@ body:
34
34
- type: textarea
35
35
attributes:
36
36
label: Any additional context or information about the bug
37
+
description: |
38
+
If this is an issue with lazy loading, please indicate how the snapshotter pulled the image. See [Determining how an image was pulled](../../docs/debug.md#determining-how-an-image-was-pulled) in the debugging doc for more information.
Copy file name to clipboardExpand all lines: docs/debug.md
+56Lines changed: 56 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,6 +12,11 @@ This document outlines where to find/access logs and metrics for the snapshotter
12
12
-[Metrics Emitted](#metrics-emitted)
13
13
-[Common Scenarios](#common-scenarios)
14
14
-[Pulling an Image](#pulling-an-image)
15
+
-[Determining How an Image Was Pulled](#determining-how-an-image-was-pulled)
16
+
-[Explicit Index Digest](#explicit-index-digest)
17
+
-[SOCI Index Manifest v2 via SOCI-Enabled Images](#soci-index-manifest-v2-via-soci-enabled-images)
18
+
-[SOCI Index Manifest v1 via The Referrers API](#soci-index-manifest-v1-via-the-referrers-api)
19
+
-[Ahead of Time Without a SOCI Index](#ahead-of-time-without-a-soci-index)
15
20
-[No lazy-loading](#no-lazy-loading)
16
21
-[Pull Taking An Abnormal Amount Of Time](#pull-taking-an-abnormal-amount-of-time)
17
22
-[Background Fetching](#background-fetching)
@@ -103,6 +108,57 @@ While pulling, the image manifest, config, and layers without zTOCs' are fetched
103
108
104
109
Below are a list of common error paths that may occur in this phase:
105
110
111
+
### Determining How an Image Was Pulled
112
+
113
+
The SOCI snapshotter can pull an image using one of four modes:
114
+
1) Lazily using an explicitly provided SOCI index digest
115
+
2) Lazily using a SOCI index manifest v2 via SOCI-enabled images
116
+
3) Lazily using a SOCI index manifest v1 via the Referrers API
117
+
4) Ahead of time without a SOCI index
118
+
119
+
Determining which of these mode was used is often a good first step for debugging image pull issues.
120
+
121
+
When the SOCI snapshotter starts to pull an image, it will emit a set of debug logs to indicate which modes were tried and which was ultimately used.
122
+
123
+
#### Explicit Index Digest
124
+
If the SOCI snapshotter finds an explicit index digest, it will use it and log the following message:
125
+
```
126
+
using provided soci index digest
127
+
```
128
+
129
+
#### SOCI Index Manifest v2 via SOCI-Enabled Images
130
+
If an explicit index digest was not provided. The SOCI snapshotter will try to use a SOCI-enabled image.
131
+
132
+
If `pull_modes.soci_v2.enabled` is `false`, the snapshotter will log:
133
+
```
134
+
soci v2 is disabled
135
+
```
136
+
137
+
Otherwise, if it find that the image is SOCI-enabled, it will log:
138
+
```
139
+
using soci v2 index annotation
140
+
```
141
+
142
+
#### SOCI Index Manifest v1 via The Referrers API
143
+
If the image is not SOCI-enabled, the SOCI snapshotter will try to use the referrers API.
144
+
145
+
If `pull_modes.soci_v1.enabled` is `false` (it is false by default), the SOCI snapshotter will log:
146
+
```
147
+
soci v1 is disabled
148
+
```
149
+
150
+
Otherwise, if it finds a SOCI index via the referrers API, it will log:
151
+
```
152
+
using soci v1 index via referrers API
153
+
```
154
+
155
+
#### Ahead of Time Without a SOCI Index
156
+
If none of the above apply, the SOCI snapshotter will pull the image ahead of time and log:
157
+
158
+
```
159
+
deferring to container runtime
160
+
```
161
+
106
162
### No lazy-loading
107
163
108
164
If you notice that all layers are being fetched for an image or that `FUSE` mounts are not being created for layers with a zTOC than that means that remote mounting has failed for those layers.
0 commit comments