> For the complete documentation index, see [llms.txt](https://platform9.com/kb/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://platform9.com/kb/pmk/solutions/bird-is-not-ready-error-executing-command.md).

# BIRD is not ready: Error executing command: read unix @->/var/run/calico/bird.ctl: i/o timeout

## Problem

* Pod networking is misbehaving.
* A description of the `calico-node` pod(s) show that `calico/node is not ready: BIRD is not ready` .

{% tabs %}
{% tab title="Bash" %}

```bash
I1205 19:21:04.404697   18222 prober.go:117] Readiness probe for "calico-node-pwbdk_kube-system(efbd1219-5082-4075-8457-d5dcf11420ee):calico-node" failed (failure): calico/node is not ready: BIRD is not ready: Error executing command: read unix @->/var/run/calico/bird.ctl: i/o timeout

I1205 19:21:42.416027   18222 prober.go:117] Readiness probe for "calico-node-pwbdk_kube-system(efbd1219-5082-4075-8457-d5dcf11420ee):calico-node" failed (failure): calico/node is not ready: BIRD is not ready: Error querying BIRD: unable to connect to BIRDv4 socket: dial unix /var/run/calico/bird.ctl: connect: resource temporarily unavailable

I1205 19:22:28.134765   18222 prober.go:117] Liveness probe for "calico-node-pwbdk_kube-system(efbd1219-5082-4075-8457-d5dcf11420ee):calico-node" failed (failure): calico/node is not ready: Felix is not live: liveness probe reporting 503
```

{% endtab %}
{% endtabs %}

## Environment

* Platform9 Managed Kubernetes - v5.3 and Higher
* Calico- v3.18
* IPVS
* Felix

## Cause

BIRD is consuming an excessive amount of CPU which can lead to timeouts (see: <https://github.com/projectcalico/bird/issues/95>).

## Workaround

1. List the `calico-node` pods within the `kube-system` namespace.

{% tabs %}
{% tab title="Bash" %}

```bash
kubectl get pods -n kube-system -l k8s-app=calico-node -o wide
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Bash" %}

```bash
$ kubectl get pods -n kube-system -l k8s-app=calico-node -o wide
NAME                READY   STATUS    RESTARTS   AGE   IP               NODE          NOMINATED NODE   READINESS GATES
calico-node-6l5cd   0/1     Running   6          13d   10.128.146.142   master3   <none>           <none>
calico-node-9zzkn   1/1     Running   1          13d   10.128.147.139   worker1   <none>           <none>
calico-node-dbrd2   0/1     Running   5          13d   10.128.147.193   master1   <none>           <none>
calico-node-hx9rp   0/1     Running   7          13d   10.128.146.62    master2   <none>           <none>
calico-node-zbn6h   1/1     Running   0          13d   10.128.147.195   worker2   <none>           <none>
```

{% endtab %}
{% endtabs %}

2. Identify which pod(s) are affected.
3. Retrieve the Calico BIRD configuration file from the `calico-node` pod (corresponding to the node which is exhibiting the problem symptom).

{% tabs %}
{% tab title="Bash" %}

```bash
kubectl exec -i -n kube-system __POD__ -c calico-node -- cp -v /etc/calico/confd/config/bird.cfg /var/run/calico/bird.cfg
```

{% endtab %}
{% endtabs %}

4. Edit the configuration file locally and modify the `scan time` fields from `scan time 2;` to `scan time 10;`

{% tabs %}
{% tab title="Bash" %}

```bash
sed 's/scan time 2\;/scan time 10\;/g' /var/run/calico/bird.cfg
```

{% endtab %}
{% endtabs %}

5. Copy the updated BIRD configuration back into the `calico-node` pod.

{% tabs %}
{% tab title="Bash" %}

```bash
kubectl exec -i -n kube-system __POD__ -c calico-node -- cp -v /var/run/calico/bird.cfg /etc/calico/confd/config/bird.cfg
```

{% endtab %}
{% endtabs %}

6. Reload the BIRD configuration (from within the `calico-node pod`).

{% tabs %}
{% tab title="Bash" %}

```bash
kubectl exec -i -n kube-system calico-node-6l5cd -c calico-node -- birdcl configure
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Bash" %}

```bash
# birdcl configure
BIRD v0.3.3+birdv1.6.8 ready.
Reading configuration from /etc/calico/confd/config/bird.cfg
Reconfigured
```

{% endtab %}
{% endtabs %}

{% hint style="warning" %}
**Attention**

**Note:** The above steps are a temporary workaround and will not be persisted beyond the lifetime of the pod (i.e. the updated configuration will be lost if the pod is killed).
{% endhint %}

## Resolution

A fix has been included in the LTS3 release, which has Calico v3.24 and K8s v1.25. This issue was tracked as part of the jira AIR-1104.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://platform9.com/kb/pmk/solutions/bird-is-not-ready-error-executing-command.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
