Github user clebertsuconic commented on a diff in the pull request:

    https://github.com/apache/activemq-artemis/pull/749#discussion_r77524662
  
    --- Diff: 
artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ServerSessionImpl.java
 ---
    @@ -1249,6 +1256,14 @@ public RoutingStatus send(final ServerMessage 
message, final boolean direct) thr
     
        @Override
        public RoutingStatus send(final ServerMessage message, final boolean 
direct, boolean noAutoCreateQueue) throws Exception {
    +
    +      // If the protocol doesn't support flow control, we have no choice 
other than fail the communication
    +      if (!this.getRemotingConnection().isSupportsFlowControl() && 
pagingManager.isDiskFull()) {
    +         ActiveMQIOErrorException exception = 
ActiveMQMessageBundle.BUNDLE.diskBeyondLimit();
    +         this.getRemotingConnection().fail(exception);
    +         throw exception;
    --- End diff --
    
    there is no way to tell the producers on these protocols that the message 
failed. Keep coming would endup on a drop and the producer may thing it was 
sent ok. It would be a message loss without communicating the failure to the 
producer.
    
    >> Is it possible to configure it to go from PAGING to DROP once the disk 
limit is reached?
    
    you can already configure global-max-size to DROP. 
    
    
    I **strongly** advise against silently fail. (I have a strong opinion on 
this subject). I won't silently fail a message send on purpose here.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

Reply via email to