[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
| Re: [mosquitto-dev] Question about storing messages in the heap of broker | 
  
  
    Hello, Matt!
    
    
    
    Probably, the idea of assigning a
      pointer to a const string is not the best idea. I have already
      made this change and it did not produce segfault right after
      start. I need to test some more to make sure it works. Anyway, the
      code
    
    
    strdup("");
    
    
    looks really weird. =)
    
    
    Kind regards,
    Sergey.
    
    
    
    
      
      The strdup is to create an owned string. C,
        unfortunately, does not distinguish between owned and referenced
        strings. `tokens` holds owned strings and will free them when
        finished. If you give it a reference, such as an automatic
        variable, the cleanup routine will segfault. 
      
      
        
        On
          15.04.2020 19:24, Greg Troxel wrote:
          > For a datapoint, I have been running mosquitto on
          netbsd-8 since 20
          > February, with moderate activity and an outgoing bridge,
          and it is at 23
          > MB process size, 4M RSS.
          >
          > A similar process started since 19 February is 19MB/4M. 
          This one has 3
          > clients reporting once/minute, another 2 every 2 minutes,
          and weather
          > from a third every 5, plus incoming bridge traffic.
          >
          >
          > I wonder if you would be better off using a malloc
          library that has
          > these debugging features built in, with the normal
          analysis tools.
          Probably, this looks like a good option, although due to H/W 
          restrictions it will not be so easy.
          > My impression is that mosquitto does not have  any really
          bad leaks, but
          > there could be minor issues.  Lots of people are running
          it and there
          > aren't screams of bad memory behavior.    I don't mean to
          doubt your
          > reality; it could be not bad but observable because you
          are paying
          > attention, or only happens in your environment.  Or you
          could be the
          > first to really look.
          
          Mosquitto I am investigating has some modifications out of the
          scope of 
          main repo on GitHub. So, maybe this issue is indeed only for
          my environment.
          
          Regarding minor issues: there is one thing which looks really
          strange. 
          The code is following:
          
          tokens->topic = mosquitto__strdup("");
          
          As soon as allocation is made using wrapper, I guess that it
          is possible 
          to avoid this strange code. E.g.:
          
          const char *EMPTY_STR = "";
          
          //-----
          
            void mosquitto__free(void *mem)
            {
                  if(mem == NULL || mem == EMPTY_STR){
                           return;
                  }
          //-----
          
          temp->source_id = EMPTY_STR;
          
          I am not sure if it is worth to be an issue on GitHub, since
          memory 
          overhead is really small. =)
          
          
          
          _______________________________________________
          mosquitto-dev mailing list
          mosquitto-dev@xxxxxxxxxxx
          To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/mosquitto-dev
        
       
      
      
      _______________________________________________
mosquitto-dev mailing list
mosquitto-dev@xxxxxxxxxxx
To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/mosquitto-dev