Troubleshooting Quarantine Digests

This section provides information to assist with troubleshooting common problems encountered when generating quarantine digests.

The commands shown below may vary depending on your operating system and PureMessage installation parameters (such as the installation path or quarantine location). Alter as necessary. All commands should be run as the PureMessage user ("pmx" by default).

Digests are not being generated

  1. Verify that the following commands are running as scheduled jobs in the PureMessage Manager. Run the commands at the shell prompt and watch for errors.
    pmx-qindex            (adds new messages to the PureMessage quarantine)
    pmx-qdigest -verbose  (generates digests; provides verbose feedback)
    pmx-queue run         (delivers digests in the message queue)
  2. Run the following commands to verify that sendmail and PureMessage are running:
    pmx status                (will return the status of PureMessage)
    ps -uwax|grep sendmail    (FreeBSD or Linux: should show sendmail as a running process)
    ps -ef|grep sendmail      (Solaris: should show sendmail as a running process)
  3. Verify that sendmail and PureMessage are interacting by running the following command and watching for message activity.
    pmx-mlog -verbose

    This command reads the PureMessage message log. If there is no message activity, verify that a line similar to the following is in the configuration file:


    If this line is present, but there is still no activity, verify that the proper sendmail binary is being used (for example, the distribution of sendmail included with PureMessage and not the system's native version of sendmail).

  4. If the system has recently run out of disk space, compare the values from the following commands:
    $ pmx-qdigest --dump|grep ^@
    $ cat /opt/pmx6/var/qdir/counters/pmx-queue.cnt
    $ cat /opt/pmx6/var/qdir/db.conf

    The numbers returned by the first two commands and the value of the last_id setting in the db.conf should not vary more than the value in the num_msg setting in the db.conf. If they do, contact PureMessage Support and include the output from these three commands.

Some users are not receiving digests

  1. Ensure that the user in question is a member of the Quarantine digest users list. View the list members on the Policy tab of the PureMessage Manager.
  2. Verify that there are messages in the quarantine for the user in question that have not previously been included on a digest.

    To check which messages have been included in digests, enter the following command on the command line:

    pmx-qdigest --dump

    Enter man pmx-qdigest for information about sorting and filtering output from this command.

Users cannot release quarantined messages

  • When the user requests the release of a message from the quarantine by replying to a quarantine digest, verify that the message reaches the PureMessage server by checking the sendmail maillog. If digest replies from the end user are not reaching the PureMessage server, verify that the mail routing is correct.
  • Check that the message being requested has not been deleted from the quarantine by the pmx-qexpire scheduled job. Compare the date of the message with the value of expire_time in etc/pmx.d/quarantine_expire.conf.
  • Check that the quarantine digest itself has not expired by comparing the date of the digest with the value of expire in /opt/pmx6/etc/pmx-qdigest.conf (5 days by default).

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

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
  • 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.