ContinuumIO / anaconda-issues

Anaconda issue tracking
648 stars 221 forks source link

md5 mismatch when updating packages #71

Closed RayVR closed 10 years ago

RayVR commented 10 years ago

when multiple packages need to be updated the conda tool generates an error saying md5 sum mismatch after the first package. This sometimes disappears during a second run.

conda info output:

platform : win-32 conda version : 2.3.0 root environment : C:\Anaconda (writable) default environment : C:\Anaconda envs directories : C:\Anaconda\envs package cache : C:\Anaconda\pkgs channel URLs : http://repo.continuum.io/pkgs/free/win-32/ http://repo.continuum.io/pkgs/pro/win-32/ config file : None is foreign system : False

asmeurer commented 10 years ago

Which packages?

RayVR commented 10 years ago

this is independent of a particular package

asmeurer commented 10 years ago

Can you paste a more detailed example output (or take a screenshot)?

RayVR commented 10 years ago

I will take a screenshot the next time it happens.

RayVR commented 10 years ago

md5 error

asmeurer commented 10 years ago

Conda 3.0 was just released. Can you see if it fixes the issue. conda update conda.

asmeurer commented 10 years ago

I also pushed a commit that makes this message more verbose. That won't make it until the next release.

RayVR commented 10 years ago

This issue continues. I'm on conda 3.0.3 and still seeing this nearly every time I use conda to update/install.

RayVR commented 10 years ago

I am trying to update Anaconda and I've hit this issue 20 times already and I'm not yet finished with the updates. I can't detect any pattern in the md5 failure. Sometimes it happens on the first package fetch, sometimes I get through 7 or 8.

ilanschnell commented 10 years ago

It has to be a bad internet connection.

davidosterberg commented 9 years ago

I also have this problem using conda 3.9.1. The problem is repeatable on two different computers, one running Ubuntu 14.04 and the other running Windows 7. Both these computers are using the same http proxy.

Here are my observations:

asmeurer commented 9 years ago

You can downgrade requests with conda install requests=2.5.2 to check.

ryanvarley commented 9 years ago

I just had the md5 mismatch issue (conda 3.9.1) it affected both the new package i tried to install and all updates and didnt work on repeated attempts.

At the time i was tethering to my mobile with good signal, after using a VPN on the same connection the issue stopped so I suspect in my case the carrier was manipulating my traffic.

davidosterberg commented 9 years ago

Are you also having the .part files in your anaconda/pkgs? To me it is weird that it prematurely stops downloading and proceeds to check the md5. There is no problem downloading the same file with wget. Also I can report that downgrading requests did not solve the issue.

asmeurer commented 9 years ago

This is the code that downloads the files. The only way the download can stop (other than an error, which would exit the code before the md5 check happened) is if requests stops giving data.

ryanvarley commented 9 years ago

Yeah i get the .part files.

I disabled my vpn and removed certifi (and deleted the related files in anaconda/pkgs) tried to reinstall it

The following NEW packages will be INSTALLED:

    certifi: 14.05.14-py27_0

Proceed ([y]/n)? y

Fetching packages ...
certifi-14.05. 100% |################################| Time: 0:00:00   2.54 MB/s
certifi-14.05. 100% |################################| Time: 0:00:00   2.65 MB/s
Error: MD5 sums mismatch for download: http://repo.continuum.io/pkgs/free/osx-64/certifi-
14.05.14-py27_0.tar.bz2 (b9c238b22b7db9d7f4c9eaa29a438437 != 5f09f093af9c4ac949e1e86900b32871)

Looking in anaconda/pkgs i have _certifi-14.05.14-py270.tar.bz2.part which for all intents and purposes seems identical to the _certifi-14.05.14-py270.tar.bz2 you get when it installs correctly, though i checked and the md5 hashes are different.

As a quick comparison i unpacked both files committed one in a git repo then overwrote it with the other and there were no changes.

It does seem i get the full file, that is somehow different and it remains as a .part

If you are interested here is the file when it works https://www.dropbox.com/s/0hmdp5f8asweo5z/certifi-14.05.14-py27_0.tar.bz2?dl=0

and the .part when it doesnt https://www.dropbox.com/s/lqi1k3mimjadhar/certifi-14.05.14-py27_0.tar.bz2.part?dl=0

edit: interestingly i get 4db031a91890f241c979eca4af033b55 for the .part md5 and 5f09f093af9c4ac949e1e86900b32871 for the normal. Note that 4db031a91890f241c979eca4af033b55 != b9c238b22b7db9d7f4c9eaa29a438437 which is printed as a .part md5 in the error.

ilanschnell commented 9 years ago

I just installed certifi on my MacBook, and found no issues. I get the following MD5 sum from the downloaded package: $ md5 ~/python/pkgs/certifi-14.05.14-py27_0.tar.bz2 MD5 (/Users/ilan/python/pkgs/certifi-14.05.14-py27_0.tar.bz2) = 5f09f093af9c4ac949e1e86900b32871

Which equal to the MD5 sum listed here: http://repo.continuum.io/pkgs/free/osx-64/index.html

On Tue, Mar 10, 2015 at 6:45 PM, Ryan Varley notifications@github.com wrote:

Yeah get the .part files.

I disabled my vpn and removed certifi (and deleted the related files in anaconda/pkgs) tried to reinstall it

The following NEW packages will be INSTALLED:

certifi: 14.05.14-py27_0

Proceed ([y]/n)? y

Fetching packages ... certifi-14.05. 100% |################################| Time: 0:00:00 2.54 MB/s certifi-14.05. 100% |################################| Time: 0:00:00 2.65 MB/s Error: MD5 sums mismatch for download: http://repo.continuum.io/pkgs/free/osx-64/certifi- 14.05.14-py27_0.tar.bz2 (b9c238b22b7db9d7f4c9eaa29a438437 != 5f09f093af9c4ac949e1e86900b32871)

Looking in anaconda/pkgs i have _certifi-14.05.14-py270.tar.bz2.part which for all intents and purposes seems identical to the _certifi-14.05.14-py270.tar.bz2 you get when it installs correctly, though i checked and the md5 hashes are different.

As a quick comparison i unpacked both files through one in a git repo, overwrote it with the other and there were no changes.

It does seem i get the full file, that is somehow different, but it remains as a .part

If you are interested here is the file when it works https://www.dropbox.com/s/0hmdp5f8asweo5z/certifi-14.05.14-py27_0.tar.bz2?dl=0

and the .part when it doesnt https://www.dropbox.com/s/lqi1k3mimjadhar/certifi-14.05.14-py27_0.tar.bz2.part?dl=0

— Reply to this email directly or view it on GitHub https://github.com/ContinuumIO/anaconda-issues/issues/71#issuecomment-78173185 .

ilanschnell commented 9 years ago

BTW: this was done using: conda 3.9.1 py27_0 requests 2.5.3 py27_0

On Tue, Mar 10, 2015 at 11:33 PM, Ilan Schnell ilan@continuum.io wrote:

I just installed certifi on my MacBook, and found no issues. I get the following MD5 sum from the downloaded package: $ md5 ~/python/pkgs/certifi-14.05.14-py27_0.tar.bz2 MD5 (/Users/ilan/python/pkgs/certifi-14.05.14-py27_0.tar.bz2) = 5f09f093af9c4ac949e1e86900b32871

Which equal to the MD5 sum listed here: http://repo.continuum.io/pkgs/free/osx-64/index.html

  • Ilan

On Tue, Mar 10, 2015 at 6:45 PM, Ryan Varley notifications@github.com wrote:

Yeah get the .part files.

I disabled my vpn and removed certifi (and deleted the related files in anaconda/pkgs) tried to reinstall it

The following NEW packages will be INSTALLED:

certifi: 14.05.14-py27_0

Proceed ([y]/n)? y

Fetching packages ... certifi-14.05. 100% |################################| Time: 0:00:00 2.54 MB/s certifi-14.05. 100% |################################| Time: 0:00:00 2.65 MB/s Error: MD5 sums mismatch for download: http://repo.continuum.io/pkgs/free/osx-64/certifi- 14.05.14-py27_0.tar.bz2 (b9c238b22b7db9d7f4c9eaa29a438437 != 5f09f093af9c4ac949e1e86900b32871)

Looking in anaconda/pkgs i have _certifi-14.05.14-py270.tar.bz2.part which for all intents and purposes seems identical to the _certifi-14.05.14-py270.tar.bz2 you get when it installs correctly, though i checked and the md5 hashes are different.

As a quick comparison i unpacked both files through one in a git repo, overwrote it with the other and there were no changes.

It does seem i get the full file, that is somehow different, but it remains as a .part

If you are interested here is the file when it works https://www.dropbox.com/s/0hmdp5f8asweo5z/certifi-14.05.14-py27_0.tar.bz2?dl=0

and the .part when it doesnt https://www.dropbox.com/s/lqi1k3mimjadhar/certifi-14.05.14-py27_0.tar.bz2.part?dl=0

— Reply to this email directly or view it on GitHub https://github.com/ContinuumIO/anaconda-issues/issues/71#issuecomment-78173185 .

asmeurer commented 9 years ago

On Tue, Mar 10, 2015 at 6:45 PM, Ryan Varley notifications@github.com wrote:

Yeah get the .part files.

I disabled my vpn and removed certifi (and deleted the related files in anaconda/pkgs) tried to reinstall it

The following NEW packages will be INSTALLED:

certifi: 14.05.14-py27_0

Proceed ([y]/n)? y

Fetching packages ... certifi-14.05. 100% |################################| Time: 0:00:00 2.54 MB/s certifi-14.05. 100% |################################| Time: 0:00:00 2.65 MB/s Error: MD5 sums mismatch for download: http://repo.continuum.io/pkgs/free/osx-64/certifi- 14.05.14-py27_0.tar.bz2 (b9c238b22b7db9d7f4c9eaa29a438437 != 5f09f093af9c4ac949e1e86900b32871)

Looking in anaconda/pkgs i have _certifi-14.05.14-py270.tar.bz2.part which for all intents and purposes seems identical to the _certifi-14.05.14-py270.tar.bz2 you get when it installs correctly, though i checked and the md5 hashes are different.

As a quick comparison i unpacked both files through one in a git repo, overwrote it with the other and there were no changes.

It does seem i get the full file, that is somehow different, but it remains as a .part

If you are interested here is the file when it works https://www.dropbox.com/s/0hmdp5f8asweo5z/certifi-14.05.14-py27_0.tar.bz2?dl=0

and the .part when it doesnt https://www.dropbox.com/s/lqi1k3mimjadhar/certifi-14.05.14-py27_0.tar.bz2.part?dl=0

It looks like the file sizes are different

-rw-r-----@ 1 aaronmeurer staff 157876 Mar 11 11:09 /Users/aaronmeurer/Downloads/certifi-14.05.14-py27_0.tar.bz2 -rw-r-----@ 1 aaronmeurer staff 158666 Mar 11 11:09 /Users/aaronmeurer/Downloads/certifi-14.05.14-py27_0.tar.bz2.part

I tried running some tar commands on the part archive but they all failed with errors like

tar: This does not look like a tar archive tar: Skipping to next header tar: Exiting with failure status due to previous errors

Aaron Meurer

— Reply to this email directly or view it on GitHub https://github.com/ContinuumIO/anaconda-issues/issues/71#issuecomment-78173185 .

davidosterberg commented 9 years ago

Reversing conda/conda@63e97d3fd9bf14e87c7acfdc9a51a4fa518889ed fixes the problem for me.

mjafin commented 9 years ago

@davidosterberg thanks for the fix, seems to help here too.

mrstu commented 9 years ago

Maybe this should be a new issue, but #71 seems to be the only reference I can find to trouble with ".part" files in /pkgs.

When I try to do "conda update anaconda" (or install additional packages like, "conda install netcdf4") I get the following error:

Fetching packages ... Error: Could not open u'$HOMEDIR/anaconda/pkgs/libdynd-0.6.5-0.tar.bz2.part' for writing (seek).

(above, the actual path to my home directory I've replace with $HOMEDIR)

I'm on Ubuntu 14.04. I originally used the latest installer (Anaconda-2.2.0-Linux-x86_64.sh) and then reverted to Anaconda-1.9.2-Linux-x86_64.sh to work around this. But if I update conda like "conda update conda" and then do "conda update anaconda" I'm back to this issue. Or if I install another package which at the same time upgrades conda then I'm toast again.

@davidosterberg, your reference to here conda/conda@63e97d3 seems pertinent. Not sure how/if I can help besides chirping about this.

davidosterberg commented 9 years ago

I think you have a different issue. Could it be so simple that you don't have write permissions to either the pkgs directory or the specific file libdynd-0.6.5-0.tar.bz2.part? I recommend that you try to create a file in this directory using a file manager. Also manually remove any existing .part files. Good luck.

mrstu commented 9 years ago

Thanks for the quick reply. Checked the permissions. And also created a file there. Also tried removing the .part files. *pkgs does get populated, so I don't think that's the issue. I don't think my disk is full either. So, by "different issue," do you mean that I should post this as a separate issue?

mrstu commented 9 years ago

@davidosterberg tell() in n = resp.raw.tell() throws an io.UnsupportedOperation: seek which I found by loosening up the last except (which I've commented out). This stackoverflow thread seems to point in the right direction for a real fix. For now, doing the below in fetch.py seems to have solved the issue for me.

Anyone who want to carry the torch further please let me know.

       if md5:
            h = hashlib.new('md5')
#             getLogger('md5: ').info(h.hexdigest())
# #             getLogger('%s, %s, session=%s, md5=%s, urlstxt=%s, retries=%s').info(url, dst_path, session, md5,urlstxt, retries)
#             getLogger('%s, %s, session=%s, md5=%s, urlstxt=%s, retries=%s').info((url, dst_path, session, md5,urlstxt, retries))
        try:
            with open(pp, 'wb') as fo:
                more = True
                while more:
                    # Use resp.raw so that requests doesn't decode gz files
                    chunk  = resp.raw.read(2**14)
                    if not chunk:
                        more = False                        
                    try:
                        fo.write(chunk)
                    except IOError:
                        raise RuntimeError("Failed to write to %r." % pp)
                    if md5:
                        h.update(chunk)
                    getLogger('fetch.type_resp').info(type(resp.raw))                        
                    getLogger('fetch.type_resp').info(resp.__dict__.keys())
                    getLogger('fetch.size').info(size)                                        
                    # update n with actual bytes read
#                     n = resp.raw.tell()
#                     getLogger('fetch.before_size').info("yes")                    
# 
#                     if size and 0 <= n <= size:
#                         getLogger('fetch.update').info(n)
#                     getLogger('fetch.before_size').info("after")                                            
        except:
            raise
#         except IOError as e:
#             if e.errno == 104 and retries: # Connection reset by pee
#                 # try again
#                 log.debug("%s, trying again" % e)
#                 return download(url, dst_path, session=session, md5=md5,
#                                 urlstxt=urlstxt, retries=retries - 1)
#             raise RuntimeError("Could not open %r for writing (%s)." % (pp, e))```
ijstokes commented 9 years ago

For reference, this is talking about this block of code:

https://github.com/conda/conda/blob/master/conda/fetch.py#L347-L371

If the outer try/except is where the change happens, then this has just removed the exception handling in effect. If this is a way to better handle these situations (removing n = resp.raw.tell()) then the outer try/except should just be removed entirely.

asmeurer commented 9 years ago

The outer except is supposed to be there for retrying (on connections that get interrupted). It is not related to the resp.raw.tell() call.

asmeurer commented 9 years ago

@mrstu what version of requests do you have installed (conda info will tell you).

asmeurer commented 9 years ago

Also, do you use a proxy?

mrstu commented 9 years ago

@asmeurer, here's the request info (after I hacked the conda update into working). I don't (knowingly) use a proxy.

Current conda install:

         platform : linux-64
    conda version : 3.12.0

conda-build version : not installed python version : 2.7.9.final.0 requests version : 2.2.1 root environment : /home/matt/anaconda (writable) default environment : /home/matt/anaconda envs directories : /home/matt/anaconda/envs package cache : /home/matt/anaconda/pkgs channel URLs : https://repo.continuum.io/pkgs/free/linux-64/ https://repo.continuum.io/pkgs/free/noarch/ https://repo.continuum.io/pkgs/pro/linux-64/ https://repo.continuum.io/pkgs/pro/noarch/ config file : /home/matt/.condarc is foreign system : False

asmeurer commented 9 years ago

@mrstu the issue is likely your old version of requests (the latest is 2.7.0). Try conda update requests. If that doesn't update the version in conda info, show me your conda info -a.

mrstu commented 9 years ago

@asmeurer, looks like it didn't update.

Current conda install:

             platform : linux-64
        conda version : 3.12.0
  conda-build version : not installed
       python version : 2.7.9.final.0
     requests version : 2.2.1
     root environment : /home/matt/anaconda  (writable)
  default environment : /home/matt/anaconda
     envs directories : /home/matt/anaconda/envs
        package cache : /home/matt/anaconda/pkgs
         channel URLs : https://repo.continuum.io/pkgs/free/linux-64/
                        https://repo.continuum.io/pkgs/free/noarch/
                        https://repo.continuum.io/pkgs/pro/linux-64/
                        https://repo.continuum.io/pkgs/pro/noarch/
          config file : /home/matt/.condarc
    is foreign system : False

# conda environments:
#
env1                     /home/matt/anaconda/envs/env1
root                  *  /home/matt/anaconda

sys.version: 2.7.9 |Continuum Analytics, Inc.| (defau...
sys.prefix: /home/matt/anaconda
sys.executable: /home/matt/anaconda/bin/python
conda location: /home/matt/anaconda/lib/python2.7/site-packages/conda
conda-build: None
conda-env: /home/matt/anaconda/bin/conda-env
user site dirs: ~/.local/lib/python2.7

CIO_TEST: <not set>
CONDA_DEFAULT_ENV: <not set>
CONDA_ENVS_PATH: <not set>
LD_LIBRARY_PATH: <not set>
PATH: /home/matt/anaconda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
PYTHONHOME: <not set>
PYTHONPATH: <not set>

WARNING: could not import _license.show_info
# try:
# $ conda install -n root _license
asmeurer commented 9 years ago

You probably have an old version installed in ~/.local/lib/python2.7. I recommend removing that directory.

mrstu commented 9 years ago

I just moved ~/.local/lib/python2.7 to remove it. Then,

:~$ conda update requests
Fetching package metadata: ....
# All requested packages already installed.
# packages in environment at /home/matt/anaconda:
#
requests                  2.7.0                    py27_0 

and request actually seems to have updated, from conda info -a

requests version : 2.7.0

asmeurer commented 9 years ago

Great. Does this fix the issues you were having with the conda.fetch module?

mrstu commented 9 years ago

It seems to be fixed.

`installing: requests-2.6.0-py27_0 ...

conda update requests

requests version : 2.7.0

Then I just installed netcdf4 which was what I originally set out to do and it seems to have worked as expected.

mrstu commented 9 years ago

Thanks @asmeurer and @ijstokes !

duozmo commented 9 years ago

I’d argue the Could not open ... for writing (seek) problem (with updating requests as the solution) should be broken out into its own Issue. It’s quite a lot of reading to find this information, and the unrelated title and Closed status throw you off.

diego898 commented 8 years ago

Hello,

I also had a similar problem, but mine isn't with requests but with the mpmath package

➜  ~ conda update --all
Using Anaconda Cloud api site https://api.anaconda.org
Fetching package metadata: ....
Solving package specifications: ..........

Package plan for installation in environment /Users/diego/anaconda:

The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    mpmath-0.19                |           py35_0         898 KB
    setuptools-20.2.2          |           py35_0         458 KB
    pip-8.1.0                  |           py35_0         1.6 MB
    sympy-1.0                  |           py35_0         5.9 MB
    xlwings-0.7.0              |           py35_0         383 KB
    anaconda-client-1.3.1      |           py35_0         100 KB
    conda-build-1.19.1         |           py35_0         216 KB
    jupyter_core-4.1.0         |           py35_0          51 KB
    jupyter_client-4.2.1       |           py35_0          98 KB
    scikit-image-0.12.3        |      np110py35_0        17.8 MB
    jupyter_console-4.1.1      |           py35_0          25 KB
    ------------------------------------------------------------
                                           Total:        27.5 MB

The following NEW packages will be INSTALLED:

    mpmath:          0.19-py35_0

The following packages will be UPDATED:

    anaconda-client: 1.2.2-py35_0       --> 1.3.1-py35_0
    conda-build:     1.19.0-py35_0      --> 1.19.1-py35_0
    jupyter_client:  4.1.1-py35_0       --> 4.2.1-py35_0
    jupyter_console: 4.1.0-py35_0       --> 4.1.1-py35_0
    jupyter_core:    4.0.6-py35_0       --> 4.1.0-py35_0
    openssl:         1.0.2d-0           --> 1.0.2g-0
    path.py:         7.6.1-py35_0       --> 8.1.2-py35_1
    pip:             8.0.3-py35_0       --> 8.1.0-py35_0
    scikit-image:    0.11.3-np110py35_0 --> 0.12.3-np110py35_0
    setuptools:      20.1.1-py35_0      --> 20.2.2-py35_0
    sympy:           0.7.6.1-py35_0     --> 1.0-py35_0
    xlwings:         0.6.4-py35_0       --> 0.7.0-py35_0

Proceed ([y]/n)? y

Fetching packages ...
mpmath-0.19-py 100% |################################| Time: 0:00:00   1.32 GB/s
mpmath-0.19-py 100% |################################| Time: 0:00:00   1.86 GB/s
mpmath-0.19-py 100% |################################| Time: 0:00:00   1.57 GB/s
mpmath-0.19-py 100% |################################| Time: 0:00:00   1.48 GB/s
Error: MD5 sums mismatch for download: https://repo.continuum.io/pkgs/free/osx-64/mpmath-0.19-py35_0.tar.bz2 (d41d8cd98f00b204e9800998ecf8427e != 99f62b5688ac6a6cb5a9bb0c9efc641e)
➜  ~ conda install mpmath
Using Anaconda Cloud api site https://api.anaconda.org
Fetching package metadata: ....
Solving package specifications: ..........

Package plan for installation in environment /Users/diego/anaconda:

The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    mpmath-0.19                |           py35_0         898 KB

The following NEW packages will be INSTALLED:

    mpmath: 0.19-py35_0

Proceed ([y]/n)? y

Fetching packages ...
mpmath-0.19-py 100% |################################| Time: 0:00:00 979.73 MB/s
mpmath-0.19-py 100% |################################| Time: 0:00:00   1.08 GB/s
mpmath-0.19-py 100% |################################| Time: 0:00:00 855.77 MB/s
mpmath-0.19-py 100% |################################| Time: 0:00:00   2.00 GB/s
Error: MD5 sums mismatch for download: https://repo.continuum.io/pkgs/free/osx-64/mpmath-0.19-py35_0.tar.bz2 (d41d8cd98f00b204e9800998ecf8427e != 99f62b5688ac6a6cb5a9bb0c9efc641e)
➜  ~ conda info -a
Using Anaconda Cloud api site https://api.anaconda.org
Current conda install:

             platform : osx-64
        conda version : 4.0.3
  conda-build version : 1.19.0
       python version : 3.5.1.final.0
     requests version : 2.9.1
     root environment : /Users/diego/anaconda  (writable)
  default environment : /Users/diego/anaconda
     envs directories : /Users/diego/anaconda/envs
        package cache : /Users/diego/anaconda/pkgs
         channel URLs : https://repo.continuum.io/pkgs/free/osx-64/
                        https://repo.continuum.io/pkgs/free/noarch/
                        https://repo.continuum.io/pkgs/pro/osx-64/
                        https://repo.continuum.io/pkgs/pro/noarch/
          config file : /Users/diego/.condarc
    is foreign system : False

# conda environments:
#
python2                  /Users/diego/anaconda/envs/python2
root                  *  /Users/diego/anaconda

sys.version: 3.5.1 |Anaconda 2.5.0 (x86_64)| (default...
sys.prefix: /Users/diego/anaconda
sys.executable: /Users/diego/anaconda/bin/python3
conda location: /Users/diego/anaconda/lib/python3.5/site-packages/conda
conda-build: /Users/diego/anaconda/bin/conda-build
conda-convert: /Users/diego/anaconda/bin/conda-convert
conda-develop: /Users/diego/anaconda/bin/conda-develop
conda-env: /Users/diego/anaconda/bin/conda-env
conda-index: /Users/diego/anaconda/bin/conda-index
conda-inspect: /Users/diego/anaconda/bin/conda-inspect
conda-metapackage: /Users/diego/anaconda/bin/conda-metapackage
conda-pipbuild: /Users/diego/anaconda/bin/conda-pipbuild
conda-server: /Users/diego/anaconda/bin/conda-server
conda-sign: /Users/diego/anaconda/bin/conda-sign
conda-skeleton: /Users/diego/anaconda/bin/conda-skeleton
user site dirs:

CIO_TEST: <not set>
CONDA_DEFAULT_ENV: <not set>
CONDA_ENVS_PATH: <not set>
DYLD_LIBRARY_PATH: <not set>
PATH: /Users/diego/bin:/Users/diego/anaconda/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/texbin:/Library/TeX/texbin:/usr/local/opt/fzf/bin
PYTHONHOME: <not set>
PYTHONPATH: <not set>

License directories:
    /Users/diego/.continuum
    /Users/diego/Library/Application Support/Anaconda
    /Users/diego/anaconda/licenses
License files (license*.txt):
    /Users/diego/.continuum/license_academic_20150420165736.txt
               Reading license file : 1
                    Signature valid : 1
                       Vendor match : 1
                            product : 'Academic'
                           packages : 'numbapro mkl iopro'
                           end_date : '2016-04-19'
                               type : None
Package/feature end dates:
    iopro           : 2016-04-19
    numbapro        : 2016-04-19
    mkl             : 2016-04-19
apsey commented 8 years ago

For me it was on libgfortran

Fetching package metadata: ....
Solving package specifications: ..........

Package plan for installation in environment /opt/conda:

The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    libgfortran-3.0            |                0         261 KB
    libpng-1.6.17              |                0         214 KB
    mkl-11.3.1                 |                0       121.2 MB
    freetype-2.5.5             |                0         2.2 MB
    libxml2-2.9.2              |                0         4.2 MB
    fontconfig-2.11.1          |                5         402 KB
    numpy-1.10.4               |           py35_1         5.9 MB
    pyparsing-2.0.3            |           py35_0          66 KB
    pytz-2015.7                |           py35_0         173 KB
    sip-4.16.9                 |           py35_0         222 KB
    six-1.10.0                 |           py35_0          17 KB
    cycler-0.10.0              |           py35_0          11 KB
    python-dateutil-2.4.2      |           py35_0         220 KB
    qt-4.8.7                   |                1        36.4 MB
    scipy-0.17.0               |      np110py35_2        29.5 MB
    pandas-0.17.1              |      np110py35_0        13.3 MB
    pyqt-4.11.4                |           py35_1         3.5 MB
    scikit-learn-0.17.1        |      np110py35_0         8.7 MB
    matplotlib-1.5.1           |      np110py35_0         8.4 MB
    seaborn-0.7.0              |           py35_0         274 KB
    ipywidgets-4.1.1           |           py35_0          99 KB
    ------------------------------------------------------------
                                           Total:       235.1 MB

The following NEW packages will be INSTALLED:

    cycler:          0.10.0-py35_0
    fontconfig:      2.11.1-5
    freetype:        2.5.5-0
    ipywidgets:      4.1.1-py35_0
    libgfortran:     3.0-0
    libpng:          1.6.17-0
    libxml2:         2.9.2-0
    matplotlib:      1.5.1-np110py35_0
    mkl:             11.3.1-0
    numpy:           1.10.4-py35_1
    pandas:          0.17.1-np110py35_0
    pyparsing:       2.0.3-py35_0
    pyqt:            4.11.4-py35_1
    python-dateutil: 2.4.2-py35_0
    pytz:            2015.7-py35_0
    qt:              4.8.7-1
    scikit-learn:    0.17.1-np110py35_0
    scipy:           0.17.0-np110py35_2
    seaborn:         0.7.0-py35_0
    sip:             4.16.9-py35_0
    six:             1.10.0-py35_0

Error: MD5 sums mismatch for download: https://repo.continuum.io/pkgs/free/linux-64/libgfortran-3.0-0.tar.bz2 (d41d8cd98f00b204e9800998ecf8427e != 0d1664f9e5992bbd447a9c4d8bc43c64)
gabraganca commented 8 years ago

Same here when trying to create a new environment.

19:17 $ conda create -n test  python
Using Anaconda Cloud api site https://api.anaconda.org
Fetching package metadata: ......
Solving package specifications: ..........

Package plan for installation in environment /home/gbra/anaconda/envs/test:

The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    setuptools-20.2.2          |           py27_0         453 KB

The following NEW packages will be INSTALLED:

    openssl:    1.0.2g-0     
    pip:        8.1.0-py27_0 
    python:     2.7.11-0     
    readline:   6.2-2        
    setuptools: 20.2.2-py27_0
    sqlite:     3.9.2-0      
    tk:         8.5.18-0     
    wheel:      0.29.0-py27_0
    zlib:       1.2.8-0      

Proceed ([y]/n)? 

Fetching packages ...
setuptools-20. 100% |##################################################################################################| Time: 0:00:00 373.94 MB/s
setuptools-20. 100% |##################################################################################################| Time: 0:00:00 486.58 MB/s
setuptools-20. 100% |##################################################################################################| Time: 0:00:00 531.23 MB/s
setuptools-20. 100% |##################################################################################################| Time: 0:00:00 572.52 MB/s
Error: MD5 sums mismatch for download: https://repo.continuum.io/pkgs/free/linux-64/setuptools-20.2.2-py27_0.tar.bz2 (d41d8cd98f00b204e9800998ecf8427e != 298a72ee2ca5346141c5fd87367a20ab)

And this is my conda info.

19:18 $ conda info
Using Anaconda Cloud api site https://api.anaconda.org
Current conda install:

             platform : linux-64
        conda version : 4.0.3
  conda-build version : 1.3.5
       python version : 2.7.11.final.0
     requests version : 2.9.1
     root environment : /home/gbra/anaconda  (writable)
  default environment : /home/gbra/anaconda
     envs directories : /home/gbra/anaconda/envs
        package cache : /home/gbra/anaconda/pkgs
         channel URLs : https://repo.continuum.io/pkgs/free/linux-64/
                        https://repo.continuum.io/pkgs/free/noarch/
                        https://repo.continuum.io/pkgs/pro/linux-64/
                        https://repo.continuum.io/pkgs/pro/noarch/
                        http://conda.binstar.org/gabraganca/linux-64/
                        http://conda.binstar.org/gabraganca/noarch/
          config file : /home/gbra/.condarc
    is foreign system : False
mattjj commented 8 years ago

Like @apsey I'm getting this error with libgfortran, but it's happening on travis with an environment that should be fairly canonical.

diego898 commented 8 years ago

Now, I tried to update conda and get it with conda itself!

➜  ~ conda update conda
Using Anaconda Cloud api site https://api.anaconda.org
Fetching package metadata: ....
.Solving package specifications: ..........

Package plan for installation in environment /Users/diego/anaconda:

The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    conda-4.0.4                |           py35_0         188 KB

The following packages will be UPDATED:

    conda: 4.0.3-py35_0 --> 4.0.4-py35_0

Proceed ([y]/n)? y

Fetching packages ...
conda-4.0.4-py 100% |################################| Time: 0:00:00 227.09 MB/s
conda-4.0.4-py 100% |################################| Time: 0:00:00 230.85 MB/s
conda-4.0.4-py 100% |################################| Time: 0:00:00 209.12 MB/s
conda-4.0.4-py 100% |################################| Time: 0:00:00 362.30 MB/s
Error: MD5 sums mismatch for download: https://repo.continuum.io/pkgs/free/osx-64/conda-4.0.4-py35_0.tar.bz2 (d41d8cd98f00b204e9800998ecf8427e != f4763f3ffa7789fee3b8b6287a175771)
153957 commented 8 years ago

Same here with the libfortran package on Travis. Should we open a new Issue, or reopen this one?

Seems fixed, builds run fine when restarted.

Overdrivr commented 8 years ago

Subscribing. Same here with Appveyor, when trying to install pyqt. Seems related to jpeg module.

[00:00:00] Build started
[00:00:01] ECHO %PYTHON_ARCH%
[00:00:01] 32
[00:00:01] ECHO %PYTHON_VERSION%
[00:00:01] ECHO is off.
[00:00:01] ECHO %MINICONDA%
[00:00:01] C:\Miniconda3
[00:00:01] ECHO %APPVEYOR_BUILD_FOLDER%
[00:00:01] C:\projects\pytelemetrycli
[00:00:01] ECHO %PYTHONPATH%
[00:00:01] ECHO is off.
[00:00:01] git clone -q --branch=transport-monitoring https://github.com/Overdrivr/pytelemetrycli.git C:\projects\pytelemetrycli
[00:00:02] git checkout -qf 28eec447bc86162ec98bdc660826a0ddcbf5e31b
[00:00:03] Running Install scripts
[00:00:03] %MINICONDA%\Scripts\conda install numpy -y -q
[00:00:04] Fetching package metadata: 
[00:00:05] .
[00:00:05] .
[00:00:05] .
[00:00:06] .
[00:00:06] 
[00:00:06] Solving package specifications: 
[00:00:06] .
[00:00:30] 
[00:00:30] Package plan for installation in environment C:\Miniconda3:
[00:00:30] 
[00:00:30] The following packages will be downloaded:
[00:00:30] 
[00:00:30]     package                    |            build
[00:00:30]     ---------------------------|-----------------
[00:00:30]     mkl-11.3.1                 |                0        73.9 MB
[00:00:30]     msvc_runtime-1.0.1         |           vc10_0         1.1 MB
[00:00:30]     conda-env-2.4.5            |           py34_0          62 KB
[00:00:30]     menuinst-1.3.2             |           py34_0          93 KB
[00:00:30]     numpy-1.10.4               |           py34_0         2.4 MB
[00:00:30]     pyyaml-3.11                |           py34_3         113 KB
[00:00:30]     requests-2.9.1             |           py34_0         650 KB
[00:00:30]     setuptools-20.2.2          |           py34_0         763 KB
[00:00:30]     wheel-0.29.0               |           py34_0         120 KB
[00:00:30]     conda-4.0.3                |           py34_0         229 KB
[00:00:30]     pip-8.1.0                  |           py34_0         1.6 MB
[00:00:30]     ------------------------------------------------------------
[00:00:30]                    
[00:00:30]                         Total:        81.0 MB
[00:00:30] 
[00:00:30] The following NEW packages will be INSTALLED:
[00:00:30] 
[00:00:30]     mkl:          11.3.1-0     
[00:00:30]     msvc_runtime: 1.0.1-vc10_0  [vc10]
[00:00:30]     numpy:        1.10.4-py34_0
[00:00:30]     pip:          8.1.0-py34_0 
[00:00:30]     setuptools:   20.2.2-py34_0
[00:00:30]     wheel:        0.29.0-py34_0
[00:00:30] 
[00:00:30] The following packages will be UPDATED:
[00:00:30] 
[00:00:30]     conda:        3.16.0-py34_0 --> 4.0.3-py34_0 
[00:00:30]     conda-env:    2.4.2-py34_0  --> 2.4.5-py34_0 
[00:00:30]     menuinst:     1.0.4-py34_0  --> 1.3.2-py34_0 
[00:00:30]     pyyaml:       3.11-py34_1   --> 3.11-py34_3  
[00:00:30]     requests:     2.7.0-py34_0  --> 2.9.1-py34_0 
[00:00:30] 
[00:00:30] %MINICONDA%\Scripts\conda install pyqt -y -q
[00:00:30] Fetching package metadata: 
[00:00:31] .
[00:00:31] .
[00:00:31] .
[00:00:32] .
[00:00:32] 
[00:00:32] Solving package specifications: 
[00:00:32] .
[00:00:32] .
[00:00:32] .
[00:00:32] .
[00:00:32] .
[00:00:32] .
[00:00:32] .
[00:00:32] .
[00:00:32] .
[00:00:32] .
[00:00:32] 
[00:00:33] 
[00:00:33] Package plan for installation in environment C:\Miniconda3:
[00:00:33] 
[00:00:33] The following packages will be downloaded:
[00:00:33] 
[00:00:33]     package                    |            build
[00:00:33]     ---------------------------|-----------------
[00:00:33]     jpeg-8d                    |           vc10_0         145 KB
[00:00:33]     libpng-1.6.17              |           vc10_1         403 KB
[00:00:33]     zlib-1.2.8                 |           vc10_2          93 KB
[00:00:33]     libtiff-4.0.6              |           vc10_1         367 KB
[00:00:33]     python-3.4.4               |                2        30.5 MB
[00:00:33]     qt-4.8.7                   |           vc10_6        42.0 MB
[00:00:33]     sip-4.16.9                 |           py34_2         199 KB
[00:00:33]     pyqt-4.11.4                |           py34_5         2.2 MB
[00:00:33]     ------------------------------------------------------------
[00:00:33]                                            Total:        75.9 MB
[00:00:33] 
[00:00:33] The following NEW packages will be INSTALLED:
[00:00:33] 
[00:00:33]     jpeg:    8d-vc10_0     [vc10]
[00:00:33]     libpng:  1.6.17-vc10_1 [vc10]
[00:00:33]     libtiff: 4.0.6-vc10_1  [vc
[00:00:33] 10]
[00:00:33]     pyqt:    4.11.4-py34_5
[00:00:33]     qt:      4.8.7-vc10_6  [vc10]
[00:00:33]     sip:     4.16.9-py34_2
[00:00:33]     zlib:    1.2.8-vc10_2  [vc10]
[00:00:33] 
[00:00:33] The following packages will be UPDATED:
[00:00:33] 
[00:00:33]     python:  3.4.3-0 --> 3.4.4-2      
[00:00:33] 
[00:00:33] Error: MD5 sums mismatch for download: https://repo.continuum.io/pkgs/free/win-32/jpeg-8d-vc10_0.tar.bz2 (d41d8cd98f00b204e9800998ecf8427e != 4bfcb9bb14e6aedde6bdf9e705390fc0)
[00:00:33] Command exited with code 1

EDIT: Re-ran the build and it completed just fine.

kalefranz commented 8 years ago

I think the initial post is a duplicate of https://github.com/conda/conda/issues/2181 and fixed in https://github.com/conda/conda/pull/2183.

Also, conda 4.0.3 is broken. Consider it 403 FORBIDDEN. We had it in the wild for just over an hour yesterday, and then released 4.0.4 shortly after. Reference to that issue is here: https://github.com/conda/conda/issues/2232

arokem commented 8 years ago

Also on Appveyor:

https://ci.appveyor.com/project/Eric89GXL/nibabel/build/1.0.693/job/ffqewq8bv4ovnaut

But seems intermittent. For example, on a previous build:

https://ci.appveyor.com/project/Eric89GXL/nibabel/build/1.0.691/job/w55a29rlxbyx707g

ijstokes commented 8 years ago

@kalefranz there have been periods where the MD5 problem has been endemic. It was due to one or both of (I cannot recall exactly):

I wonder if we have suitable stats on the repository infrastructure performance (disk, RAM, CPU, network) coupled with web log stats to see if we get into situations where this problem manifests due to the first issue.

Additionally it may be worth having an "audit" of single-digit-percent of all our packages to verify MD5s are correct. I would expect a perfect pass -- anything less should trigger a full verification and a process to establish how the inconsistency arose.

ilanschnell commented 8 years ago

We have to realize that is some cases the MD5 mismatches are due to real download problems. This is why the MD5 checksum test is important. The new cas-mirror 1.5.0 has a command cas-verify, which makes it easy to verify the consistency of conda repositories, ie. it MD5 run in repodata.json is check against the calculated MD5 hash of the files on disk. I have run this test on all conda repositories on repo.continuum.io in the past, and just now ran it again. The outcome: not a single mismatch!

kalefranz commented 8 years ago

@ijstokes

there have been periods where the MD5 problem has been endemic

Agreed.

I wonder if we have suitable stats on the repository infrastructure performance

It's an Ops question really, with recognition that we have two systems here: anaconda.org and repo.continuum.io. We should probably have dashboards for both, including HTTP error counts. I'm not sure we do right now.