ddclient fails with existing cache file

Help
Dave
2010-03-08
2013-01-14
  • Dave
    Dave
    2010-03-08

    When I run ddclient with an existing ddclient.cache file I get errors saying "uninitialized value" and the remote IP address does not get updated.

    This pretty much renders ddclient useless.

    If I delete the cache file then things work fine and the IP address *does* get updated (if need be).

    I happen to be running version 3.7.3 of ddclient but I've tried this with ddclient 3.8.0 and the result is exactly the same except that the line number in the error changes to line 2030.

    Here's the code at that line number :

        if ($config{$host}{'login'} eq '') {
            warning("null login name specified for host %s.", $host);

    And here's a transcript showing the problem.

    root@ruby:/var/cache/ddclient# ddclient
    Use of uninitialized value in string ne at /usr/sbin/ddclient line 1973.
    Use of uninitialized value in string ne at /usr/sbin/ddclient line 1973.
    Use of uninitialized value in string ne at /usr/sbin/ddclient line 1973.
    Use of uninitialized value in string ne at /usr/sbin/ddclient line 1973.
    Use of uninitialized value in string ne at /usr/sbin/ddclient line 1973.
    Use of uninitialized value in string ne at /usr/sbin/ddclient line 1973.
    Use of uninitialized value in string ne at /usr/sbin/ddclient line 1973.
    Use of uninitialized value in string ne at /usr/sbin/ddclient line 1973.
    root@ruby:/var/cache/ddclient# !rm
    rm ddclient.cache
    root@ruby:/var/cache/ddclient# ddclient
    SUCCESS:  updating XXXXXXXXX.info: IP address set to XX.XX.XXX.XXX (201: No reco
    rds need updating.)
    root@ruby:/var/cache/ddclient# ddclient
    Use of uninitialized value in string ne at /usr/sbin/ddclient line 1973.
    Use of uninitialized value in string ne at /usr/sbin/ddclient line 1973.
    Use of uninitialized value in string ne at /usr/sbin/ddclient line 1973.
    Use of uninitialized value in string ne at /usr/sbin/ddclient line 1973.
    Use of uninitialized value in string ne at /usr/sbin/ddclient line 1973.
    Use of uninitialized value in string ne at /usr/sbin/ddclient line 1973.
    Use of uninitialized value in string ne at /usr/sbin/ddclient line 1973.
    Use of uninitialized value in string ne at /usr/sbin/ddclient line 1973.
    root@ruby:/var/cache/ddclient#

     
  • wimpunk
    wimpunk
    2010-03-09

    I pretty sure you made a configuration mistake.  Could you please post your configuration on http://ddclient.pastebin.ca with your login and password replace by something unusable.  It would also be nice if you could post the complete logging of ddclient -daemon=0 -debug -verbose -noquiet on another post.  Put the links in this conversation.

     
  • Dave
    Dave
    2010-03-09

    Here's my ddclient.conf :

    http://ddclient.pastebin.ca/1829590

     
  • Dave
    Dave
    2010-03-09

    And here is the output from "ddclient -daemon=0 -debug -verbose -noquiet"

    http://ddclient.pastebin.ca/1829599

    Although the last line of this log claims success, it actually failed to update the ip at zoneedit.com

     
  • Dave
    Dave
    2010-03-09

    Thank you for looking at this.

     
  • Dave
    Dave
    2010-03-09

    False alarm:

    I was testing by changing the value stored by zoneedit.com for my DNS entry and then running ddclient to see if the value would switch back to the correct value.  It appears that ddclient uses the cache file to remember what was stored by the dynamic dns provider ( zoneedit in this case ).  If I change the ip address stored in the cache file along with the value stored by zoneedit, then ddclient works fine without showing any "uninitialized value" warnings.  Then the *next* time I run ddclient, the warnings come back but at that point, the ip address for my DNS entry is set correctly.  The warnings are a little alarming but apparently harmless (??) .

    Thanks again for looking at this.

     
  • wimpunk
    wimpunk
    2010-03-09

    I never tried zoneedit myself.  I mainly support dyndns, zoneedit has been a contribution by the community.  If you could try the latest version and post the full logging like you did before, maybe I can find what causes the error and fix it for future versions.

     
  • Dave
    Dave
    2010-03-10

    using ddclient 3.8.0 now.  Here's the full log with no cache file: http://ddclient.pastebin.ca/1830937 .  This was successful.

     
  • Dave
    Dave
    2010-03-10

    Continuing with ddclient 3.8.0 … Here's the full log with a cache file: http://ddclient.pastebin.ca/1830943 .  This resulted in "undefined value" warnings which you can see in the log.

     
  • Dave
    Dave
    2010-03-10

    Continuing with ddclient 3.8.0 … Here's the full log with a modified cache file and modified zoneedit settings: http://ddclient.pastebin.ca/1830950 . This resulted in successfully updating dynamic ip at zoneedit.

     
  • Dave
    Dave
    2010-03-10

    A couple more notes :

    - In comment 9. I said "undefined value" but should have said "uninitialized value"

    - If you google "Use of uninitialized value in string ne at /usr/sbin/ddclient line 1973" you will find that lots of people have run into this with not much resolution.  I don't even know if anyone has noticed that the error does not show if you get rid of the cache file.  Maybe it would be more accurate to say that the error only shows up if ddclient does not actually need to update the zoneedit dynamic ip.

    - ddclient has been a valuable tool for me over the years.  I almost gave up on it though over the past couple days before realizing that these errors are probably not significant.

    - it should be easy to reproduce these errors with a "dummy" zoneedit account.  I don't even think you would need to own the dns address that you use to test.

    - Thanks again for looking at this.