[ 
https://issues.apache.org/jira/browse/AXIS2C-1584?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Robert Lazarski resolved AXIS2C-1584.
-------------------------------------
    Resolution: Fixed

    Add reference counting to axis2_callback to prevent use-after-free and
    memory leaks in async non-blocking operations. The callback is shared
    between the main thread and worker thread, requiring proper lifecycle
    management.
    
    Changes:
    - Add ref counter to axis2_callback struct, initialized to 1
    - Add axis2_callback_increment_ref() for thread-safe ref increment
    - Modify axis2_callback_free() to decrement ref and only free at zero
    - Update op_client worker thread to properly manage callback refs
    - Update svc_client async operations to balance ref counts
    - Handle NULL response in worker thread with error callback
    - Add error checking for axis2_engine_send()


> Asynchronous call crashes and memory leaks
> ------------------------------------------
>
>                 Key: AXIS2C-1584
>                 URL: https://issues.apache.org/jira/browse/AXIS2C-1584
>             Project: Axis2-C
>          Issue Type: Bug
>          Components: core/clientapi
>    Affects Versions: 1.6.0
>         Environment: Ubuntu Linux
>            Reporter: Alex Mantaut
>            Priority: Blocker
>              Labels: asynchronous, memory_leak, non-blocking, patch
>             Fix For: 2.0.0
>
>         Attachments: axis_async.patch, calculatorFinal.tar.gz, 
> echo_non_blocking_tester.zip
>
>
> 1. Fix crash when a non-blocking call results in a timeout.
> 2. Implements an incremental ref system on callbacks to avoid a big memory 
> leak.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to