[asterisk-dev] [Code Review] 3971: astobj2.c/refcounter.py: Fix to deal with invalid object refs.

rmudgett reviewboard at asterisk.org
Tue Sep 16 13:15:06 CDT 2014


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/3971/
-----------------------------------------------------------

(Updated Sept. 16, 2014, 1:15 p.m.)


Review request for Asterisk Developers.


Changes
-------

Addressed Corey's feedback.

In the process made handle the case where an object is unreffed by more than one which brings the number of refs to a negative number.  The object in that case is abnormally finalized and reported in the invalid and finalized sections.


Bugs: AFS-155 and ASTERISK-24295
    https://issues.asterisk.org/jira/browse/AFS-155
    https://issues.asterisk.org/jira/browse/ASTERISK-24295


Repository: Asterisk


Description (updated)
-------

* Make astob2 REF_DEBUG output an invalid object line when an invalid ao2 object ref/unref is attempted.  This is similar to the constructor/destructor lines.

* Fixed refcounter.py to handle skewed objects that have constructor/destructor states.

* Made refcounter.py highlight the invalid ao2 object refs by putting them in their own section of the processed output file.

* Made refcounter.py highlight unreffing an object by more than one that results in a negative ref count and the object being destroyed.  The abnormally destroyed object is reported in the invalid and finalized object sections of the output.


Diffs (updated)
-----

  /branches/1.8/main/astobj2.c 423191 
  /branches/1.8/contrib/scripts/refcounter.py 423191 

Diff: https://reviewboard.asterisk.org/r/3971/diff/


Testing (updated)
-------

Instigated a REF_DEBUG log that reffed destroyed objects to get an invalid line in the ref debug log file.
The patched script doesn't have an excpetion on a previous invalid ref debug log that had code unreffing a destroyed object.
The patched script now highlights the invalid objects in the log.

Tested unreffing a newly created object by two and then unreffing the object again.  The abnormally destroyed object is reported in the invalid and finalized sections with an additional log line indicating that the object was destroyed abnormally.  The next unref is reported as an unref of an invalid object.


Thanks,

rmudgett

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20140916/86032199/attachment.html>


More information about the asterisk-dev mailing list