-
Bug
-
Resolution: Unresolved
-
Normal
-
4.20.z
-
None
-
None
-
False
-
-
None
-
None
-
None
-
All
-
11/27: Javier has posted a PR
-
None
-
None
-
None
-
None
-
None
-
None
-
None
-
None
-
None
-
None
Description of problem:
When testing SyncE on a T-BC configuration, at a certain moment the linuxptp-daemon panics with the following traceback:
synce4l[614820.310]: [synce4l.0.config] PIN_SET request sent state:1, pin:31 parent:19 ret:48
synce4l[614820.310]: [synce4l.0.config] trying set prio=0 for pin:19 on follower
I1125 13:43:50.844266 3047099 dpll.go:579] dpll monitoring exited, initiating redial (ens2f0)
panic: runtime error: index out of range [1] with length 0
goroutine 808 [running]:
github.com/k8snetworkplumbingwg/linuxptp-daemon/pkg/dpll.(*DpllConfig).PhaseOffsetPin(0xc00098efc0?, 0x10?)
/go/src/github.com/k8snetworkplumbingwg/linuxptp-daemon/pkg/dpll/dpll.go:346 +0x249
github.com/k8snetworkplumbingwg/linuxptp-daemon/pkg/dpll.(*DpllConfig).nlUpdateState(0xc0002e7340, {0x2d7ab20, 0x0, 0xc000612600?}, {0xc000390628, 0x1, 0x100b0e990?})
/go/src/github.com/k8snetworkplumbingwg/linuxptp-daemon/pkg/dpll/dpll.go:389 +0x412
github.com/k8snetworkplumbingwg/linuxptp-daemon/pkg/dpll.(*DpllConfig).monitorNtf(0xc0002e7340, 0xc0004ca068)
/go/src/github.com/k8snetworkplumbingwg/linuxptp-daemon/pkg/dpll/dpll.go:432 +0x7b
github.com/k8snetworkplumbingwg/linuxptp-daemon/pkg/dpll.(*DpllConfig).MonitorDpllNetlink.func1()
/go/src/github.com/k8snetworkplumbingwg/linuxptp-daemon/pkg/dpll/dpll.go:526 +0x4e
created by github.com/k8snetworkplumbingwg/linuxptp-daemon/pkg/dpll.(*DpllConfig).MonitorDpllNetlink in goroutine 782
/go/src/github.com/k8snetworkplumbingwg/linuxptp-daemon/pkg/dpll/dpll.go:524 +0x75b
Version-Release number of selected component (if applicable):
ptp-operator.v4.20.0-202511181524
How reproducible:
Always
Steps to Reproduce:
1. Create a T-BC configuration including SyncE
2. Check linuxptp-daemon-container logs
3. The crash will happen after a while
Actual results:
Panic in the container
Expected results:
No crash
Additional info:
Checking the dpll pin monitor while the issue happens shows the following:
{
"timestamp": "2025-11-18T13:32:14.418488642Z",
"id": 31,
"moduleName": "ice",
"clockId": "0x507c6fffff836b8c",
"boardLabel": "",
"panelLabel": "",
"packageLabel": "",
"type": "synce-eth-port",
"frequency": 0,
"frequencySupported": [],
"capabilities": "state-can-change",
"pinParentDevice": [],
"pinParentPin": [
{
"parentID": 19,
"parentState": "disconnected"
},
{
"parentID": 20,
"parentState": "disconnected"
}
],
}
The dpll.go code does not expect pinParentDevice to be an empty list.
- links to