[ 
https://issues.apache.org/jira/browse/DISPATCH-1685?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17129673#comment-17129673
 ] 

ASF GitHub Bot commented on DISPATCH-1685:
------------------------------------------

kgiusti commented on pull request #757:
URL: https://github.com/apache/qpid-dispatch/pull/757#issuecomment-641482542


   In general, malloc et. al. will fail (return null) in the case where the 
process hits RLIMIT_AS/DATA.  I believe it can also happen when running in a 
container that has a total memory limit configured.
   
   Otherwise linux will return a non-zero value even if there is _no memory 
currently available_.  When the pointer is de-referenced the process hits a 
page fault and is suspended until more memory becomes available (or it is OOM 
killed).  
   
   So if abort() occurs it is a hint to a Carbon-Based Lifeform that the 
provisioned memory is insufficient for the use case.
   
   Or there's a bug.... there's always bugs.....


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


> Provide heap memory allocation wrappers that call abort() on failure to 
> allocate
> --------------------------------------------------------------------------------
>
>                 Key: DISPATCH-1685
>                 URL: https://issues.apache.org/jira/browse/DISPATCH-1685
>             Project: Qpid Dispatch
>          Issue Type: New Feature
>            Reporter: Ken Giusti
>            Assignee: Ken Giusti
>            Priority: Major
>
> The dispatch router allocates heap memory using the malloc API.  In many 
> cases should a call to malloc fail to return the requested memory the router 
> cannot recover.  In fact there are many places in the code where the return 
> value from a heap allocation call is not even checked for NULL.
> This feature would provide a set of wrapper functions for all heap allocation 
> operations used by the router.  These wrapper functions will unconditionally 
> invoke abort() on heap allocation failure.  Note that these are not 
> conditionally compiled out when NDEBUG is defined - abort() is called 
> regardless of build type.
> The intent is to use these wrapper functions wherever a heap allocation 
> failure is not recoverable.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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

Reply via email to