CPU load pegs at 100% when checking for and downloading e-mail -- all other processes stop

Hello, everyone. Hope you can advise if there is anything I can do to prevent CPU overload that appears to be happening.

Running SuSE 11.4, 64 bit.

CPU Information
Processor (CPU): AMD Athlon™ II X2 240 Processor
Speed: 800.00 MHz
Cores: 2

4 GB Memory

Linux 2.6.37.6-0.9-desktop x86_64

Every time without exception that I click “check mail” in KMail (or KMail automatically checks for new mail every 10 minutes) the computer is unable to perform any other function until KMail has finished looking for and then downloading any new e-mail. Any keystroking that I might be doing during this time in another program (e.g., word-processing or entering an URL into Firefox) shows nothing on the screen until after KMail has finished. Once Kmail is finished then finally any keystroking I have done appears on the screen and the computer catches up (returns to normal).

I have opened the System Monitor to observe CPU usage and at the moment I click “check mail” one of the two processors immediately pins at 100%, then drops while, simultaneously, the other CPU pins at 100% (or very close to 100%). The two CPU load lines criss-cross so that while KMail is searching for and downloading mail one CPU is always completely consumed and the other is partially consumed.

It seems absurd to me that KMail should overwhelm the system I have and make it impossible for the computer to multi-task.

Could this be a function of Spam Assassin and Clam AV, both of which are turned on in KMail? Are either or both of these programs such “hogs” that they’re straining the CPU to its limit?

I have noticed that if I highlight any already-downloaded e-mail and label it as “classify as spam,” or click on anything KMail has identified as “spam” and retag it “classify as not spam,” the CPU pegs as previously described and everything else stops.

I have not removed either Spam Assassin or Clam AV as a test because I assume to do so will delete all of the spam-identification and filtering history that’s been done so far.

Can I delete one or both of these programs to check on the resulting impact on the CPU (if any) without losing all of the spam-identification history that’s been built up over the past year and a half I’ve had the computer?

Or if it’s unlikely that Spam Assassin and/or Clam AV are the sources of the CPU overload, what can you suggest I do?

This is incredibly frustrating to have the computer go catatonic until after KMail has completed its search for new mail.

Your thoughts are greatly appreciated.
Thx
socref

No idea, but usually the filtering history and training is kept in a hidden (dot) folder in your home directory, so if you remove and afterwards reinstall SA and CAV they should pick up from where they left. It is a good idea to identify and backup those files, however.

Can’t SA and CAV be temporarily disabled from kmail?

Alternatively you could try killing their processes (CTRL+ESC will take you to a task manager where you can kill processes belonging to the current user) and see if it make a difference.

Are you using kmail or kmail2? People reported a lot of problems with kmail2, not sure if it applies.

Thanks for reply. I am going to try your suggestions and will report back. But for the moment I have four comments based on your reply.

  1. I have not found a way to temporarily disable either Spam Assassin or Clam AV in KMail. Can anyone tell me how to do this (if it’s possible)?

  2. I did find a dot-spamassassin folder in my home director. However, I did not find a dot file for Clam AV. Can anyone tell me if such a file exists and where it is?

  3. I am using KMail as far as I know. I have not knowingly switched to KMail2. How do I determine this?

  4. I do not see either SpamAssassin or Clam AV in the process table as you suggested. The only way I see to kill them is to delete entirely from the settings tab/configure filters in KMail.

Thanks
socref

On 2011-12-23 15:56, socref wrote:
> 3) I am using KMail as far as I know. I have not knowingly switched to
> KMail2. How do I determine this?

In the about tab?

11.4 used one version and 12.1 the other.


Cheers / Saludos,

Carlos E. R.
(from 11.4 x86_64 “Celadon” at Telcontar)

Ah, muchas gracias, Carlos!

SuSE 11.4, Kmail V 1.13.6

socref

More information for you.

With both Spam Assassin and Clam AV functioning the processor absolutely pegs out. First one core pegs to 100%, then quickly the other. And while the cores transfer back and forth one pegging and then the other, nothing else can be done on the computer.

If I delete Clam AV from the KMail filters then the processor is still hit to 100% but both cores seems to recover more quickly than before.

If instead I delete Spam Assassin from the KMail filters and leave Clam AV working then the processor is still hit to 100% but, again, both cores recover more quickly.

But, surprisingly, if I delete both Spam Assassin and Clam AV the processor still is hit to around 70-80%. It recovers very quickly.

So even with both Spam Assassin and Clam AV removed the dual core processor just doesn’t like the load it experiences when dealing with KMail.

Is this normal?

Any ideas on ways I can keep the processor happier so that the computer can continue to multitask while KMail is active?

Thx
socref

On 2011-12-24 01:16, socref wrote:
>
> More information for you.
>
> With both Spam Assassin and Clam AV functioning the processor
> absolutely pegs out. First one core pegs to 100%, then quickly the
> other. And while the cores transfer back and forth one pegging and then
> the other, nothing else can be done on the computer.

This should not happen. One core is free, so you should have responsiveness.

Both clamav and SA are very cpu intensive, that is known. Kmail should not.


Cheers / Saludos,

Carlos E. R.
(from 11.4 x86_64 “Celadon” at Telcontar)

Agreed, this should not happen. So what can I do? Is there anything I can send to the list (output from a command typed in the console, for example) that might indicate the problem and a possible solution?

Thx
socref

More information. This gets really strange.

I deleted Clam AV from the KMail filters. Only Spam Assassin is running.

I just did a “check mail” in Kmail and used the System Monitor to watch (and time) the cores as they reacted to the load.

Core #1 pegged at 100% for 14 1/2 seconds, then dropped and core #2 pegged for 5 seconds. At the end of this no new e-mail was downloaded.

If Spam Assassin was driving the processor during this time then I have no idea what it was looking at. It certainly was not scanning new e-mail coming off my mail server as there was none.

Could some other process be driving the dual cores so hard when KMail goes out looking for new mail? It just seems totally bizarre to me that both cores should alternatively peg at 100% when there is no new e-mail coming in.

Your help is appreciated.
socref

Run Kmail from the command line, and open another command line and watch top. Then when the cpu gets high, look at the command line where Kmail is running from. You will see the problem.

Sorry, I don’t know what I’m looking for.

I started KMail from the console. Then I opened another console and ran “top.” (Is this doing the same thing as running System Monitor with the GUI?)

Now what am I looking for? Please be specific as I’m stumbling in the dark here. Without knowing what to look for I would not recognize the problem if it were on the screen in front of me. :question:

Many thanks.
socref

What you are looking for is when top shows the process spiking a high usage of CPU, then look at the terminal running Kmail and notices any lines that the terminal at the same time. Then copy and paste what you get into Google or paste it here. More than likely you will see several lines of code.

Mine showed

 kmail
kbuildsycoca running...
Reusing existing ksycoca
WeaverThreadLogger: thread (ID: 1) suspended.
WeaverThreadLogger: thread (ID: 2) suspended.
WeaverThreadLogger: thread (ID: 4) suspended.
WeaverThreadLogger: thread (ID: 3) suspended.
QGArray::at: Absolute index 3 out of range

My CPU usage didn’t get high though.
So then if we take the last line of output, and run that through Google, we see this; https://www.google.com/search?q=QGArray%3A%3Aat%3A+Absolute+index+3+out+of+range&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a And we see there are some things on lists.kde.org posted with that error. One is even a bug report.

Sorry, just so I’m clear on this.

  1. open console and type “kmail.”
  2. open console and type “top.”

That will then display KMail (GUI) on my desktop.

Do I click “check mail” on the KMail GUI and then look for the output in the console, or are you saying I should get my new e-mail from the command line?

If from the command line, how do I do that?

Thx
socref

No. you use the GUI to check mail. Typing in kmail from the command line will launch the kmail gui. What you want is the errors like I showed from my example. Try it and you’ll see.

On 2011-12-26 14:26, socref wrote:

> Sorry, just so I’m clear on this.
>
> 1) open console and type “kmail.”
> 2) open console and type “top.”

On two different consoles. Or tabs.

> That will then display KMail (GUI) on my desktop.
>
> Do I click “check mail” on the KMail GUI and then look for the output
> in the console, or are you saying I should get my new e-mail from the
> command line?

On kmail. You watch the “top” output at the same time, and also the other
console for possible output from kmail.


Cheers / Saludos,

Carlos E. R.
(from 11.4 x86_64 “Celadon” at Telcontar)

Thank you Carlos for that. That was much more detailed, much better explained.

OK, here is the output of the console. I have edited out my name and e-mail domain info.
Note that I had both Spam Assassin and Clam AV running when I did this. Do you see anything in this output?

gil@linux-9tc5:~> kmail
KGlobal::locale::Warning your global KLocale is being recreated with a valid main component instead of a fake component, this usually means you tried to call i18n related functions before your main component was created. You should not do that since it most likely will not work
kmail(26803)/kdeui (Wallet): The kwalletd service has been disabled
kmail(26803)/kdeui (Wallet): The kwalletd service has been disabled
gil@linux-9tc5:~> kmail(26803)/kdeui (kdelibs): Attempt to use QAction “” with KXMLGUIFactory!
kmail(26803)/kdeui (kdelibs): Attempt to use QAction “” with KXMLGUIFactory!

(:26803): Gtk-CRITICAL **: IA__gtk_notebook_get_tab_label: assertion `GTK_IS_WIDGET (child)’ failed

(<unknown>:26803): Gtk-CRITICAL **: IA__gtk_notebook_get_tab_label: assertion `GTK_IS_WIDGET (child)’ failed

(:26803): Gtk-CRITICAL **: IA__gtk_notebook_get_tab_label: assertion `GTK_IS_WIDGET (child)’ failed

(<unknown>:26803): Gtk-CRITICAL **: IA__gtk_notebook_get_tab_label: assertion `GTK_IS_WIDGET (child)’ failed

(:26803): Gdk-CRITICAL **: IA__gdk_window_shape_combine_mask: assertion `GDK_IS_WINDOW (window)’ failed
ClamAV 0.97.3/13810/Mon Oct 17 08:48:18 2011
/bin/sh: sweep: command not found
/bin/sh: f-prot: command not found
/bin/sh: antivir: command not found
kmail(26803)/kdeui (kdelibs): Attempt to use QAction “” with KXMLGUIFactory!
kmail(26803)/kio (KIOJob) KIO::TransferJob::slotData: mimeType() not emitted when sending first data!; job URL = KUrl(“pop3://gil%40myname.com@mail.myname.com:110/index”) data size = 8
kmail(26803)/kio (KIOJob) KIO::TransferJob::slotData: mimeType() not emitted when sending first data!; job URL = KUrl(“pop3://gil%40myname.com@mail.myname.com:110/uidl”) data size = 24
kmail(26803)/kio (KIOJob) KIO::TransferJob::slotData: mimeType() not emitted when sending first data!; job URL = KUrl(“pop3://myalternatee-mailaddress.net@alternateserver.com:110/index”) data size = 9
kmail(26803)/kio (KIOJob) KIO::TransferJob::slotData: mimeType() not emitted when sending first data!; job URL = KUrl(“pop3://myalternatee-mailaddress@alternateserver.com:110/uidl”) data size = 31

(<unknown>:26803): Gtk-CRITICAL **: IA__gtk_notebook_get_tab_label: assertion `GTK_IS_WIDGET (child)’ failed

(:26803): Gtk-CRITICAL **: IA__gtk_notebook_get_tab_label: assertion `GTK_IS_WIDGET (child)’ failed

(<unknown>:26803): Gtk-CRITICAL **: IA__gtk_notebook_get_tab_label: assertion `GTK_IS_WIDGET (child)’ failed

(:26803): Gtk-CRITICAL **: IA__gtk_notebook_get_tab_label: assertion `GTK_IS_WIDGET (child)’ failed

(<unknown>:26803): Gtk-CRITICAL **: IA__gtk_notebook_get_tab_label: assertion `GTK_IS_WIDGET (child)’ failed

(:26803): Gtk-CRITICAL **: IA__gtk_notebook_get_tab_label: assertion `GTK_IS_WIDGET (child)’ failed

(<unknown>:26803): Gtk-CRITICAL **: IA__gtk_notebook_get_tab_label: assertion `GTK_IS_WIDGET (child)’ failed

(:26803): Gtk-CRITICAL **: IA__gtk_notebook_get_tab_label: assertion `GTK_IS_WIDGET (child)’ failed
kmail(26803)/kdeui (kdelibs): Attempt to use QAction “” with KXMLGUIFactory!
kmail(26803)/kdeui (kdelibs): Attempt to use QAction “” with KXMLGUIFactory!
kmail(26803)/kio (KIOJob) KIO::TransferJob::slotData: mimeType() not emitted when sending first data!; job URL = KUrl(“pop3://gil%40myname.com@mail.myname.com:110/index”) data size = 9
kmail(26803)/kio (KIOJob) KIO::TransferJob::slotData: mimeType() not emitted when sending first data!; job URL = KUrl(“pop3://gil%40myname.com@mail.myname.com:110/uidl”) data size = 24
kmail(26803)/kio (KIOJob) KIO::TransferJob::slotData: mimeType() not emitted when sending first data!; job URL = KUrl(“pop3://myalternatee-mailaddress.net@alternateserver.com:110/index”) data size = 0
kmail(26803)/kio (KIOJob) KIO::TransferJob::slotData: mimeType() not emitted when sending first data!; job URL = KUrl(“pop3://myalternatee-mailaddress.net@alternateserver.com:110/uidl”) data size = 0
kmail(26803)/kio (KIOJob) KIO::TransferJob::slotData: mimeType() not emitted when sending first data!; job URL = KUrl(“pop3://myalternatee-mailaddress.net@alternateserver.com:110/download/”) data size = 0
kmail(26803)/kio (KIOJob) KIO::TransferJob::slotData: mimeType() not emitted when sending first data!; job URL = KUrl(“pop3://gil%40myname.com@mail.myname.com:110/index”) data size = 8
kmail(26803)/kio (KIOJob) KIO::TransferJob::slotData: mimeType() not emitted when sending first data!; job URL = KUrl(“pop3://gil%40myname.com@mail.myname.com:110/uidl”) data size = 24
kmail(26803)/kio (KIOJob) KIO::TransferJob::slotData: mimeType() not emitted when sending first data!; job URL = KUrl(“pop3://myalternatee-mailaddress.net@alternateserver.com:110/index”) data size = 0
kmail(26803)/kio (KIOJob) KIO::TransferJob::slotData: mimeType() not emitted when sending first data!; job URL = KUrl(“pop3://myalternatee-mailaddress.net@alternateserver.com:110/uidl”) data size = 0
kmail(26803)/kio (KIOJob) KIO::TransferJob::slotData: mimeType() not emitted when sending first data!; job URL = KUrl(“pop3://myalternatee-mailaddress.net@alternateserver.com:110/download/”) data size = 0

Does anything here indicate a problem and possible solution?
Thx
socref

On 2011-12-27 14:06, socref wrote:
> Does anything here indicate a problem and possible solution?

I do not know.


Cheers / Saludos,

Carlos E. R.
(from 11.4 x86_64 “Celadon” at Telcontar)

Looks like you have several things going.

Let’s look at your repository list

zypper lr -a

You seem to have several things broken. GTK_IS_WIDGET (child)’ failed
gtk_notebook_get_tab_label is GTKNotebook, which seems to be broken

Next is KXMLGUIFactory, which seems to be broken.

A lot of your GTK stuff seems to be broken. Knowing what your using for repositories will help.

Here you go. Thanks!

gil@linux-9tc5:~> zypper lr -a

| Alias | Name | Enabled | Refresh

—±----------------------------------±----------------------------------------±--------±-------
1 | Updates-for-openSUSE-11.4-11.4-0 | Updates for openSUSE 11.4 11.4-0 | Yes | Yes
2 | download.nvidia.com-opensuse | nVidia Graphics Drivers | Yes | Yes
3 | download.opensuse.org-Extra | openSUSE BuildService - KDE:Extra | Yes | Yes
4 | download.opensuse.org-STABLE | openSUSE BuildService - OpenOffice.org | Yes | Yes
5 | download.opensuse.org-UpdatedApps | openSUSE BuildService - KDE:UpdatedApps | Yes | Yes
6 | download.opensuse.org-mozilla | openSUSE BuildService - Mozilla | Yes | Yes
7 | download.opensuse.org-standard | Main Repository (Contrib) | Yes | Yes
8 | google-chrome | google-chrome | Yes | Yes
9 | openSUSE-11.4-11.4-0 | openSUSE-11.4-11.4-0 | No | No
10 | opensuse-guide.org-repo | libdvdcss repository | Yes | Yes
11 | packman.inode.at-suse | Packman Repository | Yes | Yes
12 | repo-debug | openSUSE-11.4-Debug | No | No
13 | repo-debug-update | openSUSE-11.4-Update-Debug | No | No
14 | repo-non-oss | openSUSE-11.4-Non-Oss | Yes | Yes
15 | repo-oss | openSUSE-11.4-Oss | Yes | Yes
16 | repo-source | openSUSE-11.4-Source | No | No
gil@linux-9tc5:~> ^C
gil@linux-9tc5:~>

Hope this helps.
socref