lookup-domain-daemon.pl goes into endless loop (100% CPU) when user not found

When an invalid domain or user is passed to the daemon on port 11000, the child process ended up calling next which took it to the main loop where it would spin it's wheels until forcefully quit 30-60 seconds later. On a busy server this bug can really increase average CPU usage.

Attached is a patch which I believe fixes the issue

Status: 
Active

Comments

Thanks for your bug report and patch! I'll pass this along to Jamie to review.

Thanks for the patch! Although actually I already fixed this bug as a side effect of another re-write of that script a few days ago ..

I've attached a munin log showing the decrease in CPU usage after I applied my fix to my server just over 2 hours ago. Note the spiky blue during most of the chart, and then the solid chunk of blue as I was debugging at Tue 10:30, and then the nice even usage starting at about 11:00 once the fix was applied.

Thanks! I'll watch for the fix to come through the Debian repository.

this was also happening on ubuntu 10.04 x64, i just updated to 3.92. I assume that fixes it?

Yup, the current release should fix that. Let us know if you notice any problems with it though!

thank you -- i will let you know how i go :)

I can verify that the issue still persists under CentOS 7.3.1611 (Kernel Linux 3.10.0-514.10.2.el7.x86_64 on x86_64) and Virtualmin v5.07 / Webmin v1.831 and Authentic Theme v18.40.

How can I find the patch? I could not locate the attachment.

Have you confirmed this is still an issue? We are seeing some major load recently and curious is this may be related to our issue.

Hi all, same issue on Debian 8 here.

Joe's picture
Submitted by Joe on Tue, 07/11/2017 - 22:12 Pro Licensee

It's definitely not the same issue. It may have similar symptoms, but we'll need to start over to make any sense out of it; the problem that opened this ticket was fixed five years ago. ;-)

So, what is the problem you're seeing? (And, please open a new ticket about it, as it's hard to work with a ticket about two different problems.)