Skip to content

Commit 8da771d

Browse files
committed
Rough draft of troubleshooting for functioning Origin access but no Cache access
1 parent 29fcbca commit 8da771d

1 file changed

Lines changed: 40 additions & 11 deletions

File tree

  • docs/app/getting-help/troubleshooting

docs/app/getting-help/troubleshooting/page.mdx

Lines changed: 40 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,34 +21,34 @@ Regardless of how a Pelican client is implemented, it will be interacting with t
2121

2222
* Connecting to Federation services
2323
* Getting information about a namespace
24-
* Transferring data
24+
* Transferring data
2525

2626
among other things. (For more information, see [About Pelican](/about-pelican) and [Getting Data with Pelican](/getting-data-with-pelican).)
2727
Furthermore, these operations are conducted over the internet and so common networking problems can impact these operations.
2828

2929
### Understanding Pelican client error messages
3030

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.
3232
Ideally, you can use this error to understand the problem and what needs to be done.
3333

3434
[Emma TODO: How to parse a pelican error message]
3535

3636
### Authentication issues
3737

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.
3939
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.
4040

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.
4242
In some cases, this cookie may become invalid and cause issues with the authentication flow for using Pelican.
4343

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.
4545
To do so, follow these instructions:
4646

4747
[Patrick TODO]
4848

4949
## Pelican CLI
5050

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.
5252

5353
### Reset local client
5454

@@ -78,7 +78,7 @@ To reset your local configuration on **Linux**/**MacOS**:
7878
```
7979

8080
<Callout type="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.
8282
</Callout>
8383

8484
To reset your local configuration on **Windows**:
@@ -116,13 +116,42 @@ In principle, once you've successfully completed a transfer this way, everything
116116

117117
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.
118118

119-
### Unable to transfer data via a cache
119+
### Unable to transfer data via Caches
120120

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).
122122

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.
124154

125155
## Operating a Federation
126156

127157
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).
128-

0 commit comments

Comments
 (0)