Skip to content

Conversation

@vivkong
Copy link

@vivkong vivkong commented Nov 4, 2025

Description

The calico-node pod failed to run on s390x with this error:

goroutine 1 [running]:
github.com/projectcalico/calico/felix/bpf/maps.GetMapFDByPin(...)
        /go/src/github.com/projectcalico/calico/felix/bpf/maps/syscall_stub.go:24
github.com/projectcalico/calico/felix/bpf/maps.(*PinnedMap).Open(0xc000c0c630)
        /go/src/github.com/projectcalico/calico/felix/bpf/maps/maps.go:568 +0x696
github.com/projectcalico/calico/felix/bpf/maps.(*PinnedMap).EnsureExists(0xc000c0c630)
        /go/src/github.com/projectcalico/calico/felix/bpf/maps/maps.go:636 +0xc4
github.com/projectcalico/calico/felix/bpf/nat.RemoveConnectTimeLoadBalancer(0x1, {0x0, 0x0})
        /go/src/github.com/projectcalico/calico/felix/bpf/nat/connecttime.go:74 +0x214
github.com/projectcalico/calico/felix/dataplane/linux.NewIntDataplaneDriver({{0xc000076014, 0x21}, {0x0, 0x0}, 0x0, {0x0, 0x0}, 0x0, 0x0, 0x0, ...})
        /go/src/github.com/projectcalico/calico/felix/dataplane/linux/int_dataplane.go:787 +0x38a6
github.com/projectcalico/calico/felix/dataplane.StartDataplaneDriver(0xc0008c9508, 0xc000ac5bf0, {0x515f908, 0xc0006900b0}, 0xc000bde2b0, 0xc000bde2c0, 0xc000a03a40, 0xc000634a60)
        /go/src/github.com/projectcalico/calico/felix/dataplane/driver.go:422 +0x2a60
github.com/projectcalico/calico/felix/daemon.Run({0x4a0fdd4, 0x15}, {0x50e8098, 0xd}, {0x50fb6d0, 0x18}, {0x513f240, 0x28})
        /go/src/github.com/projectcalico/calico/felix/daemon/daemon.go:441 +0x2992
main.main()
        /go/src/github.com/projectcalico/calico/node/cmd/calico-node/main.go:129 +0x964

This PR updates the s390x node image to align with amd64 and arm64. With these changes the calico-node pod can be run and works as expected.

Related issues/PRs

Todos

  • Tests
  • Documentation
  • Release note

Release Note

Fix panic in calico/node on s390x architecture. 

Reminder for the reviewer

Make sure that this PR has the correct labels and milestone set.

Every PR needs one docs-* label.

  • docs-pr-required: This change requires a change to the documentation that has not been completed yet.
  • docs-completed: This change has all necessary documentation completed.
  • docs-not-required: This change has no user-facing impact and requires no docs.

Every PR needs one release-note-* label.

  • release-note-required: This PR has user-facing changes. Most PRs should have this label.
  • release-note-not-required: This PR has no user-facing changes.

Other optional labels:

  • cherry-pick-candidate: This PR should be cherry-picked to an earlier release. For bug fixes only.
  • needs-operator-pr: This PR is related to install and requires a corresponding change to the operator.

@vivkong vivkong requested a review from a team as a code owner November 4, 2025 14:18
@marvin-tigera marvin-tigera added this to the Calico v3.32.0 milestone Nov 4, 2025
@marvin-tigera marvin-tigera added release-note-required Change has user-facing impact (no matter how small) docs-pr-required Change is not yet documented labels Nov 4, 2025
@caseydavenport
Copy link
Member

/sem-approve

Co-authored-by: Casey Davenport <caseydavenport@users.noreply.github.com>
@caseydavenport
Copy link
Member

/sem-approve

@vivkong
Copy link
Author

vivkong commented Nov 5, 2025

I'm looking into the build failure during the multi-arch build.

@caseydavenport
Copy link
Member

# runtime/cgo
cc1: error: bad value ('z13') for '-march=' switch
cc1: note: valid arguments to '-march=' switch are: nocona core2 nehalem corei7 westmere sandybridge corei7-avx ivybridge core-avx-i haswell core-avx2 broadwell skylake skylake-avx512 cannonlake icelake-client icelake-server bonnell atom silvermont slm knl knm x86-64 eden-x2 nano nano-1000 nano-2000 nano-3000 nano-x2 eden-x4 nano-x4 k8 k8-sse3 opteron opteron-sse3 athlon64 athlon64-sse3 athlon-fx amdfam10 barcelona bdver1 bdver2 bdver3 bdver4 znver1 btver1 btver2 native

Looks like s390x build errors.

@vivkong
Copy link
Author

vivkong commented Nov 6, 2025

It looks like the builder doesn't have the cross compile toolchain for s390x. Looking to see how to add that.

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

Labels

docs-pr-required Change is not yet documented release-note-required Change has user-facing impact (no matter how small)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants