Hi,

and thanks for the suggestions.

This is not an issue of broken clocks, all the involved machines
run ntp and have good sync status traceable to at least a GPS clock.

This does however appear to have something to do with the
chroot'edness of this particular installation, and it's evident that
"something is missing" in the chroot, and that this "something" is a
run-time dependency of some sort.

I have one installation of 9.20.0 which doesn't run in a chroot, and
there the stats are rendering properly in my firefox browser (there's
some oddity with the graphics display in Chrome, will bring that up
separately).

Ktracing the start of the response to the statistics reports reveals a
marked difference:

The chroot'ed system's first few line of output:

 12931  12931 named    GIO   fd 1028 wrote 4088 bytes
       "HTTP/1.1 200 OK\r\nContent-Type: text/xslt+xml\r\nDate: Mon, 26 Aug 20\
        24 08:05:10 GMT\r\nExpires: Mon, 26 Aug 2024 08:05:10 GMT\r\nLast-Modi\
        fied: Sat, 24 Aug 2024 19:22:20 GMT\r\nCache-Control: public\r\nServer\
        : libisc\r\nContent-Length: 39276\r\n\r\n<?xml version=\"1.0\" encodin\
        g=\"UTF-8\"?>\n<!--\n - Copyright (C) Internet Systems Consortium, Inc\
        . (\"ISC\")\n -\n - SPDX-License-Identifier: MPL-2.0\n - This Source C\
        ode Form is subject to the terms of the Mozilla Public\n - License, v.\
         2.0. If a copy of the MPL was not distributed with this\n - file, you\
         can obtain one at https://mozilla.org/MPL/2.0/.\n -\n - See the COPYR\
        IGHT file distributed with this work for additional\n - information re\
        garding copyright ownership.\n-->\n\n<xsl:stylesheet xmlns:xsl=\"http:\
        //www.w3.org/1999/XSL/Transform\" xmlns=\"http://www.w3.org/1999/xhtml\
        \" version=\"1.0\">\n  <xsl:output method=\"html\" indent=\"yes\" vers\
        ion=\"4.0\"/>\n  <!-- the version number **below** must match version \
        in bin/named/statschannel.c -->\n  <!-- don't forget to update \"/xml/\
        v<STATS_XML_VERSION_MAJOR>\" in the HTTP endpoints listed below -->\n \
         <xsl:template match=\"statistics[@version=&quot;3.14&quot;]\">\n    <\

while the non-chroot'ed system outputs:

   861    861 named    GIO   fd 35 wrote 4088 bytes
       "HTTP/1.1 200 OK\r\nContent-Type: text/xml\r\nDate: Mon, 26 Aug 2024 08\
        :15:10 GMT\r\nExpires: Mon, 26 Aug 2024 08:15:10 GMT\r\nLast-Modified:\
         Mon, 26 Aug 2024 08:15:10 GMT\r\nPragma: no-cache\r\nCache-Control: n\
        o-cache\r\nServer: libisc\r\nContent-Length: 38449\r\n\r\n<?xml versio\
        n=\"1.0\" encoding=\"UTF-8\"?>\n<?xml-stylesheet type=\"text/xsl\" hre\
        f=\"/bind9.xsl\"?>\n<statistics version=\"3.14\"><server><boot-time>20\
        24-08-16T17:12:39.761Z</boot-time><config-time>2024-08-26T07:44:26.863\
        Z</config-time><current-time>2024-08-26T08:15:10.620Z</current-time><v\
        ersion>9.20.0</version><counters type=\"opcode\"><counter name=\"QUERY\
        \">453424</counter><counter name=\"IQUERY\">0</counter><counter name=\
        \"STATUS\">0</counter><counter name=\"RESERVED3\">0</counter><counter \
        name=\"NOTIFY\">0</counter><counter name=\"UPDATE\">0</counter><counte\
        r name=\"RESERVED6\">0</counter><counter name=\"RESERVED7\">0</counter\
        ><counter name=\"RESERVED8\">0</counter><counter name=\"RESERVED9\">0<\
        /counter><counter name=\"RESERVED10\">0</counter><counter name=\"RESER\

Notice that the "Content-Type:" is diferent -- the non-chrooted
version which renders OK is "text/xml", while the other one (which
doesn't render OK) is "text/xslt+xml", and my browsers don't appear to
understand that.  The one which renders OK refers to a style-sheet via
name ("/bind9.xsl"), while the other one appears to inline the
stylesheet which apparently isn't understood by the browsers.

Another snapshot of the "text/xml+xsl" version clearly indicates that
there's supposed to be some values inserted in a processing step which
appears to have been omitted:

 12931  12931 named    GIO   fd 1028 wrote 4088 bytes
       "and\n   <a href=\"/xml/v3/traffic\">Traffic Size</a></p>\n        <hr/\
        >\n        <h2>Server Status</h2>\n        <table class=\"info\">\n   \
               <tr class=\"odd\">\n            <th>Boot time:</th>\n          \
          <td>\n              <xsl:value-of select=\"server/boot-time\"/>\n   \
                 </td>\n          </tr>\n          <tr class=\"even\">\n      \
              <th>Last reconfigured:</th>\n            <td>\n              <xs\
        l:value-of select=\"server/config-time\"/>\n            </td>\n       \
           </tr>\n          <tr class=\"odd\">\n            <th>Current time:<\
        /th>\n            <td>\n              <xsl:value-of select=\"server/cu\
        rrent-time\"/>\n            </td>\n          </tr>\n          <tr clas\
        s=\"even\">\n            <th>Server version:</th>\n            <td>\n \
                     <xsl:value-of select=\"server/version\"/>\n            </\
        td>\n          </tr>\n        </table>\n        <br/>\n        <xsl:if\

"xsl:value-of ..."  Rhetorical: How's my client supposed to know
that?!?

So this is most probably related to the fact that I run the
"misbehaving" name server in a chroot, and there is apparently some
run-time-dependent files(?) which have not been installed in the
chroot.  E.g. the chroot didn't have /tmp (it now has, but that
doesn't appear to make any difference, though I've not restarted the
name server after creating that directory).

But what are those run-time dependencies?  Looking at the packaging
list for bind and libxml2 doesn't show any obvious candidates to my
eyes...

Regards,

- Havard
-- 
Visit https://lists.isc.org/mailman/listinfo/bind-users to unsubscribe from 
this list

ISC funds the development of this software with paid support subscriptions. 
Contact us at https://www.isc.org/contact/ for more information.


bind-users mailing list
bind-users@lists.isc.org
https://lists.isc.org/mailman/listinfo/bind-users

Reply via email to