)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":38602,"name":"Torsten Sachse","display_name":"Torsten Sachse","email":"proddi@posteo.de","username":"proddi"},"change_message_id":"c1e8ded98035db9a991fe563e06c4977031d91de","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"e6a7e797_2a65310e","updated":"2026-11-07 22:38:04.000000000","message":"I agree on @taemin23.kim@samsung.com report:\n\n    $ dig @10.180.0.32 child.rtest971718.net. SOA +noall +answer\n    child.rtest971718.net.  300   IN  CNAME  rtest971718.net.\n    rtest971718.net.        3600  IN  SOA    ns1.devstack.org. ... 1794088403 ...\n\nCalling dnsutils.get_serial(\u0027child.rtest971718.net.\u0027, \u002710.180.0.32\u0027) against the nameserver returns 1794088403 instead of 0.\n\nThis fixes it:\n\n    target \u003d dns.name.from_text(zone_name)\n    soa_answers \u003d [rr for rr in resp.answer\n                   if rr.rdtype \u003d\u003d dns.rdatatype.SOA\n                   and rr.name \u003d\u003d target]\n\n\n@oschwart@redhat.com please have a look.","commit_id":"3f73ff9efede66981ba783c32bd78e0964042a3a"}],"designate/dnsutils.py":[{"author":{"_account_id":36711,"name":"taemin kim","display_name":"taemin","email":"taemin23.kim@samsung.com","username":"kimtm23"},"change_message_id":"96c66f8a6854682898f1eb2796ba9174d6cc5a26","unresolved":true,"context_lines":[{"line_number":252,"context_line":"        return 0"},{"line_number":253,"context_line":"    # Filter for SOA records only. If a CNAME exists at the queried name"},{"line_number":254,"context_line":"    # (e.g., in a parent zone), it may appear in the answer section instead."},{"line_number":255,"context_line":"    soa_answers \u003d [rr for rr in resp.answer if rr.rdtype \u003d\u003d dns.rdatatype.SOA]"},{"line_number":256,"context_line":"    if not soa_answers:"},{"line_number":257,"context_line":"        return 0"},{"line_number":258,"context_line":"    rdataset \u003d soa_answers[0].to_rdataset()"}],"source_content_type":"text/x-python","patch_set":1,"id":"bbd2d982_7a51c7e1","line":255,"updated":"2026-11-03 07:50:34.000000000","message":"Could we also check that the SOA owner name matches the original zone_name before using its serial?\n\nFor an SOA query for child.example., a server authoritative for example. can return:\n\n    child.example. 300 IN CNAME example.\n    example. 300 IN SOA ns.example. hostmaster.example. 2025122301 3600 600 86400 300\n\nThe child zone is absent, but this code returns the parent/alias target\u0027s serial, 2025122301. In parse_query_results(), this prevents DELETE from counting that nameserver as a successful deletion. For CREATE/UPDATE, it can instead count the operation as successful when the unrelated serial is \u003e\u003d the requested zone serial.\n\nI reproduced this with real dnspython RRsets in an AA response, round-tripped through DNS wire encoding/decoding, and the patch\u0027s get_serial()/parse_query_results(). This was a constructed DNS response, not a live BIND integration test.\n\nPlease filter by the queried owner name as well as type (and the expected IN class), and add a CNAME + target-zone SOA regression test that expects 0. The current test_get_serial_cname_and_soa_in_answer uses mocks without owner names and expects the SOA serial, so it misses this distinction.","commit_id":"3f73ff9efede66981ba783c32bd78e0964042a3a"}]}
