DNS Record updates on ispconfig web UI taking very long to appear in /etc/bind

Discussion in 'General' started by Eversure, May 7, 2018.

  1. Eversure

    Eversure New Member

    I use ispconfig but only for managing dns records of many domains. The problemI have started about 2 weeks ago where I noticed that DNS records were not being propagated and on checking I found that this script /usr/local/ispconfig/server/server.php which is run via cron had freezed and there were 2 more similar processes (killed them).
    Now because of this freeze, there's a trail of unprocessed datalog totalling about 68000 (previously 200K) as of now that haven't been applied by the script mentioned above. By monitoring the file /var/log/ispconfig/ispconfig.log, I can see it takes about 20 seconds for one datalog entry to be processed particularly for one domain with many records (~2121).
    There are still more dns record updates being done by clients but they are not being applied because of this long trail that is taking forever to be applied. Is there a way to speed up this process?
     
  2. till

    till Super Moderator Staff Member ISPConfig Developer

    The time it takes to process a domain depends on the number of records and of a single domain has about 2000 sub-records, then it may take 20 seconds as the config gets tested for each sub-record with named-checkzone. The only thing I might think of is that you comment out the zone checking in the bind plugin. Or you skip all changes in the queue and then do a resync of all zons (makes sense only if this is less than letting it process the current changes).
     
  3. Eversure

    Eversure New Member

    Thanks for the response. I want to consider disabling zone checking. This involves commenting out actual code in /usr/local/ispconfig/server/plugins-enabled/bind_plugin.inc.php. Right? ie line 131 to 138 in the following code block:
    PHP:
    126                         file_put_contents($filename$tpl->grab());
    127                         chown($filenameescapeshellcmd($dns_config['bind_user']));
    128                         chgrp($filenameescapeshellcmd($dns_config['bind_group']));
    129
    130                         
    //* Check the zonefile
    131                         if(is_file($filename.'.err')) unlink($filename.'.err');
    132                         exec('named-checkzone '.escapeshellarg($zone['origin']).' '.escapeshellarg($filename), $out$return_status);
    133                         if($return_status === 0) {
    134                                 $app->log("Writing BIND domain file: ".$filenameLOGLEVEL_DEBUG);
    135                         } else {
    136                                 $app->log("Writing BIND domain file failed: ".$filename." ".implode(' '$out), LOGLEVEL_WARN);
    137                                 rename($filename$filename.'.err');
    138                         }
    139                         unset($tpl);
    140                         unset($records);
     
  4. till

    till Super Moderator Staff Member ISPConfig Developer

    Yes, that's the code section that I meant. Try to comment out line 131 - 138
     
  5. Eversure

    Eversure New Member

    Thanks. I have commented out that section out and now the process is quite fast.
     

Share This Page