Printer agents are missing after Linux Print Manager crashes/ segfaults

  • 7000747
  • 25-Jun-2008
  • 08-Nov-2012

Environment

Novell iPrint for Linux

Situation

The print manager will not start/load anymore.

ERROR   The iPrint Manager has just experienced a segfault or fatal error.     (segmentation fault)
     See the print manager log:       /var/opt/novell/log/iprint/ipsmd.log

While running the novell-iprint-server RPM dated April 22, 2008 on OES2 servers, the Print Manager will crash/ segfault every few days.

    To determine the version of novell-iprint-server RPM the server has installed, run this command:
    rpm -qa novell-iprint-server
    The number 20080422 will be shown in the results to the rpm -qa command if the server is running the April 22, 2008 rpm.

Printer agents are missing after Linux Print Manager crashes/ segfaults and the manager (ipsmd) is reloaded.  The eDir printer object still exists, but not in iManager | Manage Print Manager | Printer Agents

When the Print Manager restarts, a few printer agents will be missing or corrupt. Usually, the number of affected Printer Agents is two. The April 22, 2008 novell-iprint-server RPM is currently available through the Novell RUG Channel.

Resolution

Accept the novell-iprint-server update from the RUG Channel.

The updated novell-iprint-server will no longer corrupt the database.  However, the updated novell-iprint-server will not auto resolve the corruption introduced while running the previous 20080422 novell-iprint-server.  
If the Print Manager fails to load or continues to intermittently crash, then a) the ipsmd process is defunct, or b) corruption exists in the Print Manager database.

a) Defunct Print Manager process (ipsmd)
Type the following command at a terminal while logged in as root:
ps -ef | grep ipsmd
If [defunct] shows in the returned text, then type the following command:
killall -9 ipsmd
Verify the process is gone:
ps -ef | grep ipsmd
The only line that should be returned when the process is gone, is:
root      xxxx xxxxx  x xx:x pts/x    xx:xx:xx grep ipsmd
Start the Print Manager:
rcnovell-ipsmd start
Watch the performance of the Print Manager. If crashes persist, then the Print Manager database is likely corrupt.  See section b).

b) Corrupt Print Manager database
The corruption introduced to the Print Manager database while running the problematic code (April 22, 2008 RPM) may be causing the updated code (03NOV2008) to be unstable.  See KB 3006957 for steps to recover from a corrupt database.

Recreate missing printer agents:
You must recreate the printer agents that have disappeared after the creation of the Print Manager.   (Steps 1 through 5)

1.  Identify the missing printer agents using method A or B listed below.

A.  View Client Event Logs
a. Go to https://<ip of the print manager server>/psmstatus
b.  log in with eDir credentials (no context)
c.  Scroll to bottom of the page and click the Advanced iPrint Manager Information button
d.  Click the Latest Client Events link
e.  Look for log entries where a user's client is attempting to bind to a printer agent that does exist in the database.

B.  Compare text copies of the database:
You can compare the /var/opt/novell/iprint/[PSM].[OU].[O].psm/padbtxt.xml to an older copy of the XML in the same directory (like padbtxt1.xml or padbtxt2.xml).  Look at the dates of the XML files to know which you are comparing.  If a Printer exists in an older xml, but does not exist in the current XML (padbtxt.xml), then you know that that printer used to exist in the database, but no longer exists.   If you find a printer agent that fits this scenario, then you can refer to the older XML for all the information you need.

2.  Obtain needed information on the printer agent.
Find the printer object name in one of the older XML files.  Make note of the:
- Printer Name
- eDirectory Context
- IP address
- Associated Drivers
- Any other settings on the iPrint printer.  

3.  Delete the iPrint printer object in eDirectory.
Within iManager, choose the iPrint -> Delete Printer Object task. 
If the printer does not show up in that view, use the Directory Administration -> Delete Object task.

4. Remove the deleted printer from the "deleted list"
Within iManager, choose Manage Print Manager -> Printer Agent Redirection -> Deleted Printer Redirection -> Check the box of the printer you just deleted -> Apply.    
This step will prevent the deleted printer from being auto removed from workstations that have the printer installed.

5.  Recreate the printer using the information gathered in step 1.