[opendmarc-users] Solved: Update to opendmarc-import errors on OSX 10.11.2. Seems Solved

Robert Chalmers robert at chalmers.com.au
Fri Dec 11 04:47:51 PST 2015


Dan,

I’m using  MySql Server version: 5.6.25, Perl 5.22 etc...

This is the failing line ( if I have NULL/Nothing - the default in the db column )

if (get_value("requests", "locked", $request_id) != 1)


Database: opendmarc  Table: requests  Wildcard: locked
+--------+------------+-----------+------+-----+---------+-------+---------------------------------+---------+
| Field  | Type       | Collation | Null | Key | Default | Extra | Privileges                      | Comment |
+--------+------------+-----------+------+-----+---------+-------+---------------------------------+---------+
| locked | tinyint(4) |           | YES  |     |         |       | select,insert,update,references |         |
+--------+------------+-----------+------+-----+---------+-------+---------------------------------+————+

it’s default state.

So, its either set a default value, or as you say, change the code.

So the error line

>> Use of uninitialized value in string ne at /usr/local/sbin/opendmarc-import line 278

can’t work because it’s a tinyint, not a string. It has to be != as in the actual line of code. not ne. 

So, get_value is trying to get a value out of ‘locked', IF it doesn’t compare to 1 - and where it’s stored is a tinyint, although containing nothing by default. So in fact it’s looking for a value, either 0 or 1, and can’t deal with a situation where there is nothing stored there.

and when is it actually “locked” so that a 1 is placed there. I haven’t looked for that yet.







>>  mysql> show tables;
>>      +---------------------+
>>      | Tables_in_opendmarc |
>>      +---------------------+
>> …..
>>      | requests            |
>> …..
>>      +---------------------+
>>      6 rows in set (0.00 sec)
>> 
>>      mysql> update requests set locked='0';
>>      Query OK, 25 rows affected (0.01 sec)
>>      Rows matched: 27  Changed: 25  Warnings: 0



> On 11 Dec 2015, at 11:34, Dan Mahoney, System Admin <danm at prime.gushi.org> wrote:
> 
> On Fri, 11 Dec 2015, Robert Chalmers wrote:
> 
>> The thing is, it was NULL, and it was failing. I Changed the field to 0 (zero) and it started working…
> 
> Yup, because in the perl DBI, null returns undef.  The error you were getting is what you get when you compare undef (i.e. an "uninitialized value") with a string.
> 
> -Dan
> 
>> Maybe I’ll look into the code. Maybe not.
>> Thanks
>> 
>>      On 11 Dec 2015, at 11:17, Dan Mahoney, System Admin <danm at prime.gushi.org> wrote:
>> On Fri, 11 Dec 2015, Robert Chalmers wrote:
>> Well, you can alter the table so the default value for that field is null. It may be you're running a more recent perl/dbi/dbd that is more strict about this and is failing out.
>> Alternatively, you can edit the code so it checks for this.  In the perl DBI, NULL values in a db are returned as undef(), which is probably not what anyone wants, so you should be
>> checking this with code like:
>> if (defined $var && $var ne $othervar), which is what you'd pretty much have to do all over the place with "use strict" and "use warnings" turned on.
>> -Dan
>> 
>>      Previously I was having problems with this.
>> 
>>      opendmarc-import: updating at line 19
>>      Use of uninitialized value in string ne at /usr/local/sbin/opendmarc-import line 278, <STDIN> line 19.
>>      opendmarc-import: updating at line 37
>>      Use of uninitialized value in string ne at /usr/local/sbin/opendmarc-import line 278, <STDIN> line 37.
>>      opendmarc-import: updating at line 55
>>      Use of uninitialized value in string ne at /usr/local/sbin/opendmarc-import line 278, <STDIN> line 55.
>>      opendmarc-import: updating at line 73
>>      Use of uninitialized value in string ne at /usr/local/sbin/opendmarc-import line 278, <STDIN> line 73.
>>      opendmarc-import: updating at line 90
>>      Use of uninitialized value in string ne at /usr/local/sbin/opendmarc-import line 278, <STDIN> line 90.
>>      opendmarc-import: terminating at Thu Dec 10 17:36:14 2015
>>      opendmarc-reports: started at Thu Dec 10 17:36:15 2015
>>      opendmarc-reports: selected 8 domain(s)
>> 
>>      So I went into the opendmarc MySql database, and looked in ‘requests’ -> ‘locked’ - which is the area of the problem.
>>      The setup sql file that comes with opendmarc sets all empty table fields to NULL - which it doesn’t like. It can’t compare NULL with a value.
>>      So I set all the ‘locked’ fields to ‘0’ (zero)
>> 
>>      mysql> show tables;
>>      +---------------------+
>>      | Tables_in_opendmarc |
>>      +---------------------+
>>      | domains             |
>>      | ipaddr              |
>>      | messages            |
>>      | reporters           |
>>      | requests            |
>>      | signatures          |
>>      +---------------------+
>>      6 rows in set (0.00 sec)
>> 
>>      mysql> update requests set locked='0';
>>      Query OK, 25 rows affected (0.01 sec)
>>      Rows matched: 27  Changed: 25  Warnings: 0
>> 
>>      Now when I run the script, with reporting commented out, and expiring commented out, there are no more errors.
>> 
>>      zeus:bin robert$ sudo /usr/local/bin/opendmarc-send-reports.sh
>>      opendmarc-import: started at Fri Dec 11 09:17:07 2015
>>      opendmarc-import: connected to database
>>      opendmarc-import: updating at line 19
>>      opendmarc-import: updating at line 37
>>      opendmarc-import: updating at line 54
>>      opendmarc-import: terminating at Fri Dec 11 09:17:07 2015
>>      /tmp/opendmarc.32062
>> 
>>      … and it tells me that the /tmp file is now actually being removed.
>> 
>>      So next step. Run the whole thing complete - nothing commented out.
>> 
>>      zeus:bin robert$ sudo /usr/local/bin/opendmarc-send-reports.sh
>>      opendmarc-import: started at Fri Dec 11 09:26:37 2015
>>      opendmarc-import: connected to database
>>      opendmarc-import: terminating at Fri Dec 11 09:26:37 2015
>>      opendmarc-reports: started at Fri Dec 11 09:26:38 2015
>>      opendmarc-reports: selected 5 domain(s)
>>      opendmarc-reports: terminating at Fri Dec 11 09:26:38 2015
>>      opendmarc-expire: started at Fri Dec 11 09:26:38 2015
>>      opendmarc-expire: connected to database
>>      opendmarc-expire: expiring messages older than 180 day(s)
>>      opendmarc-expire: no rows deleted
>>      opendmarc-expire: expiring signatures on expired messages (id < 1)
>>      opendmarc-expire: no rows deleted
>>      opendmarc-expire: expiring request data older than 180 days
>>      opendmarc-expire: no rows deleted
>>      opendmarc-expire: terminating at Fri Dec 11 09:26:38 2015
>>      /tmp/opendmarc.32277
>> 
>>      and presto bumpo - it appears to be working. At least - I am not getting errors reported anymore.
>> 
>>      Robert Chalmers
>>      robert at chalmers.com.au  Quantum Radio: http://tinyurl.com/lwwddov
>>      Mac mini 6.2 - 2012, Intel Core i7,2.3 GHz, Memory:16 GB. El-Capitan 10.11. 2TB Storage made up of -
>>      Drive 0:HGST HTS721010A9E630. Upper bay. Drive 1:ST1000LM024 HN-M101MBB. Lower Bay
>> 
>>      _______________________________________________
>>      opendmarc-users mailing list
>>      opendmarc-users at trusteddomain.org
>>      http://www.trusteddomain.org/mailman/listinfo/opendmarc-users
>> --
>> "When I'm lost, and confused, and trying to make a U-turn, nothing annoys
>> me more than someone telling me to watch out for the tombstone!"
>> "How often does that happen, Fab?"
>> -David Feld & Tom Fabry, sometime in High School.
>> --------Dan Mahoney--------
>> Techie,  Sysadmin,  WebGeek
>> Gushi on efnet/undernet IRC
>> ICQ: 13735144   AIM: LarpGM
>> Site:  http://www.gushi.org
>> ---------------------------
>> Robert Chalmers
>> robert at chalmers.com.au  Quantum Radio: http://tinyurl.com/lwwddov
>> Mac mini 6.2 - 2012, Intel Core i7,2.3 GHz, Memory:16 GB. El-Capitan 10.11. 2TB Storage made up of - 
>> Drive 0:HGST HTS721010A9E630. Upper bay. Drive 1:ST1000LM024 HN-M101MBB. Lower Bay
>> 
> 
> -- 
> 
> "One...plus two...plus one...plus one."
> 
> -Tim Curry, Clue
> 
> --------Dan Mahoney--------
> Techie,  Sysadmin,  WebGeek
> Gushi on efnet/undernet IRC
> ICQ: 13735144   AIM: LarpGM
> Site:  http://www.gushi.org <http://www.gushi.org/>
> ---------------------------

Robert Chalmers
robert at chalmers.com <mailto:robert at chalmers.com>.au  Quantum Radio: http://tinyurl.com/lwwddov
Mac mini 6.2 - 2012, Intel Core i7,2.3 GHz, Memory:16 GB. El-Capitan 10.11. 2TB Storage made up of - 
Drive 0:HGST HTS721010A9E630. Upper bay. Drive 1:ST1000LM024 HN-M101MBB. Lower Bay



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.trusteddomain.org/pipermail/opendmarc-users/attachments/20151211/e461fec9/attachment-0001.htm>


More information about the opendmarc-users mailing list