Bioconductor / AnnotationHub

Client for the Bioconductor AnnotationHub web resource
16 stars 13 forks source link

permission denied cannot open compressed file #41

Open Dane-Z opened 1 year ago

Dane-Z commented 1 year ago

Hello, I have an issue setting up annotationHub for use in a VM. I am getting this error whenever I try to download a package from the hub using my R script:

snapshotDate(): 2022-10-31 Error in value[3L] : failed to create index hubCache(): /usr/share/httpd/.cache/R/AnnotationHub reason: cannot open the connection Calls: ... tryCatch -> tryCatchList -> tryCatchOne -> In addition: Warning message: In gzfile(file, mode) : cannot open compressed file '/usr/share/httpd/.cache/R/AnnotationHub/b797a59351bdd_b797a59351bdd_hub_index.rds', probable reason 'Permission denied' Execution halted

I have enabled full access to .cache, R, and AnnotationHub directories and I'm still getting permission denied errors. Also, this .rds file does not exist within the AnnotationHub directory when list the directories contents. However, I've manually downloaded the hub object in R outside of the script and have been able to do that successfully. This is where the local cache so I'm not too sure why the .rds file is not showing up. Any suggestions or help would be greatly appreciated.

Best wishes

lshep commented 1 year ago

There might be some other permissions that have to be set. Maybe this might be helpful: https://bioconductor.org/packages/3.16/bioc/vignettes/AnnotationHub/inst/doc/TroubleshootingTheCache.html#group-hubcache-access

I think at one point there might have been some trouble if crossing partitions? Do you know if this is the case?

The index file should get created after the hub downloaded and it almost sounds like maybe it was written with bad permissions. If the permissions were fixed and the user has permissions. Maybe following Troubleshooting to remove the sqlite and index file and try to download again.

Dane-Z commented 1 year ago

Hi, thank you for the response! The problem ended up being with how SELinux handled retrieving files. Giving permissions to download particular annotation packages via R solved the issue. For anyone else experiencing this issue using RHEL8, the sealert package is very helpful for troubleshooting.

additionally, I had to give permissions to use downloaded files in the local usr cache. I had been troubleshooting in root, which was not where the local cache is stored/not where AnnotationHub tried to retrieve annotations when accessing from particular IDs

lshep commented 1 year ago

Thank you! I'll try to document this in a troubleshooting section for future reference. If its okay with you I will keep this issue open until I have a chance to add documentation.