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: docs/app/getting-help/troubleshooting/page.mdx
+40-11Lines changed: 40 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -21,34 +21,34 @@ Regardless of how a Pelican client is implemented, it will be interacting with t
21
21
22
22
* Connecting to Federation services
23
23
* Getting information about a namespace
24
-
* Transferring data
24
+
* Transferring data
25
25
26
26
among other things. (For more information, see [About Pelican](/about-pelican) and [Getting Data with Pelican](/getting-data-with-pelican).)
27
27
Furthermore, these operations are conducted over the internet and so common networking problems can impact these operations.
28
28
29
29
### Understanding Pelican client error messages
30
30
31
-
The Pelican client you are using will return an error if something goes wrong.
31
+
The Pelican client you are using will return an error if something goes wrong.
32
32
Ideally, you can use this error to understand the problem and what needs to be done.
33
33
34
34
[Emma TODO: How to parse a pelican error message]
35
35
36
36
### Authentication issues
37
37
38
-
For protected reads and rights, Pelican can integrate with authentication services such as CILogon.
38
+
For protected reads and rights, Pelican can integrate with authentication services such as CILogon.
39
39
When you try to run a protected operation, you'll be prompted by Pelican to authenticate, usually by going to a web address in your browser and signing in with the necessary identity.
40
40
41
-
Often times, the browser will store a cookie regarding your login to remember you next time.
41
+
Often times, the browser will store a cookie regarding your login to remember you next time.
42
42
In some cases, this cookie may become invalid and cause issues with the authentication flow for using Pelican.
43
43
44
-
We recommend that you clear the cookies in your browser when troubleshooting issues with authenticated actions.
44
+
We recommend that you clear the cookies in your browser when troubleshooting issues with authenticated actions.
45
45
To do so, follow these instructions:
46
46
47
47
[Patrick TODO]
48
48
49
49
## Pelican CLI
50
50
51
-
This section discusses common errors when working with the [Pelican CLI](/getting-data-with-pelican/client) client.
51
+
This section discusses common errors when working with the [Pelican CLI](/getting-data-with-pelican/client) client.
52
52
53
53
### Reset local client
54
54
@@ -78,7 +78,7 @@ To reset your local configuration on **Linux**/**MacOS**:
78
78
```
79
79
80
80
<Callouttype="warning">
81
-
Make sure you avoid any typos! This command will **recursively delete** whatever you provide to it.
81
+
Make sure you avoid any typos! This command will **recursively delete** whatever you provide to it.
82
82
</Callout>
83
83
84
84
To reset your local configuration on **Windows**:
@@ -116,13 +116,42 @@ In principle, once you've successfully completed a transfer this way, everything
116
116
117
117
Keep in mind that general networking issues can complicate the testing process, so it's also a good idea to test the transfer multiple times before jumping into troubleshooting your configuration.
118
118
119
-
### Unable to transfer data via a cache
119
+
### Unable to transfer data via Caches
120
120
121
-
A common issue is that you **are** able to download an object **directly** from the origin (using the `pelican object get --direct` command) but **are not** able to download the object **via a cache** (using the `pelican object get` command).
121
+
One issue you may face with some Origins is the case where you can download an object **directly** from the Origin (using the `pelican object get --direct` command) but **are not** able to download the object **via a Cache** (using the `pelican object get` command).
122
122
123
-
To troubleshoot this issue, [Justin TODO]
123
+
This typically arises when the Origin restricts read access using additional authorization policies configured with parameters like `Xrootd.ScitokensConfig`, `Xrootd.Authfile` or even `Xrootd.ConfigFile`.
124
+
Some Origin administrators may use these parameters to give special privileges to a subset of users, to side door the Origin for externally-integrated data services like Rucio, or to enable x509 authentication at the Origin.
125
+
126
+
The problem with providing Origins with authorization configuration using these parameters is that this information doesn't propagate to the rest of the federation because these parameters are local to the Origin and aren't shared via the federation's advertisement protocol.
127
+
128
+
### Troubleshooting Steps
129
+
130
+
#### Checking the Director
131
+
To troubleshoot this issue, start by visiting your federation's Director and searching for the namespace in question.
132
+
If the Director does not have your namespace, there is likely an issue with your Origin's ability to advertise to the federation, and this can only be fixed by the Origin administrator or the federation's central services operators.
133
+
134
+
If the namespace **does** exist at the Director, click on it to see two important pieces of information:
135
+
1. The namespace capabilities explaining what operations the federation thinks is allowable for the namespace (e.g. "Reads", "Writes", "Listings")
136
+
1. The namespace's configured issuer(s) (use the "Token Issuer" display, not the "Token Generation" display)
137
+
138
+
Double check that these are what you expect to see for the namespace.
139
+
Any incorrect values should be addressed by modifying the Origin's configuration.
140
+
If you're unsure, you may need to consult the namespace/Origin's system administrator.
141
+
142
+
#### Checking your token
143
+
If there are no obvious issues there, it's time to inspect any token you're using to successfully access data via the Origin.
144
+
There are two tools you can use to inspect the token:
145
+
1. The CLI called [`htgettoken`](https://pypi.org/project/htgettoken/)
146
+
1. The [jwt.io](jwt.io) interface
147
+
148
+
The key things to look for in the token are the `iss` (issuer) and the `aud` (audience) fields.
149
+
The token's issuer **must** match one of the issuers configured in the Director, and the audience must be set to the correct "any" string for the token's token profile (`"https://wlcg.cern.ch/jwt/v1/any"` for wlcg and `"ANY"` for scitokens).
150
+
Caches will only approve tokens using the issuers it discovers from the Director, and they expect tokens with a broad audience so they can validate the request on behalf of any client.
151
+
152
+
When these two things aren't true, the token cannot work with Caches.
153
+
Since the token works with the Origin, it implies special authorization polices were configured with one of the params listed above, and a different token is needed to access objects through Caches.
124
154
125
155
## Operating a Federation
126
156
127
157
If you are deploying your own Pelican Federation, we recommend that you contact the Pelican team for assistance in getting started and troubleshooting issues: [pelicanplatform.org/contact](https://pelicanplatform.org/contact).
0 commit comments