Hello,

        When writing a python module for unbound my module appeared to be
leaking memory. It uses unbound 1.4.9 and swig 1.3.40. I've isolated the problem to one line that accesses "qstate.return_msg.rep.rrsets[i].rk.type_str".

As a test I modified the dict.py example file to contain the offending line and 
also
added the range 2000 loop to exacerbate the problem, causing a few megabytes of
ram to be consumed every second or so.

Below is the small addition I made to dict.py to illustrate the issue,

   elif event == MODULE_EVENT_MODDONE: #the iterator has finished
        if qstate.return_msg and qstate.return_msg.rep:
            for i in range(0, 2000):
                for i in range(0,qstate.return_msg.rep.rrset_count):
                    s = qstate.return_msg.rep.rrsets[i].rk.type_str
         #we don't need modify result
        qstate.ext_state[id] = MODULE_FINISHED
        return True


I tried setting s to a static string as well as qstate.return_msg.rep and
memory usage remained constant with no leak. This is on a server that is getting 20-30qps.

Could this be a problem in unbound or swig? Is there something I should do
differently?

Thanks.
_______________________________________________
Unbound-users mailing list
[email protected]
http://unbound.nlnetlabs.nl/mailman/listinfo/unbound-users

Reply via email to