Hi,
Thanks for providing reply. Yes. It works fine without any issue on my custom Linux Board with single listen port but failed to execute on multiple listen ports. I have started my httpd process with "-DNO_DETACH -DONE_PROCESS" options and debug that process using strace on my Linux Board with single and multiple listen port requests. I have found from strace output of each request that following two system calls are not executed in multiple listen port request compare to single listen port request which is used to create that fd as non blocking. fcntl64(9, F_GETFL) = 0x2 (flags O_RDWR) fcntl64(9, F_SETFL, O_RDWR|O_NONBLOCK) = 0 so that read() system call goes into hang state after sending HTTP request in multiple listen port on my custom Linux board. Please find attached text files which contains output of strace command of single and multiple listen ports request of my custom Linux board. Regards, Ritesh Prajapati, System Level Solutions (India) Pvt.Ltd.On Thursday 17 July 2014 04:28 PM, Jeff Trawick wrote:
|
$ ./strace -p 6515 Process 6515 attached accept(4, {sa_family=AF_INET6, sin6_port=htons(56493), inet_pton(AF_INET6, "::ffff:192.168.0.45", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, [28]) = 9 fcntl64(9, F_GETFD) = 0 fcntl64(9, F_SETFD, FD_CLOEXEC) = 0 semop(1769486, {{0, 1, SEM_UNDO}}, 1) = 0 gettimeofday({1405598630, 559443}, NULL) = 0 getsockname(9, {sa_family=AF_INET6, sin6_port=htons(80), inet_pton(AF_INET6, "::ffff:192.168.0.183", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, [28]) = 0 fcntl64(9, F_GETFL) = 0x2 (flags O_RDWR) fcntl64(9, F_SETFL, O_RDWR|O_NONBLOCK) = 0 gettimeofday({1405598630, 562379}, NULL) = 0 gettimeofday({1405598630, 563202}, NULL) = 0 read(9, "GET / HTTP/1.1\r\nHost: 192.168.0."..., 8000) = 289 gettimeofday({1405598630, 566106}, NULL) = 0 gettimeofday({1405598630, 568347}, NULL) = 0 gettimeofday({1405598630, 570265}, NULL) = 0 gettimeofday({1405598630, 572616}, NULL) = 0 gettimeofday({1405598630, 574532}, NULL) = 0 gettimeofday({1405598630, 576433}, NULL) = 0 gettimeofday({1405598630, 578344}, NULL) = 0 gettimeofday({1405598630, 580027}, NULL) = 0 gettimeofday({1405598630, 582467}, NULL) = 0 gettimeofday({1405598630, 583592}, NULL) = 0 stat64("/usr/local/apache2/htdocs/", {st_mode=S_IFDIR|0777, st_size=4096, ...}) = 0 stat64("/usr/local/apache2/htdocs/index.html", {st_mode=S_IFREG|0777, st_size=45, ...}) = 0 open("/usr/local/apache2/htdocs/index.html", O_RDONLY|O_CLOEXEC) = 10 open("/etc/localtime", O_RDONLY) = 11 fstat64(11, {st_mode=S_IFREG|0644, st_size=127, ...}) = 0 fstat64(11, {st_mode=S_IFREG|0644, st_size=127, ...}) = 0 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2a01d000 read(11, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\1\0\0\0\0"..., 4096) = 127 _llseek(11, -11, [116], SEEK_CUR) = 0 read(11, "\n<GMT-8>-8\n", 4096) = 11 close(11) = 0 munmap(0x2a01d000, 4096) = 0 gettimeofday({1405598630, 613836}, NULL) = 0 read(9, 0x504c30, 8000) = -1 EAGAIN (Resource temporarily unavailable) gettimeofday({1405598630, 618100}, NULL) = 0 old_mmap(NULL, 45, PROT_READ, MAP_SHARED, 10, 0) = 0x29576000 writev(9, [{"HTTP/1.1 200 OK\r\nDate: Thu, 17 J"..., 280}, {"<html><body><h1>It works!</h1></"..., 45}], 2) = 325 munmap(0x29576000, 45) = 0 gettimeofday({1405598630, 629700}, NULL) = 0 write(7, "192.168.0.45 - - [17/Jul/2014:20"..., 70) = 70 times({tms_utime=36, tms_stime=35, tms_cutime=0, tms_cstime=0}) = 2053499 close(10) = 0 gettimeofday({1405598630, 639513}, NULL) = 0 gettimeofday({1405598630, 641338}, NULL) = 0 poll([{fd=9, events=POLLIN}], 1, 5000) = 1 ([{fd=9, revents=POLLIN}]) read(9, "GET /favicon.ico HTTP/1.1\r\nHost:"..., 8000) = 270 gettimeofday({1405598630, 753559}, NULL) = 0 gettimeofday({1405598630, 754281}, NULL) = 0 gettimeofday({1405598630, 754777}, NULL) = 0 stat64("/usr/local/apache2/htdocs/favicon.ico", 0x7b9b27a0) = -1 ENOENT (No such file or directory) lstat64("/usr", {st_mode=S_IFDIR|0775, st_size=140, ...}) = 0 lstat64("/usr/local", {st_mode=S_IFDIR|0775, st_size=124, ...}) = 0 lstat64("/usr/local/apache2", {st_mode=S_IFLNK|0777, st_size=20, ...}) = 0 stat64("/usr/local/apache2", {st_mode=S_IFDIR|0777, st_size=4096, ...}) = 0 lstat64("/usr/local/apache2/htdocs", {st_mode=S_IFDIR|0777, st_size=4096, ...}) = 0 lstat64("/usr/local/apache2/htdocs/favicon.ico", 0x7b9b27a0) = -1 ENOENT (No such file or directory) gettimeofday({1405598630, 776903}, NULL) = 0 read(9, 0x506c38, 8000) = -1 EAGAIN (Resource temporarily unavailable) gettimeofday({1405598630, 781034}, NULL) = 0 writev(9, [{"HTTP/1.1 404 Not Found\r\nDate: Th"..., 213}, {"<!DOCTYPE HTML PUBLIC \"-//IETF//"..., 209}], 2) = 422 gettimeofday({1405598630, 788113}, NULL) = 0 write(7, "192.168.0.45 - - [17/Jul/2014:20"..., 82) = 82 times({tms_utime=37, tms_stime=35, tms_cutime=0, tms_cstime=0}) = 2053515 gettimeofday({1405598630, 795425}, NULL) = 0 gettimeofday({1405598630, 797172}, NULL) = 0 poll([{fd=9, events=POLLIN}], 1, 5000) = 1 ([{fd=9, revents=POLLIN}]) read(9, "GET /favicon.ico HTTP/1.1\r\nHost:"..., 8000) = 300 gettimeofday({1405598630, 976762}, NULL) = 0 gettimeofday({1405598630, 979619}, NULL) = 0 gettimeofday({1405598630, 981716}, NULL) = 0 stat64("/usr/local/apache2/htdocs/favicon.ico", 0x7b9b27a0) = -1 ENOENT (No such file or directory) lstat64("/usr", {st_mode=S_IFDIR|0775, st_size=140, ...}) = 0 lstat64("/usr/local", {st_mode=S_IFDIR|0775, st_size=124, ...}) = 0 lstat64("/usr/local/apache2", {st_mode=S_IFLNK|0777, st_size=20, ...}) = 0 stat64("/usr/local/apache2", {st_mode=S_IFDIR|0777, st_size=4096, ...}) = 0 lstat64("/usr/local/apache2/htdocs", {st_mode=S_IFDIR|0777, st_size=4096, ...}) = 0 lstat64("/usr/local/apache2/htdocs/favicon.ico", 0x7b9b27a0) = -1 ENOENT (No such file or directory) gettimeofday({1405598631, 14596}, NULL) = 0 read(9, 0x508c40, 8000) = -1 EAGAIN (Resource temporarily unavailable) gettimeofday({1405598631, 16674}, NULL) = 0 writev(9, [{"HTTP/1.1 404 Not Found\r\nDate: Th"..., 213}, {"<!DOCTYPE HTML PUBLIC \"-//IETF//"..., 209}], 2) = 422 gettimeofday({1405598631, 21375}, NULL) = 0 write(7, "192.168.0.45 - - [17/Jul/2014:20"..., 82) = 82 times({tms_utime=37, tms_stime=35, tms_cutime=0, tms_cstime=0}) = 2053538 gettimeofday({1405598631, 26225}, NULL) = 0 gettimeofday({1405598631, 27234}, NULL) = 0 poll([{fd=9, events=POLLIN}], 1, 5000) = 0 (Timeout) gettimeofday({1405598636, 32832}, NULL) = 0 gettimeofday({1405598636, 33255}, NULL) = 0 gettimeofday({1405598636, 33744}, NULL) = 0 gettimeofday({1405598636, 34232}, NULL) = 0 shutdown(9, SHUT_WR) = 0 poll([{fd=9, events=POLLIN}], 1, 2000) = 1 ([{fd=9, revents=POLLIN|POLLHUP}]) read(9, "", 512) = 0 close(9) = 0 read(5, 0x7b9b2a97, 1) = -1 EAGAIN (Resource temporarily unavailable) gettimeofday({1405598636, 39022}, NULL) = 0 semop(1769486, {{0, -1, SEM_UNDO}}, 1) = 0 accept(4,
$ ./strace -p 6527 Process 6527 attached restart_syscall(<... resuming interrupted call ...>) = 0 poll([{fd=6, events=POLLIN}, {fd=4, events=POLLIN}], 2, 10000) = 0 (Timeout) poll([{fd=6, events=POLLIN}, {fd=4, events=POLLIN}], 2, 10000) = 0 (Timeout) poll([{fd=6, events=POLLIN}, {fd=4, events=POLLIN}], 2, 10000) = 1 ([{fd=4, revents=POLLIN}]) accept(4, {sa_family=AF_INET6, sin6_port=htons(56543), inet_pton(AF_INET6, "::ffff:192.168.0.45", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, [28]) = 11 fcntl64(11, F_GETFD) = 0 fcntl64(11, F_SETFD, FD_CLOEXEC) = 0 semop(1802255, {{0, 1, SEM_UNDO}}, 1) = 0 gettimeofday({1405598733, 589454}, NULL) = 0 getsockname(11, {sa_family=AF_INET6, sin6_port=htons(80), inet_pton(AF_INET6, "::ffff:192.168.0.183", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, [28]) = 0 gettimeofday({1405598733, 591566}, NULL) = 0 gettimeofday({1405598733, 593101}, NULL) = 0 read(11, "GET / HTTP/1.1\r\nHost: 192.168.0."..., 8000) = 289 gettimeofday({1405598733, 596680}, NULL) = 0 gettimeofday({1405598733, 598920}, NULL) = 0 gettimeofday({1405598733, 600798}, NULL) = 0 gettimeofday({1405598733, 602927}, NULL) = 0 gettimeofday({1405598733, 604846}, NULL) = 0 gettimeofday({1405598733, 606881}, NULL) = 0 gettimeofday({1405598733, 608923}, NULL) = 0 gettimeofday({1405598733, 610957}, NULL) = 0 gettimeofday({1405598733, 613539}, NULL) = 0 gettimeofday({1405598733, 615663}, NULL) = 0 stat64("/usr/local/apache2/htdocs/", {st_mode=S_IFDIR|0777, st_size=4096, ...}) = 0 stat64("/usr/local/apache2/htdocs/index.html", {st_mode=S_IFREG|0777, st_size=45, ...}) = 0 open("/usr/local/apache2/htdocs/index.html", O_RDONLY|O_CLOEXEC) = 12 open("/etc/localtime", O_RDONLY) = 13 fstat64(13, {st_mode=S_IFREG|0644, st_size=127, ...}) = 0 fstat64(13, {st_mode=S_IFREG|0644, st_size=127, ...}) = 0 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2a01d000 read(13, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\1\0\0\0\1\0\0\0\0"..., 4096) = 127 _llseek(13, -11, [116], SEEK_CUR) = 0 read(13, "\n<GMT-8>-8\n", 4096) = 11 close(13) = 0 munmap(0x2a01d000, 4096) = 0 gettimeofday({1405598733, 658836}, NULL) = 0 read(11,
--------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscribe@xxxxxxxxxxxxxxxx For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx