From d72cd4e6537525a7092fc432dd2f5740b5335a2f Mon Sep 17 00:00:00 2001 From: andig Date: Fri, 22 May 2026 15:09:08 +0200 Subject: [PATCH] =?UTF-8?q?Revert=20"OCPP:=20fix=20flaky=20test=20deadlock?= =?UTF-8?q?=20between=20trigger=20handler=20and=20WS=20=E2=80=A6=20(#30110?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- charger/ocpp_test_handler.go | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/charger/ocpp_test_handler.go b/charger/ocpp_test_handler.go index f3031c8b6..1069dedb0 100644 --- a/charger/ocpp_test_handler.go +++ b/charger/ocpp_test_handler.go @@ -14,10 +14,7 @@ type ChargePointHandler struct { // core func (handler *ChargePointHandler) OnChangeAvailability(request *core.ChangeAvailabilityRequest) (confirmation *core.ChangeAvailabilityConfirmation, err error) { - // dispatch asynchronously: the trigger handler issues synchronous CP→CS - // requests whose responses are read by this same goroutine, so a blocking - // send would deadlock the WebSocket read loop - go func() { handler.triggerC <- core.ChangeAvailabilityFeatureName }() + defer func() { handler.triggerC <- core.ChangeAvailabilityFeatureName }() return core.NewChangeAvailabilityConfirmation(core.AvailabilityStatusAccepted), nil } @@ -64,8 +61,7 @@ func (handler *ChargePointHandler) OnUnlockConnector(request *core.UnlockConnect } func (handler *ChargePointHandler) OnTriggerMessage(request *remotetrigger.TriggerMessageRequest) (confirmation *remotetrigger.TriggerMessageConfirmation, err error) { - // see OnChangeAvailability for why this is async - go func() { handler.triggerC <- request.RequestedMessage }() + defer func() { handler.triggerC <- request.RequestedMessage }() return remotetrigger.NewTriggerMessageConfirmation(remotetrigger.TriggerMessageStatusAccepted), nil }