Just after the last unavailable (400+), firefox removes the 'lock' file in the profile dir. I'd rather not attach the full strace since it has some personal bits from the profile - if a dev would like to review the output I'd be happy to provide it directly.
I tried a strace -f /usr/bin/firefox...
Looks like the issue ties to this read... /tmp/.X11- unix/X0" }, 20) = 0 /tmp/.X11- unix/X0" }, [20]) = 0 "/var/run/ gdm/auth- for-ryan- D3btog/ database" , R_OK) = 0 var/run/ gdm/auth- for-ryan- D3btog/ database" , O_RDONLY) = 4 S_IFREG| 0600, st_size=47, ...}) = 0 PROT_WRITE, MAP_PRIVATE| MAP_ANONYMOUS, -1, 0) = 0xb74d1000 2lt\0\0010\ 0\22MIT- MAGIC-COOKIE- 1\0\20\ 27"..., 4096) = 47 POLLIN| POLLOUT} ], 1, -1) = 1 ([{fd=3, revents=POLLOUT}]) v\0\0\0\ 22\0\20\ 0\0\0", 12}, {"", 0}, {"MIT-MAGIC- COOKIE- 1", 18}, {"\0\0", 2}, {"\0273\ 203\3672' \0\367\ 360\375\ " \377s\17\256", 16}, {"", 0}], 6) = 48 0\0\0\340\ 3\377\377\ 37\0\0\ 1\0\0\24\ 0\377\377\ 1\7\0\0 \10\377\ 0\0\0\0" ..., 3084) = 3084 POLLIN| POLLOUT} ], 1, -1) = 1 ([{fd=3, revents=POLLOUT}]) 5\0\f\0\ 0\0BIG- REQUESTS" , 20}], 1) = 20 0\0\0\0\ 0\1\221\ 0\0\0\0\ 0\0\0\0\ 0\0\0\0\ 0\0\0\0\ 0\0\0\0\ 0\0", 4096) = 32 POLLIN| POLLOUT} ], 1, -1) = 1 ([{fd=3, revents=POLLOUT}]) 0\0\0\0\ 0\377\377? \0\0\0\ 0\0\0\0\ 0\0\0\0\ 0\0\0\0\ 0\0\0\0\ 0\0", 4096) = 32 POLLIN| POLLOUT} ], 1, -1) = 1 ([{fd=3, revents=POLLOUT}]) 5\0\0\0\ 340\3\255\ 1\0\0\10\ 0\0\0\377\ 377\377\ 0\24\0\ 6\0\255\ 1\0\0\27\ 0\0\0". .., 44}, {NULL, 0}, {"", 0}], 3) = 44 4\0,\0\ 0\0\37\ 0\0\0\0\ 0\0\0\255\ 0\0\0\0\ 0\0\0\0\ 0\0\0\0\ 0\0\0". .., 4096) = 208 POLLIN| POLLOUT} ], 1, -1) = 1 ([{fd=3, revents=POLLOUT}]) 5\0\t\0\ 340\3", 8}, {"XKEYBOARD", 9}, {"\0\0\0", 3}], 3) = 20 0\0\0\0\ 0\1\223v\ 251\0\0\ 0\0\0\0\ 0\0\0\0\ 0\0\0\0\ 0\0\0\0\ 0\0", 4096) = 32
25377 read(3, 0xb7662058, 4096) = -1 EAGAIN (Resource temporarily unavailable)
grep 0xb7662058 firefox-strace.txt |wc
425 4250 36975
Leading up to that read..
25377 socket(PF_FILE, SOCK_STREAM, 0) = 3
25377 connect(3, {sa_family=AF_FILE, path=@"
25377 getpeername(3, {sa_family=AF_FILE, path=@"
25377 uname({sys="Linux", node="lt", ...}) = 0
25377 access(
25377 open("/
25377 fstat64(4, {st_mode=
25377 mmap2(NULL, 4096, PROT_READ|
25377 read(4, "\1\0\0\
25377 read(4, "", 4096) = 0
25377 close(4) = 0
25377 munmap(0xb74d1000, 4096) = 0
25377 getsockname(3, {sa_family=AF_FILE, NULL}, [2]) = 0
25377 fcntl64(3, F_GETFL) = 0x2 (flags O_RDWR)
25377 fcntl64(3, F_SETFL, O_RDWR|O_NONBLOCK) = 0
25377 fcntl64(3, F_SETFD, FD_CLOEXEC) = 0
25377 poll([{fd=3, events=
25377 writev(3, [{"l\0\
25377 read(3, 0xb7603a40, 8) = -1 EAGAIN (Resource temporarily unavailable)
25377 poll([{fd=3, events=POLLIN}], 1, -1) = 1 ([{fd=3, revents=POLLIN}])
25377 read(3, "\1\0\v\0\0\0\3\3", 8) = 8
25377 read(3, "hX\243\
25377 poll([{fd=3, events=
25377 writev(3, [{"b\0\
25377 poll([{fd=3, events=POLLIN}], 1, -1) = 1 ([{fd=3, revents=POLLIN}])
25377 read(3, "\1\0\1\
25377 poll([{fd=3, events=
25377 writev(3, [{"\221\0\1\0", 4}], 1) = 4
25377 poll([{fd=3, events=POLLIN}], 1, -1) = 1 ([{fd=3, revents=POLLIN}])
25377 read(3, "\1\0\2\
25377 read(3, 0xb7662058, 4096) = -1 EAGAIN (Resource temporarily unavailable)
25377 poll([{fd=3, events=
25377 writev(3, [{"7\0\
25377 poll([{fd=3, events=POLLIN}], 1, -1) = 1 ([{fd=3, revents=POLLIN}])
25377 read(3, "\1\10\
25377 read(3, 0xb7662058, 4096) = -1 EAGAIN (Resource temporarily unavailable)
25377 poll([{fd=3, events=
25377 writev(3, [{"b\0\
25377 poll([{fd=3, events=POLLIN}], 1, -1) = 1 ([{fd=3, revents=POLLIN}])
25377 read(3, "\1\0\5\
25377 read(3, 0xb7662058, 4096) = -1 EAGAIN (Resource temporarily unavailable)
Just after the last unavailable (400+), firefox removes the 'lock' file in the profile dir. I'd rather not attach the full strace since it has some personal bits from the profile - if a dev would like to review the output I'd be happy to provide it directly.