bioconda / bioconda-recipes

Conda recipes for the bioconda channel.
https://bioconda.github.io
MIT License
1.61k stars 3.2k forks source link

Linking bioconda::bioconductor-genomeinfodbdata fails #49107

Closed cmeesters closed 2 months ago

cmeesters commented 2 months ago

Hi,

Anyone succeeded installing qualimap recently? I cannot, because this error keeps re-occuring:

ERROR conda.core.link:_execute(945): An error occurred while installing package 'bioconda::bioconductor-genomeinfodbdata-1.2.11-r43hdfd78af_1'

ERROR conda.core.link:_execute(945): An error occurred while installing package 'bioconda::bioconductor-genomeinfodbdata-1.2.11-r43hdfd78af_1'.
Rolling back transaction: ...working... done
class: LinkError
message:
post-link script failed for package bioconda::bioconductor-genomeinfodbdata-1.2.11-r43hdfd78af_1

I've been using a clean test environment, even. And tried different versions. All to no avail.

The issue might be related to a previous one: #13846

Ideas?

cmeesters commented 2 months ago

turned out, taking a different build works (edit: not always????):

$ mamba install bioconductor-genomeinfodbdata=1.2.11=r43hdfd78af_0

wasjusttoolateyesterday

PS however, perhaps worth fixing anyway?

martin-g commented 2 months ago

Here is the diff between these two versions: https://github.com/bioconda/bioconda-recipes/commit/3bb4fba062b3c35d5ef5e8888301fb658fc7a5ec#diff-bcbb90d909baba808f534a8f1898aff1e706e7e87bdad0da01c7ef4aea24f915 I am not sure what causes the problem.

cmeesters commented 2 months ago

Wild guess of mine: version mismatches within the environment - note that I tried a vanilla env, too, so I suspect a within-R-mismatch. However, I am missing expertise to pinpoint this.

corneliusroemer commented 2 months ago

I cannot reproduce, running micromamba create -n throwaway bioconductor-genomeinfodbdata works on osx-arm64.

Which os and cpu architecture do you use @cmeesters? Could you provide the exact env create command you were using?

The following all work:

micromamba create -n throwaway bioconductor-genomeinfodbdata --platform osx-64 --dry-run
micromamba create -n throwaway bioconductor-genomeinfodbdata --platform osx-arm64 --dry-run
micromamba create -n throwaway bioconductor-genomeinfodbdata --platform linux-aarch64 --dry-run
micromamba create -n throwaway bioconductor-genomeinfodbdata --platform linux-64 --dry-run

Ah sorry, I see it's the post-link script that doesn't work in your case - so dry-run won't help.

For me both osx-64 and osx-arm64 work including their post-link scripts.

cmeesters commented 2 months ago

Oh, wonderful security measures!

On "my" cluster, we maintain a whitelist. Only whitelisted URLs are allowed. Whilst bioconductor.org was added and curl could pass the proxy, the connection later was blocked because there was a referral to mghp.osn.xsede.org, which I first overlooked. Adding it to the squid helped.

If you have a hint how to make the script more verbose in this regard, I would file a PR after my holidays.

corneliusroemer commented 2 months ago

@cmeesters Great you figured it out! What sort of logging would have helped you? set -x for post-link.sh for example?

corneliusroemer commented 2 months ago

They changed the server for Post-Link data recently it seems. See https://bioconda.github.io/faqs.html#why-are-bioconductor-data-packages-failing-to-install

Recently Bioconductor packages have moved to a different server (XSEDE/ACCESS). The old URL, the one hard-coded in the post-link scripts, is correctly now a redirect to the new location. But without -L, the existing recipes and their post-link scripts cannot follow the redirect! Compounding this, the archive URLs stopped being generated, so the backup strategy also failed.

cmeesters commented 2 months ago

What sort of logging would have helped you?

Nope, it wasn't the set -x for the postlink script explicitely.

The verbose installation gives you a -x version already. Took me a while to digest. Then, I found the curl command. It worked on my computer. On cluster one. But not on cluster two. I was dumbfounded. A colleague pointed out: Why don't you try the verbose version for curl, too?

In fact, the first error message was misleading.