Bug 458230 - thunderbird hangs in FUTEX_WAIT_PRIVATE after several hours
Summary: thunderbird hangs in FUTEX_WAIT_PRIVATE after several hours
Status: VERIFIED FIXED
Alias: None
Product: openSUSE 11.1
Classification: openSUSE
Component: Firefox (show other bugs)
Version: Final
Hardware: x86-64 Linux
: P5 - None : Major (vote)
Target Milestone: ---
Assignee: E-mail List
QA Contact: E-mail List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-12-11 09:07 UTC by Stefan Assmann
Modified: 2011-04-02 00:40 UTC (History)
4 users (show)

See Also:
Found By: Development
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Stefan Assmann 2008-12-11 09:07:43 UTC
after some hours (over night) thunderbird hangs in FUTEX_WAIT_PRIVATE and does not recover.

sassmann@erdberry:~> ps fax |grep thunderbird
 8983 ?        S      0:00 /bin/sh /usr/bin/thunderbird
 8985 ?        Sl     5:26  \_ /usr/lib64/thunderbird/thunderbird-bin

sassmann@erdberry:~> strace -p 8985
Process 8985 attached - interrupt to quit
futex(0x7f99740013dc, FUTEX_WAIT_PRIVATE, 140283, NULL
Comment 1 Stefan Assmann 2008-12-12 10:20:30 UTC
same thing happened for pidgin
strace -p 9075
Process 9075 attached - interrupt to quit
futex(0x7ffd00009db0, FUTEX_WAIT_PRIVATE, 2, NULL

probably a kernel issue, reassigning to kernel-maintainers

What info do you need for debugging?
Comment 2 Michal Marek 2008-12-21 17:27:09 UTC
Probably not a kernel bug but a deadlock in thunderbird.
Comment 3 poe yuan 2009-04-13 02:12:24 UTC
Here is a small test program that will deadlock under suse kernel 2.6 but normal under kernel.org 's 2.6 .. 

see ctime-hang.c

#include <sys/time.h>
#include <time.h>
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>

volatile char *r;

void handler(int sig)
{
time_t t;

time(&t);
r = ctime(&t);
}

int main()
{
struct itimerval it;
struct sigaction sa;
time_t t;
int counter = 0;

memset(&sa, 0, sizeof(sa));
sa.sa_handler = handler;
sigaction(SIGALRM, &sa, NULL);

it.it_value.tv_sec = 0;
it.it_value.tv_usec = 1000;
it.it_interval.tv_sec = 0;
it.it_interval.tv_usec = 1000;
setitimer(ITIMER_REAL, &it, NULL);

while(1) {
counter++;
time(&t);
r = ctime(&t);
printf("Loop %d\n",counter);
}


return 0;
}

-----------------------------------------------------------------------

Reference Links:

http://ubuntuforums.org/showthread.php?t=675821
Comment 4 Sid Boyce 2009-06-09 23:05:36 UTC
This is under vanilla kernel 2.6.30-rc8-git4 and Milestone 2 Factory updated this evening. See my submitted bug #487060 for another flavour of this bug
slipstream:/usr/src # strace ./ctime-hang
execve("./ctime-hang", ["./ctime-hang"], [/* 99 vars */]) = 0
brk(0)                                  = 0x602000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fb3a432e000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fb3a432d000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=330205, ...}) = 0
mmap(NULL, 330205, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fb3a42dc000
close(3)                                = 0
open("/lib64/libc.so.6", O_RDONLY)      = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0`\353\1\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1412656, ...}) = 0
mmap(NULL, 3520584, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fb3a3db6000
fadvise64(3, 0, 3520584, POSIX_FADV_WILLNEED) = 0
mprotect(0x7fb3a3f09000, 2093056, PROT_NONE) = 0
mmap(0x7fb3a4108000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x152000) = 0x7fb3a4108000
mmap(0x7fb3a410d000, 18504, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fb3a410d000
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fb3a42db000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fb3a42da000
arch_prctl(ARCH_SET_FS, 0x7fb3a42da6f0) = 0
mprotect(0x7fb3a4108000, 16384, PROT_READ) = 0
mprotect(0x600000, 4096, PROT_READ)     = 0
mprotect(0x7fb3a432f000, 4096, PROT_READ) = 0
munmap(0x7fb3a42dc000, 330205)          = 0
rt_sigaction(SIGALRM, {0x4006bc, [], SA_RESTORER, 0x7fb3a3de88f0}, NULL, 8) = 0
setitimer(ITIMER_REAL, {it_interval={0, 1000}, it_value={0, 1000}}, NULL) = 0
brk(0)                                  = 0x602000
brk(0x623000)                           = 0x623000
open("/etc/localtime", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=3661, ...}) = 0
fstat(3, {st_mode=S_IFREG|0644, st_size=3661, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fb3a432c000
read(3, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\7\0\0\0\7\0\0\0\0"..., 4096) = 3661
--- SIGALRM (Alarm clock) @ 0 (0) ---
futex(0x7fb3a410ea14, FUTEX_WAIT, 2, NULL
Comment 5 Sid Boyce 2009-06-09 23:11:52 UTC
When run as user rather than root
lancelot@slipstream:~> /usr/src/ctime-hang                
Loop 1                                                    
Loop 2                                                    
Loop 3                                                    
Loop 4                                                    
Loop 5                                                    
Loop 6                                                    
Loop 7                                                    
Loop 8                                                    
Loop 9                                                    
Loop 10                                                   
Loop 11                                                   
Loop 12                                                   
Loop 13                                                   
Loop 14                                                   
Loop 15                                                   
Loop 16                                                   
Loop 17                                                   
Loop 18                                                   
Loop 19                                                   
Loop 20  
etc.
Comment 6 Stephan Binner 2009-07-14 07:17:41 UTC
Read http://en.opensuse.org/Bugs/Definitions#Bug_Priorities
Comment 7 Larry Finger 2011-04-02 00:40:08 UTC
This bug was acted on during Open-Bugs-Day April 2, 2011.

The test program was run on kernel 2.6.37.1-1.2-default on openSUSE 11.4 without any problem.

I am marking this bug as CLOSED/FIXED.