Errno 14 Invalid file descriptor

Latest response

Hi there!
Since yesterday, our red hat servers can't connect ot the red hat repos anymore. When trying to exec "yum repolist enabled" on a RH 7.5, the output was:

Loaded plugins: aliases, changelog, etckeeper, kabi, langpacks, product-id, search-disabled-repos, subscription-manager, tmprepo, verify, versionlock
Loading support for Red Hat kernel ABI
https://cdn.redhat.com/content/dist/rhel/server/7/7Server/x86_64/os/repodata/repomd.xml: [Errno 14] curl#35 - "Invalid file descriptor"
Trying other mirror.
repo id repo name status
epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 12,631
!rhel-7-server-rpms/7Server/x86_64 Red Hat Enterprise Linux 7 Server (RPMs) 20,684
repolist: 33,315

After reading in the community about a similar problem, I tried to yum clean all. When I tried to yum repolist again, this was the output:

Loaded plugins: aliases, changelog, etckeeper, kabi, langpacks, product-id, search-disabled-repos, subscription-manager, tmprepo, verify, versionlock
Loading support for Red Hat kernel ABI
epel/x86_64/metalink | 27 kB 00:00:00
epel | 3.2 kB 00:00:00
https://cdn.redhat.com/content/dist/rhel/server/7/7Server/x86_64/os/repodata/repomd.xml: [Errno 14] curl#35 - "Invalid file descriptor"
Trying other mirror.
epel/x86_64/primary | 3.6 MB 00:00:03
epel 12631/12631
https://cdn.redhat.com/content/dist/rhel/server/7/7Server/x86_64/os/repodata/repomd.xml: [Errno 14] curl#35 - "Invalid file descriptor"
Trying other mirror.
repo id repo name status
epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 12,631
rhel-7-server-rpms/7Server/x86_64 Red Hat Enterprise Linux 7 Server (RPMs) 0
repolist: 12,631

I tried to curl the url like mentioned in another thread, but then this error occurs:

curl -v --key /etc/pki/entitlement/6670919276622133157-key.pem --cert /etc/pki/entitlement/6670919276622133157.pem -k https://cdn.redhat.com/content/dist/rhel/server/7/7Server/x86_64/os/repodata/repomd.xml
* About to connect() to proxy proxy.winlan.net port 3125 (#0)
* Trying 172.21.10.197...
* Connected to proxy.winlan.net (172.21.10.197) port 3125 (#0)
* Establish HTTP proxy tunnel to cdn.redhat.com:443
* Proxy auth using Basic with user 'saint02'

CONNECT cdn.redhat.com:443 HTTP/1.1
Host: cdn.redhat.com:443
Proxy-Authorization: Basic c2FpbnQwMjpJbnRlcm5ldDIwMTA=
User-Agent: curl/7.29.0
Proxy-Connection: Keep-Alive

< HTTP/1.1 200 Connection established
<
* Proxy replied OK to CONNECT request
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* NSS error -12286 (SSL_ERROR_NO_CYPHER_OVERLAP)
* Cannot communicate securely with peer: no common encryption algorithm(s).
* Closing connection 0
curl: (35) Cannot communicate securely with peer: no common encryption algorithm(s).

Yum uses a proxy but it seems to work, because I needed to export the proxy before making the curl request.

Any suggestions?

Responses

Hi Stefan,

Might be a temporary issue, did you try it after sudo yum clean all and sudo rm -r /var/cache/yum again ?
Cleaning up yum and removing the cache resolves the problem in many cases - if not, wait some time and try it again.
When the problem still occurs after a day or so, I would advise you to contact Customer support to solve it for you. :)

Regards,
Christian

Hi Christian,

I just did execute the mentioned commands again and tried to list the repos, still the same error:

Loaded plugins: aliases, changelog, etckeeper, kabi, langpacks, product-id, search-disabled-repos, subscription-manager, tmprepo, verify, versionlock
Loading support for Red Hat kernel ABI
https://cdn.redhat.com/content/dist/rhel/server/7/7Server/x86_64/os/repodata/repomd.xml: [Errno 14] curl#35 - "Invalid file descriptor"
Trying other mirror.
https://cdn.redhat.com/content/dist/rhel/server/7/7Server/x86_64/os/repodata/repomd.xml: [Errno 14] curl#35 - "Invalid file descriptor"
Trying other mirror.
repo id                                                               repo name                                                                           status
epel/x86_64                                                           Extra Packages for Enterprise Linux 7 - x86_64                                      12,631
rhel-7-server-rpms/7Server/x86_64                                     Red Hat Enterprise Linux 7 Server (RPMs)                                                 0
repolist: 12,631

Okay Stefan, then please contact Customer Support ... they should be able to help you solving the problem. :)

Regards,
Christian

I opened a ticket, but perhaps somebody in the community can help me ;)

Good Stefan, my experience with the Red Hat support team is very positive, I wish you good luck ! :)

Regards,
Christian

As suggested, I removed the proxy config from /etc/yum.conf and tried to yum check-update, but it didn't work:

# yum check-update
Loaded plugins: aliases, changelog, etckeeper, kabi, langpacks, product-id, search-disabled-repos, subscription-manager, tmprepo, verify, versionlock
Loading support for Red Hat kernel ABI
epel/x86_64/metalink                                                                                                                     |  30 kB  00:00:00
https://cdn.redhat.com/content/dist/rhel/server/7/7Server/x86_64/os/repodata/repomd.xml: [Errno 14] curl#35 - "Invalid file descriptor"
Trying other mirror.


 One of the configured repositories failed (Red Hat Enterprise Linux 7 Server (RPMs)),
 and yum doesn't have enough cached data to continue. At this point the only
 safe thing yum can do is fail. There are a few ways to work "fix" this:

     1. Contact the upstream for the repository and get them to fix the problem.

     2. Reconfigure the baseurl/etc. for the repository, to point to a working
        upstream. This is most often useful if you are using a newer
        distribution release than is supported by the repository (and the
        packages for the previous distribution release still work).

     3. Run the command with the repository temporarily disabled
            yum --disablerepo=rhel-7-server-rpms ...

     4. Disable the repository permanently, so yum won't use it by default. Yum
        will then just ignore the repository until you permanently enable it
        again or use --enablerepo for temporary usage:

            yum-config-manager --disable rhel-7-server-rpms
        or
            subscription-manager repos --disable=rhel-7-server-rpms

     5. Configure the failing repository to be skipped, if it is unavailable.
        Note that yum will try to contact the repo. when it runs most commands,
        so will have to try and fail each time (and thus. yum will be be much
        slower). If it is a very temporary problem though, this is often a nice
        compromise:

            yum-config-manager --save --setopt=rhel-7-server-rpms.skip_if_unavailable=true

failure: repodata/repomd.xml from rhel-7-server-rpms: [Errno 256] No more mirrors to try.
https://cdn.redhat.com/content/dist/rhel/server/7/7Server/x86_64/os/repodata/repomd.xml: [Errno 14] curl#35 - "Invalid file descriptor"

What about this file "/etc/rhsm/rhsm.conf"? That KB page says that consistency to be maintained between /etc/yum/conf and this file. You may have skipped to check this file.

There is no such file as /etc/yum/conf, I assume it is meant to be /etc/yum.conf. Content of /etc/yum:

.
├── aliases.conf
├── fssnap.d
├── pluginconf.d
│   ├── aliases.conf
│   ├── changelog.conf
│   ├── etckeeper.conf
│   ├── kabi.conf
│   ├── langpacks.conf
│   ├── langpacks.conf.rpmnew
│   ├── product-id.conf
│   ├── rhnplugin.conf
│   ├── search-disabled-repos.conf
│   ├── subscription-manager.conf
│   ├── tmprepo.conf
│   ├── verify.conf
│   ├── versionlock.conf
│   └── versionlock.list
├── protected.d
│   └── systemd.conf
├── vars
└── version-groups.conf

/etc/rhsm/rhsm.conf and /etc/yum.conf were consistent, but the KB page suggested to remove the proxy config from /etc/yum.conf, and so I did.

That is right Stefan. There is no such file. I hope that Red Hat Support team would help you asap.

I have found the solution for my issue. The network departement newly checked the ssl certificates, but the cipher used by Red Hat wasn't known by the proxy. The solution was, that they ignored this check for the url cdn.redhat.com.

Thanks y'all for your suggestions!

Great Stefan, I'm glad that you finally could solve your problem.

Cheers :)
Christian

Close

Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.