[Webkit-unassigned] [Bug 116587] [EFL] Layout Test Error related to "_ecore_main_fd_handlers_bads_rem() No bad fd found. Maybe a foreign fd from glib?"

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Aug 11 22:34:07 PDT 2014


https://bugs.webkit.org/show_bug.cgi?id=116587


Ryuan Choi <ryuan.choi at samsung.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ryuan.choi at samsung.com




--- Comment #5 from Ryuan Choi <ryuan.choi at samsung.com>  2014-08-11 22:34:13 PST ---
I traced the bad fd and it looks because g_main_context_query returns bad fd which is already closed.

I reproduced it as clicking "reload" button frequently on the MiniBrowser (which loads google.com)

And when select (in ecore_glib.c) is failed, one of fd which returns g_main_context_query got EBADF.

In strace, I got below log. (42 is bad fd in below log)

[pid 25226] socket(PF_INET, SOCK_STREAM|SOCK_CLOEXEC, IPPROTO_IP <unfinished ...>
[pid 25227] select(33, [30 32], NULL, NULL, NULL <unfinished ...>
[pid 25226] <... socket resumed> )      = 42
[pid 25217] read(18,  <unfinished ...>
[pid 25226] fcntl(42, F_GETFL <unfinished ...>
[pid 25217] <... read resumed> "\1\0\0\0", 4) = 4
[pid 25226] <... fcntl resumed> )       = 0x2 (flags O_RDWR)
[pid 25217] read(18,  <unfinished ...>
[pid 25226] fcntl(42, F_SETFL, O_RDWR|O_NONBLOCK <unfinished ...>
[pid 25217] <... read resumed> "W", 1)  = 1
[pid 25226] <... fcntl resumed> )       = 0
[pid 25217] read(18, 0xa863d8, 4)       = -1 EAGAIN (Resource temporarily unavailable)
[pid 25226] connect(42, {sa_family=AF_INET, sin_port=htons(8080), sin_addr=inet_addr("168.219.61.252")}, 16 <unfinished ...>
[pid 25217] fcntl(3, F_GETFD)           = 0x1 (flags FD_CLOEXEC)
[pid 25226] <... connect resumed> )     = -1 EINPROGRESS (Operation now in progress)

...

[pid 25217] select(32, [3 31], [], [], {0, 0} <unfinished ...>
[pid 25226] <... write resumed> )       = 8
[pid 25217] <... select resumed> )      = 0 (Timeout)
[pid 25217] recvfrom(12, 0xab34e4, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable)
[pid 25226] close(42 <unfinished ...>

...

[pid 25227] <... recvmsg resumed> 0x7f668f139b60, 0) = -1 EAGAIN (Resource temporarily unavailable)
[pid 25226] select(44, [3 24 42 43], [], [], {0, 0} <unfinished ...>
[pid 25227] select(33, [30 32], NULL, NULL, NULL <unfinished ...>
[pid 25226] <... select resumed> )      = -1 EBADF (Bad file descriptor)
[pid 25217] fcntl(3, F_GETFD <unfinished ...>
[pid 25226] write(2, "_ecore_glib_select__locked **\n", 30_ecore_glib_select__locked **
 <unfinished ...>
[pid 25217] <... fcntl resumed> )       = 0x1 (flags FD_CLOEXEC)
[pid 25226] <... write resumed> )       = 30
[pid 25217] poll([{fd=12, events=POLLIN|POLLOUT}], 1, 4294967295 <unfinished ...>
[pid 25226] fcntl(24, F_GETFD <unfinished ...>
[pid 25217] <... poll resumed> )        = 1 ([{fd=12, revents=POLLOUT}])
[pid 25226] <... fcntl resumed> )       = 0x1 (flags FD_CLOEXEC)
[pid 25217] writev(12, [{"\22\0\16\0\3\0@\4'\0\0\0\24\1\0\0\10\0\0\0\36\0\0\0Google ("..., 336}, {NULL, 0}, {"", 0}], 3 <unfinished ...>
[pid 25226] fcntl(42, F_GETFD <unfinished ...>
[pid 25217] <... writev resumed> )      = 336
[pid 25226] <... fcntl resumed> )       = -1 EBADF (Bad file descriptor)
[pid 25217] recvfrom(12,  <unfinished ...>
[pid 25226] write(2, "_ecore_glib_context_trace : 42 #"..., 37_ecore_glib_context_trace : 42 #### 
 <unfinished ...>
[pid 25217] <... recvfrom resumed> "\34\0\36\6\3\0@\4'\0\0\0\207;\322\5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096, 0, NULL, NULL) = 192
[pid 25226] <... write resumed> )       = 37
[pid 25217] recvfrom(12,  <unfinished ...>
[pid 25226] fcntl(43, F_GETFD <unfinished ...>
[pid 25217] <... recvfrom resumed> 0xab34e4, 4096, 0, 0, 0) = -1 EAGAIN (Resource temporarily unavailable)
[pid 25226] <... fcntl resumed> )       = 0x1 (flags FD_CLOEXEC)

I don't know why glib returns this fd, but glib(g_main_context_iterate) looks not check the results of poller.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list