[
https://issues.apache.org/jira/browse/PROTON-2843?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17894698#comment-17894698
]
ASF subversion and git services commented on PROTON-2843:
---------------------------------------------------------
Commit 636ddf43f1b46417b6154c86f85407f931a96129 in qpid-proton's branch
refs/heads/main from Patrick Taibel
[ https://gitbox.apache.org/repos/asf?p=qpid-proton.git;h=636ddf43f ]
PROTON-2843: [Go] Fix segfault on settling a message on closed receivers
Deliveries can not be settled after the receiver has been freed. Therefore,
this adds a check to ensure that the receiver was not closed (which ensures
that `Free` has not been called on the link yet)
> [Go] Acknowledging a message on a closed receiver results in a segmentation
> fault
> ---------------------------------------------------------------------------------
>
> Key: PROTON-2843
> URL: https://issues.apache.org/jira/browse/PROTON-2843
> Project: Qpid Proton
> Issue Type: Bug
> Components: go-binding
> Reporter: Patrick Taibel
> Assignee: Alan Conway
> Priority: Major
>
> Using the {{electron}} package when acknowledging messages ({{{}Accept(){}}},
> {{Reject()}} or {{Release()}} on a {{{}ReceivedMessage{}}}) a segmentation
> fault occurs if the {{Receiver}} was already closed.
> This happens because the underlying link of the receiver gets freed which,
> according to the docs of {{pn_link_free,}} also frees any unsettled
> deliveries.
> As the actual acknowledgement needs to run in the engine goroutine the check
> for an active receiver has to happen inside the {{electron}} package.
> I'd suggest adding a check if the receiver is still alive in the injected
> function in {{{}func (rm *ReceivedMessage) acknowledge(status uint64)
> error{}}}.
> I plan to do a PR to fix this but it will take a couple of weeks until I get
> there as this is a low priority fix on our end.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]