Skip to content

Incompatible changes introduced with Diego release 2.109.0 #983

Description

@iaftab-alam

Current behavior

When upgrading Cloud Foundry deployment from version v45.0.0 to v45.1.0+ or deploying CF v45.1.0, all the applications are crashing because of the breaking changes introduced in Diego release version 2.109. This regression occurs under a specific conditions thats why it went through the normal cf validation pipeline, for instance, if your foundation is offering two stacks(e.g, fs3 and fs4).

! The affected Diego versions are 2.109.0 to 2.112.0.

Steps to reproduce

  1. Deploy CF v45.1.0+ with two stacks (cflinuxfs3 and cflinuxfs4).
  2. Run CATS against it
  3. CATS fail and all the apps crashes.

You will observe that all the applications, start failing with the following error:

  2024-12-26T22:17:15.47+0000 [PROXY/0] ERR /etc/cf-assets/envoy/envoy: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by /etc/cf-assets/envoy/envoy)
   2024-12-26T22:17:15.47+0000 [PROXY/0] ERR /etc/cf-assets/envoy/envoy: /lib/x86_64-linux-gnu/libpthread.so.0: version `GLIBC_2.30' not found (required by /etc/cf-assets/envoy/envoy)
   2024-12-26T22:17:15.47+0000 [PROXY/0] ERR /etc/cf-assets/envoy/envoy: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by /etc/cf-assets/envoy/envoy)
   2024-12-26T22:17:15.56+0000 [PROXY/0] OUT Exit status 1
   2024-12-26T22:17:15.57+0000 [CELL/SSHD/0] OUT Exit status 0
   2024-12-26T22:17:15.57+0000 [APP/PROC/WEB/0] OUT Exit status 143
   2024-12-26T22:17:18.23+0000 [CELL/SSHD/0] OUT Exit status 0
   2024-12-26T22:17:18.24+0000 [APP/PROC/WEB/0] OUT Exit status 143 

When the envoy was bumped?

With Diego release v2.107.0 and v2.108.0, it was still using envoy version 1.28.7 and works well:

https://github.com/cloudfoundry/diego-release/blob/v2.107.0/config/blobs.yml
proxy/envoy-4848d6d548438b50d6d78187a7cfbe61e02d8b85-1.28.7.tgz

However, with Diego release v2.109, envoy was bumped to version 1.32.2 and we observed such behavior:

https://github.com/cloudfoundry/diego-release/blob/v2.109.0/config/blobs.yml
proxy/envoy-a0504e87c5a246cb097b37049b1e4dc7706c2a90-1.32.2.tgz:

Describe how the problem can be fixed?

There has been a detailed explanation provide by Diego Fidalgo: https://cloudfoundry.slack.com/archives/C02FM2BPE/p1735293118448499?thread_ts=1734709809.366679&cid=C02FM2BPE. Why such behavior is observed.

As follow-up, we can confirm that after creating a diego dev release with the code changes suggested. The issue is gone and CATS are passing despite being using the latest envoy version. The following code was patched here

stacks := make([]string, 0, len(rootFSes))
	for stack := range rootFSes {
			stacks = append(stacks, stack)
	}

	sort.Strings(stacks)

	if len(stacks) > 0 {
		mostRecentStack := stacks[len(stacks)-1]
		gardenHealthcheckRootFS = rootFSes[mostRecentStack]
	}

Desired behavior

After the upgrade or deploying CF v45.1.0+, the applications should not crash for a foundation with more then one stack offering.

Quick follow-up: We need to have a special release note that should be added to all the affected CF releases.

Affected Version

2.109.0,2.110.0, 2.111.0,2.112.0

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions