ipsmd (Print Manager) won't start, or crash soon after load

  • 7007446
  • 30-Dec-2010
  • 27-Apr-2012

Environment

Novell Open Enterprise Server 2 (OES 2) Linux Support Pack 1
Novell Open Enterprise Server 2 (OES 2) Linux Support Pack 2

Situation

Periodically it has been observed that:
  • workstations cannot print or get status on iPrint printers
  • administrators cannot get printer status from web interface
  • the iPrint service manager (ipsmd) shows running but it's linux process(es) are defunct
Trying to stop the service (rcnovell-ipsmd stop) yields a "failed" result.  Rebooting the server also leave the iPrint service manager in a non-functional state.

Resolution

This is fixed with the iPrint November Scheduled Maintenance 201011* which can be found at the download site: https://download.novell.com

For OES2sp1 look for: Novell iPrint November Scheduled Maintenance 20101130
For OES2sp2 look for: iPrint November 2010 Scheduled Maintenance 20101104

Additional Information

This issue is caused by a print job name being too long.  If the job name is longer than 255 characters (i.e. 256+), you can/will run into this issue.  A job name is usually the file name or URL being printed -- therefore, the longer the the file name or URL, the closer you'll reach the limit and encounter this issue.

One location where you will frequently see long job names is on document sharing sites.  An example of a long file name was found with the following (whose print job name is 276 characters):

https://doc-0g-4o-docsviewer.googleusercontent.com/viewer/securedownload/2557bb0v4qhe6859hlhrlun935bto8kj/c030ckj16iliiplsjads8485e5q6ueqi/1287000000000/Z21haWw=/AGZ5hq-q4bI-8DV9C-meNBExZPDe/MTJiMjEzNjk1YzI1NWI3N3wwLjI=?a=gp&filename=Sherlock+Holmes+by+Sir+Arthur+Conan+Doyle

Identifying the length of a print job name is a challenge as it is a field stored within the physical "job file"; and the job files (*.1) are stored with the xxxxxxxx.PA directories under the print manager's directory.

If you believe you are encountering this issue and cannot upgrade to the Nov-2010 or later code, you have the following options:
  1. Stop the print manager, delete all of the print jobs and restart the print manager.
    • shutdown your print manager (rcnovell-ipsmd stop)
      if you get a response of "failed", do the following:
      • run killall -9 ipsmd
      • run killall -9 iprintgw
    • change directory to /var/opt/novell/iprint/XXX.psm
      where XXX.psm is the psmname.context
    • to delete jobs, run
      find /var/opt/novell/iprint/[psmname+context].psm -iname \*.1 | xargs rm
    • restart the print manager by running rcnovell-ipsmd start

  2. Replace the iPrint database with a backup
    This resolves the issue as jobs created after a database backup are not in the database's job list/index.  Therefore physical print job files will remain on the file system but not get processed.  The good point is your print manager stays up.  The side effect is that the old jobs take up disk space and you will want to delete them by browsing through the .PA directories & delete files, or run the "to delete jobs" step in #1 above.
    • login as root
    • change to the directory containing your print manager files
      (/var/opt/novell/iprint/<printManagerObjectName>.psm)
    • shutdown your print manager (rcnovell-ipsmd stop)
      if you get a response of "failed", do the following:
      • run killall -9 ipsmd
      • run killall -9 iprintgw
    • rename psmdb.dat to something else (i.e. psmdb-YearMonthDay.dat)
      This will insure a fallback if needed.
    • change to the parent directory of ipsmd (/opt/novell/iprint/bin)
    • run ./ipsmd -r psmdbold.dat
      This will start the print manager using the psmdbold.dat file and write to psmdb.dat
NOTE: If your printing is clustered, you will need to have the cluster resource online in order to perform the above step(s).  If your resource is offline, comatose, etc.; you will not be able to get into /var/opt/novell/iprint directory/link.

If you still encounter the same issue, you may be hitting one of the following issues:
  • the psmdbold.dat file is corrupt
    if this is the case, you can try replacing psmdbold.dat in the above with one of the psmdbsv*.dat files and repeat steps 3-7.
  • this is not the issue you're encountering.