I spent much of the afternoon yesterday on the phone with Dell, debugging a confused printer.
We moved the printer across the room, and following that it wouldn’t print; it’d just sit there at “Printing…”, and the client print progress thing would stay at 0%… until you disconnected the network cable. Then it’d print whatever you’d sent. Weirder still, the same thing would happen with internal print jobs. Print a configuration page? “Printing…” until you disconnect the network cable.
It was still under warranty, so I gave Dell a call. He walked through some obvious things, and then had me flash the firmware on the printer — oops, wait, that’s over the network. Ok, bring the printer over to my desk and… you need Windows to flash it? Ok, over to Levi’s desk, and flash it. No problem. Plug it back in; no luck.
So the Dell guy gives up, they’re just going to send us another printer. Great! But it took a while to figure out whether or not it was in stock, but while it was waiting, a page came out.
And then, five minutes later, another page. Now, “takes five minutes to print a page” is a very different problem than before! But at this point the replacement printer was being dispatched and the Dell guy didn’t want to do more troubleshooting. But once I got off the phone, I did, and I’m glad.
The first thing I noticed is that the switch lights were blinking like crazy. I tracked that back through two more switches to our Samba server. Aha! Run tcpdump there, and:
14:06:13.459933 IP 192.168.1.151.137 > 192.168.1.150.137: NBT UDP PACKET(137): REGISTRATION; REQUEST; UNICAST 14:06:13.459933 IP 192.168.1.150.137 > 192.168.1.151.137: NBT UDP PACKET(137): REGISTRATION; NEGATIVE; RESPONSE; UNICAST 14:06:13.463931 IP 192.168.1.151.137 > 192.168.1.150.137: NBT UDP PACKET(137): REGISTRATION; REQUEST; UNICAST 14:06:13.463931 IP 192.168.1.150.137 > 192.168.1.151.137: NBT UDP PACKET(137): REGISTRATION; NEGATIVE; RESPONSE; UNICAST
And as you can see on the timestamps there, both ends were talking as fast as they can — the printer sending NBT registration requests, and the Samba server sending errors back, over and over, hundreds of times per second. Tell the printer to forget about its Samba server, and voila, printing’s back to normal.
So what happened? As best as I can tell, one of two things: Either moving the printer made it get a DHCP configuration for the first time in over a month, since we rolled out a new DHCP server in the meantime; or it’s been slow all along, and moving it to the same switch as the Samba server, instead of two switches away, made it marginally busier, enough for it to not print at all instead of just printing slowly.
Still, I could think of better things to have spent an afternoon on.