Bug 31238

Summary: `hpijs' process hangs unkillably in `devbuf' state
Product: Base System Reporter: chris <chris>
Component: kernAssignee: freebsd-bugs (Nobody) <bugs>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: 4.4-STABLE   
Hardware: Any   
OS: Any   

Description chris freebsd_committer freebsd_triage 2001-10-12 22:40:00 UTC
   The GhostScript helper process, `hpijs' (for the DeskJet et. al.
Hewlett-Packard printers), will hang after printing a page or two,
and will not be killable:

20317 daemon   -20   0  1488K   128K devbuf   0:00  0.00%  0.00% hpijs

   More information in the audit trail as I start adding
debugging stuff to my system.  So far, I _think_ I've deduced
that it's a memory leak, as `ksp->ks_memuse' exceeding
`ksp->ks_limit' is the only place where malloc() will sleep.
I've currently not tracked down the source of the memory leak.

Fix: 

Not sure yet.  Going to work on it.  Input or verbal abuse (delivering
at least helpful guidance or a solution) is welcomed!
How-To-Repeat: 
   Printing anything exceeding usually two or three pages using this driver
will do the trick.
Comment 1 Poul-Henning Kamp 2001-10-13 08:27:50 UTC
If this is with a USB printer, grab the patch I committed yesterday
to ulpt.c.

Poul-Henning

In message <200110122134.f9CLYHH23981@holly.dyndns.org>, Chris Costello writes:
>
>>Number:         31238
>>Category:       kern
>>Synopsis:       `hpijs' process hangs unkillably in `devbuf' state
>>Confidential:   no
>>Severity:       serious
>>Priority:       medium
>>Responsible:    freebsd-bugs
>>State:          open
>>Quarter:        
>>Keywords:       
>>Date-Required:
>>Class:          sw-bug
>>Submitter-Id:   current-users
>>Arrival-Date:   Fri Oct 12 14:40:00 PDT 2001
>>Closed-Date:
>>Last-Modified:
>>Originator:     Chris Costello
>>Release:        FreeBSD 4.4-STABLE i386
>>Organization:
>FreeBSD Project
>>Environment:
>System: FreeBSD holly.calldei.com 4.4-STABLE FreeBSD 4.4-STABLE #1: Sun Oct 7 16:56:12 CDT 2001 chris@holly.calldei.com:/usr/obj/usr/src/sys/Holly i386
>
>>Description:
>
>   The GhostScript helper process, `hpijs' (for the DeskJet et. al.
>Hewlett-Packard printers), will hang after printing a page or two,
>and will not be killable:
>
>20317 daemon   -20   0  1488K   128K devbuf   0:00  0.00%  0.00% hpijs
>
>   More information in the audit trail as I start adding
>debugging stuff to my system.  So far, I _think_ I've deduced
>that it's a memory leak, as `ksp->ks_memuse' exceeding
>`ksp->ks_limit' is the only place where malloc() will sleep.
>I've currently not tracked down the source of the memory leak.
>
>>How-To-Repeat:
>
>   Printing anything exceeding usually two or three pages using this driver
>will do the trick.
>
>>Fix:
>
>   Not sure yet.  Going to work on it.  Input or verbal abuse (delivering
>at least helpful guidance or a solution) is welcomed!
>>Release-Note:
>>Audit-Trail:
>>Unformatted:
>
>To Unsubscribe: send mail to majordomo@FreeBSD.org
>with "unsubscribe freebsd-bugs" in the body of the message
>

-- 
Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
phk@FreeBSD.ORG         | TCP/IP since RFC 956
FreeBSD committer       | BSD since 4.3-tahoe    
Never attribute to malice what can adequately be explained by incompetence.
Comment 2 chris freebsd_committer freebsd_triage 2001-10-13 17:06:57 UTC
On Saturday, October 13, 2001, Poul-Henning Kamp wrote:
> If this is with a USB printer, grab the patch I committed yesterday
> to ulpt.c.

   Er, sorry, this should've been in the original PR: It's a
parallel port printer.

ppbus0: IEEE1284 device found /NIBBLE/ECP
Probing for PnP devices on ppbus0:
ppbus0: <HEWLETT-PACKARD DESKJET 880C> MLC,PCL,PML
plip0: <PLIP network interface> on ppbus0
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven port
ppi0: <Parallel I/O> on ppbus0

-- 
+-------------------+------------------------------------------------+
| Chris Costello    | All that glitters has a high refractive index. |
| chris@FreeBSD.org |                                                |
+-------------------+------------------------------------------------+
Comment 3 Poul-Henning Kamp 2001-10-13 19:27:42 UTC
In message <20011013110656.B20646@holly.calldei.com>, Chris Costello writes:
>On Saturday, October 13, 2001, Poul-Henning Kamp wrote:
>> If this is with a USB printer, grab the patch I committed yesterday
>> to ulpt.c.
>
>   Er, sorry, this should've been in the original PR: It's a
>parallel port printer.
>
>ppbus0: IEEE1284 device found /NIBBLE/ECP
>Probing for PnP devices on ppbus0:
>ppbus0: <HEWLETT-PACKARD DESKJET 880C> MLC,PCL,PML
>plip0: <PLIP network interface> on ppbus0
>lpt0: <Printer> on ppbus0
>lpt0: Interrupt-driven port
>ppi0: <Parallel I/O> on ppbus0

Well, it could still be the same issue: my HP printer seems to send
some data back which gets queued up for something and never freed.

Maybe your IEEE1284 printer does the same thing...

-- 
Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
phk@FreeBSD.ORG         | TCP/IP since RFC 956
FreeBSD committer       | BSD since 4.3-tahoe    
Never attribute to malice what can adequately be explained by incompetence.
Comment 4 chris freebsd_committer freebsd_triage 2001-10-14 04:07:49 UTC
On Saturday, October 13, 2001, Poul-Henning Kamp wrote:
> Well, it could still be the same issue: my HP printer seems to send
> some data back which gets queued up for something and never freed.
> 
> Maybe your IEEE1284 printer does the same thing...

   I'm having a lot of trouble tracking down where the allocation
is even occuring, making it quite a bit difficult to debug.  Can
you (or anybody) point me to where the incoming information is
buffered in this case?

-- 
+-------------------+-----------------------------------------------------+
| Chris Costello    | I bet the human brain is a kludge.  - Marvin Minsky |
| chris@FreeBSD.org |                                                     |
+-------------------+-----------------------------------------------------+
Comment 5 iedowse freebsd_committer freebsd_triage 2002-12-01 19:08:30 UTC
State Changed
From-To: open->feedback


Does this continue to occur on more recent -STABLEs?
Comment 6 chris freebsd_committer freebsd_triage 2002-12-01 19:32:40 UTC
State Changed
From-To: feedback->closed

This bug no longer seems to occur on 4.7-STABLE.