Closed Bug 1652878 Opened 4 years ago Closed 3 years ago

TB 68 on Ubuntu 18.04 and 20.04: Somtimes high CPU load and process still there after close

Categories

(Thunderbird :: Untriaged, defect)

Unspecified
Linux
defect

Tracking

(Not tracked)

RESOLVED DUPLICATE of bug 508427

People

(Reporter: admin, Unassigned)

References

Details

(Keywords: perf, Whiteboard: [dupme])

Attachments

(2 files)

User Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0

Steps to reproduce:

Nothing special, getting mail, sending mail.

Actual results:

I use Thunderbird for years now. For some years now, on Ubuntu 18.04 and 20.04 with Unity/Gnome, CPU load sometimes goes up. Htop shows two CPU cores at around 100% load. After I close TB, the situation doesn't change. I have to "killall thunderbird" to solve the problem. So the problem already exists for some versions of Thunderbird.

Expected results:

CPU load shouldn't go up. And if it does, Thunderbird should close if user uses "Close" button.

Oh, I want to add that I sould help with debugging.

A starting point is to look at tools > activity manager

Flags: needinfo?(admin)

According to the activity manager, TB was downloading "Sent messages". But all messages were already there.

Flags: needinfo?(admin)

Reporter, does this happen for you when using version 78? You can update by going to help > about.

Whiteboard: [closeme 2020-09-25]

Reporter, are you using the distributions build of Thunderbird 68.10.0, or one you installed from Thunderbird?

Help > About won't work for you if you are using the distro build.

I can't reproduce your problem on Ubuntu 18.04 LTS using the distros 68.10.0.

Flags: needinfo?(admin)

Always distro build, right now 68.10.0 on 20.04. What else can I do if this problem occurs?

Flags: needinfo?(admin)

I attached a picture. After wakeup from suspend to RAM there are two TB processes running with about 100 percent on two processor cores. One process is sleeping (S), one is running (R).

Attached file strace -p 191905
This is strace on the sleeping process (191905):

I will attach some log excerpts, maybe this helps somehow. This is strace on the sleeping process (191905):

strace: Process 191905 attached
restart_syscall(<... resuming interrupted read ...>) = 1
read(37, "\372", 1) = 1
poll([{fd=4, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=4, revents=POLLOUT}])
writev(4, [{iov_base="\220\1\2\0Q\2\0\0", iov_len=8}, {iov_base=NULL, iov_len=0}, {iov_base="", iov_len=0}], 3) = 8
poll([{fd=4, events=POLLIN}], 1, -1) = 1 ([{fd=4, revents=POLLIN}])
recvmsg(4, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\1\3\273\222\0\0\0\0P\2\0\0\0\0\0\0\200\3\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32
futex(0x7f650390b400, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f650390b3a8, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f6502f9f930, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f650390b404, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f650390b3a8, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f650390b400, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f650390b3a8, FUTEX_WAKE_PRIVATE, 1) = 1
recvmsg(4, {msg_namelen=0}, 0) = -1 EAGAIN (Die Ressource ist zur Zeit nicht verfügbar)
recvmsg(4, {msg_namelen=0}, 0) = -1 EAGAIN (Die Ressource ist zur Zeit nicht verfügbar)
poll([{fd=4, events=POLLIN}, {fd=5, events=POLLIN}, {fd=10, events=POLLIN}, {fd=37, events=POLLIN}], 4, 0) = 0 (Timeout)
recvmsg(4, {msg_namelen=0}, 0) = -1 EAGAIN (Die Ressource ist zur Zeit nicht verfügbar)
recvmsg(4, {msg_namelen=0}, 0) = -1 EAGAIN (Die Ressource ist zur Zeit nicht verfügbar)
poll([{fd=4, events=POLLIN}, {fd=5, events=POLLIN}, {fd=10, events=POLLIN}, {fd=37, events=POLLIN}], 4, 0) = 0 (Timeout)
recvmsg(4, {msg_namelen=0}, 0) = -1 EAGAIN (Die Ressource ist zur Zeit nicht verfügbar)
recvmsg(4, {msg_namelen=0}, 0) = -1 EAGAIN (Die Ressource ist zur Zeit nicht verfügbar)
poll([{fd=4, events=POLLIN}, {fd=5, events=POLLIN}, {fd=10, events=POLLIN}, {fd=37, events=POLLIN}], 4, 0) = 0 (Timeout)
recvmsg(4, {msg_namelen=0}, 0) = -1 EAGAIN (Die Ressource ist zur Zeit nicht verfügbar)
recvmsg(4, {msg_namelen=0}, 0) = -1 EAGAIN (Die Ressource ist zur Zeit nicht verfügbar)
poll([{fd=4, events=POLLIN}, {fd=5, events=POLLIN}, {fd=10, events=POLLIN}, {fd=37, events=POLLIN}], 4, -1) = 1 ([{fd=37, revents=POLLIN}])
read(37, "\372", 1) = 1
poll([{fd=4, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=4, revents=POLLOUT}])
writev(4, [{iov_base="\220\1\2\0Q\2\0\0", iov_len=8}, {iov_base=NULL, iov_len=0}, {iov_base="", iov_len=0}], 3) = 8
poll([{fd=4, events=POLLIN}], 1, -1) = 1 ([{fd=4, revents=POLLIN}])
recvmsg(4, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\1\3\274\222\0\0\0\0P\2\0\0\0\0\0\0\302\v\0\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32
futex(0x7f650390b404, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f650390b3a8, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x7f6502f9f934, FUTEX_WAKE_PRIVATE, 1) = 1
recvmsg(4, {msg_namelen=0}, 0) = -1 EAGAIN (Die Ressource ist zur Zeit nicht verfügbar)
recvmsg(4, {msg_namelen=0}, 0) = -1 EAGAIN (Die Ressource ist zur Zeit nicht verfügbar)
poll([{fd=4, events=POLLIN}, {fd=5, events=POLLIN}, {fd=10, events=POLLIN}, {fd=37, events=POLLIN}], 4, 0) = 0 (Timeout)
recvmsg(4, {msg_namelen=0}, 0) = -1 EAGAIN (Die Ressource ist zur Zeit nicht verfügbar)
recvmsg(4, {msg_namelen=0}, 0) = -1 EAGAIN (Die Ressource ist zur Zeit nicht verfügbar)
poll([{fd=4, events=POLLIN}, {fd=5, events=POLLIN}, {fd=10, events=POLLIN}, {fd=37, events=POLLIN}], 4, 0) = 0 (Timeout)
recvmsg(4, {msg_namelen=0}, 0) = -1 EAGAIN (Die Ressource ist zur Zeit nicht verfügbar)
recvmsg(4, {msg_namelen=0}, 0) = -1 EAGAIN (Die Ressource ist zur Zeit nicht verfügbar)
poll([{fd=4, events=POLLIN}, {fd=5, events=POLLIN}, {fd=10, events=POLLIN}, {fd=37, events=POLLIN}], 4, 0) = 0 (Timeout)
recvmsg(4, {msg_namelen=0}, 0) = -1 EAGAIN (Die Ressource ist zur Zeit nicht verfügbar)
recvmsg(4, {msg_namelen=0}, 0) = -1 EAGAIN (Die Ressource ist zur Zeit nicht verfügbar)
poll([{fd=4, events=POLLIN}, {fd=5, events=POLLIN}, {fd=10, events=POLLIN}, {fd=37, events=POLLIN}], 4, -1) = 1 ([{fd=37, revents=POLLIN}])
read(37, "\372", 1) = 1
...


This is strace on the running process (191925):
poll([{fd=24, events=POLLIN|POLLPRI}, {fd=118, events=POLLIN|POLLPRI}, {fd=116, events=POLLIN|POLLPRI}, {fd=148, events=POLLIN|POLLPRI}, {fd=124, events=POLLIN|POLLPRI}, {fd=123, events=POLLIN|POLLPRI}, {fd=122, events=POLLIN|POLLPRI}, {fd=100, events=POLLIN|POLLPRI}, {fd=96, events=POLLIN|POLLPRI}, {fd=78, events=POLLIN|POLLPRI}, {fd=129, events=POLLIN|POLLPRI}, {fd=120, events=POLLIN|POLLPRI}, {fd=132, events=POLLIN|POLLPRI}], 13, 0) = 0 (Timeout)
poll([{fd=24, events=POLLIN|POLLPRI}, {fd=118, events=POLLIN|POLLPRI}, {fd=116, events=POLLIN|POLLPRI}, {fd=148, events=POLLIN|POLLPRI}, {fd=124, events=POLLIN|POLLPRI}, {fd=123, events=POLLIN|POLLPRI}, {fd=122, events=POLLIN|POLLPRI}, {fd=100, events=POLLIN|POLLPRI}, {fd=96, events=POLLIN|POLLPRI}, {fd=78, events=POLLIN|POLLPRI}, {fd=129, events=POLLIN|POLLPRI}, {fd=120, events=POLLIN|POLLPRI}, {fd=132, events=POLLIN|POLLPRI}], 13, 0) = 0 (Timeout)
poll([{fd=24, events=POLLIN|POLLPRI}, {fd=118, events=POLLIN|POLLPRI}, {fd=116, events=POLLIN|POLLPRI}, {fd=148, events=POLLIN|POLLPRI}, {fd=124, events=POLLIN|POLLPRI}, {fd=123, events=POLLIN|POLLPRI}, {fd=122, events=POLLIN|POLLPRI}, {fd=100, events=POLLIN|POLLPRI}, {fd=96, events=POLLIN|POLLPRI}, {fd=78, events=POLLIN|POLLPRI}, {fd=129, events=POLLIN|POLLPRI}, {fd=120, events=POLLIN|POLLPRI}, {fd=132, events=POLLIN|POLLPRI}], 13, 0) = 0 (Timeout)
poll([{fd=24, events=POLLIN|POLLPRI}, {fd=118, events=POLLIN|POLLPRI}, {fd=116, events=POLLIN|POLLPRI}, {fd=148, events=POLLIN|POLLPRI}, {fd=124, events=POLLIN|POLLPRI}, {fd=123, events=POLLIN|POLLPRI}, {fd=122, events=POLLIN|POLLPRI}, {fd=100, events=POLLIN|POLLPRI}, {fd=96, events=POLLIN|POLLPRI}, {fd=78, events=POLLIN|POLLPRI}, {fd=129, events=POLLIN|POLLPRI}, {fd=120, events=POLLIN|POLLPRI}, {fd=132, events=POLLIN|POLLPRI}], 13, 0) = 0 (Timeout)
...

Whiteboard: [closeme 2020-09-25]

The bug is still there, its Thunderbird 68.10.0 now. Anything else I can do?

(In reply to Kris from comment #10)

The bug is still there, its Thunderbird 68.10.0 now. Anything else I can do?

Close Thunderbird and reboot your computer.

You could have extensions that are leaking memory and using CPU cycles when in sleep mode.

I can't reproduce your problem with any version of Thunderbird I have on my system including Ubuntu's outdated 68.10.0 version.

Of course I can "killall thunderbird" but that does not solve the problem. The question is, what can I do to analyze the cause? Is there a tool that helps?

(In reply to Kris from comment #13)

The question is, what can I do to analyze the cause? Is there a tool that helps?

If it hasn't hung, you could get a performance profile https://support.mozilla.org/en-US/kb/profiling-thunderbird-performance

Perhaps you can draw inspiration from these other bug reports https://bugzilla.mozilla.org/buglist.cgi?quicksearch=561272%201549978%201632902%201633243%201652878%201675407%201677380%20&list_id=15504525

Keywords: perf
OS: Unspecified → Linux
Whiteboard: [dupme]

Can you get a performance profile, using a Thunderbird supplied build from thunderbird.net ?

Flags: needinfo?(admin)
Status: UNCONFIRMED → RESOLVED
Closed: 3 years ago
Depends on: 508427
Flags: needinfo?(admin)
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: