SNMP page counting can be now disabled in CUPS
The simple network management protocol (SNMP) page counting currently shows incorrect information for certain printers. With this update, the CUPS printing system supports turning off the SNMP page counting, which prevents the problem. To do so, add `*cupsSNMPPages: False` into the printer's postscript printer description (PPD) file.
The procedure for adding options into printer's PPD file is described in solution article at https://access.redhat.com/solutions/1427573 .
Created attachment 1264849[details]
Proposed Patch
Description of problem:
CUPS mechanism for reporting the number of pages in a print job
using SNMP is unreliable. Would like the ability to disable
that mechanism.
Version-Release number of selected component (if applicable):
cups-1.6.3-27.el7
How reproducible:
100%
Steps to Reproduce:
1. Submit a largish print job (20 pages or more). Wait for it to complete.
Actual results:
CUPS Web interface will show some number of pages less than those
that were actually printed.
Expected results:
CUPS should show the correct number of pages.
Additional info:
Before it sends anything to the printer, the socket backend uses SNMP
to get the printer's value for "prtMarkerLifeCount", which is the
total number of sheets printed over the life of the printer.
When the printer signals that the job is complete, the backend does a
second SNMP request for "prtMarkerLifeCount". It then computes the
total pages in the job by subtracting the two values.
The problem is that the printer is reporting that the job is complete
before all the sheets have actually been printed. Thus when the
socket backend makes the second SNMP request, not all the pages in the
job are accounted for, and the value is incorrect.
The attached patch gives users the ability to disable SNMP page
counting by adding:
*cupsSNMPPages: False
to the printer's PPD file. When SNMP page counting is disabled, CUPS
uses the "PAGE: 1 1" messages from the filters to increment the page
count for the job. The result reflects the actual number of pages in
the job, but not necessarily the number of pages actually printed.
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.
https://access.redhat.com/errata/RHBA-2018:0782
Created attachment 1264849 [details] Proposed Patch Description of problem: CUPS mechanism for reporting the number of pages in a print job using SNMP is unreliable. Would like the ability to disable that mechanism. Version-Release number of selected component (if applicable): cups-1.6.3-27.el7 How reproducible: 100% Steps to Reproduce: 1. Submit a largish print job (20 pages or more). Wait for it to complete. Actual results: CUPS Web interface will show some number of pages less than those that were actually printed. Expected results: CUPS should show the correct number of pages. Additional info: Before it sends anything to the printer, the socket backend uses SNMP to get the printer's value for "prtMarkerLifeCount", which is the total number of sheets printed over the life of the printer. When the printer signals that the job is complete, the backend does a second SNMP request for "prtMarkerLifeCount". It then computes the total pages in the job by subtracting the two values. The problem is that the printer is reporting that the job is complete before all the sheets have actually been printed. Thus when the socket backend makes the second SNMP request, not all the pages in the job are accounted for, and the value is incorrect. The attached patch gives users the ability to disable SNMP page counting by adding: *cupsSNMPPages: False to the printer's PPD file. When SNMP page counting is disabled, CUPS uses the "PAGE: 1 1" messages from the filters to increment the page count for the job. The result reflects the actual number of pages in the job, but not necessarily the number of pages actually printed.