[Samba] tombstone record has 1 neighbour records

Rowland Penny rpenny at samba.org
Mon Apr 8 10:17:51 UTC 2024


On Mon, 08 Apr 2024 11:46:39 +0200
Bartłomiej Kamiński via samba <samba at lists.samba.org> wrote:

> Hi,
> 
> after update Samba on DCs to 4.20 logs are fulfilled with messages
> like this:
> 
> > [2024/04/08 10:02:19.491146,  0] 
> > source4/dns_server/dnsserver_common.c:1038(dns_common_replace)
> > dns_common_replace: tombstone record has 1 neighbour records.
> 

That is coming from here:

source4/dns_server/dnsserver_common.c
 
1012         for (i = 0; i < rec_count; i++) {
1013                 struct ldb_val *v = &el->values[el->num_values];
1014                 enum ndr_err_code ndr_err;
1015 
1016                 if (records[i].wType == DNS_TYPE_TOMBSTONE) {
1017                         /*
1018                          * There are two things that could be going on here.
1019                          *
1020                          * 1. We use a tombstone with EntombedTime == 0 for
1021                          * passing deletion messages through the stack, and
1022                          * this is the place we filter them out to perform
1023                          * that deletion.
1024                          *
1025                          * 2. This node is tombstoned, with no records except
1026                          * for a single tombstone, and it is just waiting to
1027                          * disappear. In this case, unless the caller has
1028                          * added a record, rec_count should be 1, and
1029                          * el->num_values will end up at 0, and we will make
1030                          * no changes. But if the caller has added a record,
1031                          * we need to un-tombstone the node.
1032                          *
1033                          * It is not possible to add an explicit tombstone
1034                          * record.
1035                          */
1036                         if (records[i].data.EntombedTime != 0) {
1037                                 if (rec_count != 1) {
1038                                         DBG_ERR("tombstone record has %u neighbour "
1039                                                 "records.\n",
1040                                                 rec_count - 1);
1041                                 }
1042                                 was_tombstoned = true;
1043                         }
1044                         continue;
1045                 }

It was added with this:

https://git.samba.org/?p=samba.git;a=commit;h=ffdd9ddeaeada92fec3baf2046a4e03810f26286

The commit message says this:

s4:dns_server: loudly warn when a tombstone record has other records

This shouldn't happen -- that is, there should never be non-tombstone
records in conjunction with a tombstone record -- and if it does, the
situation should resolve itself here. But the flow is confusing and
strange things sometimes happen often enough that it would be helpful
to know if this ever occurs.

So Douglas, it has occurred, now what ?

Rowland



More information about the samba mailing list