Troubleshooting When a program with a memory leak is executed a lot, the memory becomes progressively full (since it is not properly freed). When the leak becomes too big, the printer is left ‘out of memory’ to execute new processes and a 79:04 is triggered • Concurrence issues: there are certain resources that can be accessed by multiple programs or by multiple executions of the same program (what is known as multiple threads). Access to these resources must be correctly controlled to prevent unexpected behavior. Issues caused by an incorrect control of these resources are concurrence issues. In the following you have a simple example:
let’s imagine that there is a counter that controls the communication between the JetDirect card and the printer’s firmware. Whenever a new packet of information is sent by the JetDirect card to the printer, the counter increases. When the printer receives the packet and processes it correctly, the counter decreases. Another process checks the counter from time to time to see its value and take conclusions from it. If the counter is near 0, it means that the printer is processing correctly, and if it grows too big, it may mean that there is a bottleneck somewhere and maybe the JetDirect card throughput is decreased to control its speed to the printer.
However, if the access to this counter is not properly controlled, undesirable effects may happen: in a real environment, a JetDirect card processes thousands of information packets per second, so this counter is updated frequently, both by the JetDirect and the printer. If at a certain point the JetDirect and the printer try to access the counter at the same time and the code is not prepare to handle this, it may happen that the JetDirect cannot increase the counter because the printer is writing to it, and what’s worse, that it does not realize this fact.
If this happens a few times each second, it may happen that the counter is decreasing faster than it’s increasing and that at a certain point it has a negative value. And then, what will the process that is checking this counter do? Most likely, the process will not be prepared to react to a negative value and will launch an exception that will trigger a 79:04 system error. Symptoms This type of 79:04 always occurs in heavy load conditions, so the symptoms will always be similar to this pattern: • A printer that is being heavily used (printing a project or in a reprographics environment) produces 79:04 errors randomly, forcing the user to reboot.
• After rebooting, the printer can be used without any issues for an extended period of time, but if the workload is consistently high, a random error will occur again. • The error can never be associated with a specific file. The file that was being printed when the error occurred the last time can be printed without issues after reboot. And a file that has been printed without issues several times can trigger the error in the future. • This error is very dependant of the workflow the customer has. The most common user workflows have been extensively tested both by HP and by our beta sites, so it is highly unlikely to see random 79:04 issues in these cases.
These random issues tend to occur in very specific corner cases, and cannot be reproduced unless the exact conditions of the workflow are replicated. They normally happen when sending files generated by external applications (RIPs, 3rd party drivers, etc.). Workarounds and solutions Random 79:04 errors are, by far, the most complex ones to diagnose and to fix. The only solutions available in these cases are: 1. Identify the root cause (either in the files or in the firmware) and fix it in the code, which requires the intervention of the GBU 2.
Test any options available to modify the customer’s workflow and see if any combination of them solves the issue In both cases, a profound understanding of the customer’s workflow is necessary. In particular, the information that is needed is: • Printer front panel settings 36 Chapter 1 Troubleshooting