Error Message: Can't call method min_digest_id on an undefined value

About this task

The following pmx-qdigest error may be caused by a corrupted quarantine scan database (/opt/pmx6/var/qdigest/scan.db).

Can't call method "min_digest_id" on an undefined value /opt/pmx6/bin/pmx-qdigest line n

Procedure

  • Verify this with the following command:
    pmx-qdigest --dump

    If it does not return a list of quarantine IDs for each digest type and user, and instead returns an error like the one above, the scan.db file is almost certainly the cause.

  • Check if the permissions and ownership of the file are correct:
    permissions: -rw-r--r--
    owner:       pmx
    group:       pmx
  • If these are incorrect, changing them with chmod or chown may solve the problem. If the permissions and ownership are correct, or if changing them back to the defaults does not solve the problem, generate a new scan.db file:
    cd 'pmx prefix'/var/counters
    mv scan.db scan.db.broken
    pmx-qdigest --earliest <YYYY-MM-DD hh:mm:ss>

    Set <YYYY-MM-DD hh:mm:ss> to the time of the earliest message to include in the digest. The quarantine scan will start from this point.

    Once the pmx-qdigest command has completed, the scan.db database should be regenerated. The next quarantine digest will start with the last quarantine ID scanned during the run (in this case, the most recent message in the quarantine).

    The next time pmx-qdigest is run by the Scheduler, it should complete normally.