File resource download hangs when trying to download file
- Dominant language
- Java
- Stars
- 41
- Forks
- 37
- PR merge metrics
- No merged PRs in 30d
Description
[NOTE]: # ( ^^ Provide a general summary of the issue in the title above. ^^ )
## Description
I'm running download_http.py to generate a download url for a file resource. When I click on the generated URL to download the file, it just hangs.
## Steps to Reproduce
[NOTE]: # ( Include details description or commands to reproduce. )
I created a SCP file resource
```json
...
{
"type": "SCP",
"resourceId": "remote-ssh-resource",
"resourceMode": "FILE",
"resourcePath": "/tmp/test1/solution_summary.json",
"storageId" : "remote-ssh-storage"
},
```
Then I generate the download URL with a python script (modified download_http.py):
```python
import grpc
import MFTApi_pb2
import MFTApi_pb2_grpc
channel = grpc.insecure_channel('localhost:7004')
stub = MFTApi_pb2_grpc.MFTApiServiceStub(channel)
download_request = MFTApi_pb2.HttpDownloadApiRequest(
# sourceStoreId ="remote-ssh-storage",
sourceResourceId = "remote-ssh-resource",
# sourceResourceId = "remote-ssh-dir-resource",
# sourceStoreId ="remote-ssh-dir-resource",
# sourcePath= "/tmp/test1/foo",
sourceToken = "local-ssh-cred",
sourceType= "SCP",
targetAgent = "agent0",
# mftAuthorizationToken = ""
)
result = stub.submitHttpDownload(download_request)
print(result)
```
When I run the script I get:
```
$ python download_http.py
url: "http://localhost:3333/4978023d-c807-46fc-989b-8f550d18021d"
targetAgent: "agent0"
```
When I load the URL in a browser, the browser just spins and never finishes loading the file.
## Expected Behaviour
[NOTE]: # ( Tell us what you did and what you expected to happen and what you instead saw. )
Loading the URL in the browser would result in a file download.
## Your Environment
[TIP]: # ( Include as many relevant details about your environment as possible. )
[TIP]: # ( Mention Custos Branch or release version, runtime and compiler version )
* mft branch or release version used: develop
* Operating system and version: macOS Big Sur
## Additional Context
[TIP]: # ( full error message, exception listing, stack trace, logs or other information which can assist in diagnosing the bug. )
By using logging statements, I know that it gets to trying to trying to create a session in SCPReceiver.java
https://github.com/apache/airavata-mft/blob/develop/transport/scp-transport/src/main/java/org/apache/airavata/mft/transport/scp/SCPReceiver.java#L103
Apparently it is stuck on this line in SCPTransportUtil:
https://github.com/apache/airavata-mft/blob/develop/transport/scp-transport/src/main/java/org/apache/airavata/mft/transport/scp/SCPTransportUtil.java#L37
because I can log the line before but none of my logging after this line prints.
Also, I know that the SCP configuration is good since I'm able to fetch metadata for the resource:
```python
request = MFTApi_pb2.FetchResourceMetadataRequest(
resourceId= "remote-ssh-resource",
resourceType = "SCP",
resourceToken = "local-ssh-cred",
targetAgentId = "agent0",
)
response = stub.getFileResourceMetadata(request)
print(response)
```
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the download_http.py reproduction and follow the request into SCPReceiver.java at line 103, then inspect SCPTransportUtil.java at line 37 where logging stops. Compare this path with the working getFileResourceMetadata request and verify that opening the generated URL completes with the requested file download.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- grpc, java, python
- Domain
- backend, networking
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100