#40933 [Opn->Fbk]: Streams blocking under concurrent access
| From: | jani@php.net | Date: | Sat, 14 Jul 2007 09:14:45 +0000 |
| Subject: | #40933 [Opn->Fbk]: Streams blocking under concurrent access | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-115059@lists.php.net to get a copy of this message | ||
ID: 40933
Updated by: jani@php.net
Reported By: loony at loonybin dot org
-Status: Open
+Status: Feedback
Bug Type: Streams related
Operating System: Linux 2.6.20 - FC6
PHP Version: 5.2.1
New Comment:
Does that script work in any PHP version? I also get some E_NOTICE for
that ob_flush(); call..
Previous Comments:
------------------------------------------------------------------------
[2007-07-13 02:27:36] loony at loonybin dot org
Tried php5.2-200707122230 and the behavior does not seem to have
changed.
------------------------------------------------------------------------
[2007-07-12 21:16:39] jani@php.net
Please try using this CVS snapshot:
http://snaps.php.net/php5.2-latest.tar.gz
For Windows (zip):
http://snaps.php.net/win32/php5.2-win32-latest.zip
For Windows (installer):
http://snaps.php.net/win32/php5.2-win32-installer-latest.msi
------------------------------------------------------------------------
[2007-03-28 04:32:29] loony at loonybin dot org
Description:
------------
Tail for php. Open the file, output the current content... then wait
for more - if no more content arrives, then return number of bytes read
after a while...
Running 1 execution of this code works fine. Executing it from two
browsers at the same time blocks.
Happens on Fedora Core 6 default 5.1.6 and also after upgrading to
5.2.1
Reproduce code:
---------------
http://ns1.loonybin.org/php/tail.tar.gz - 45
lines
Expected result:
----------------
See content of file printed immediately. If any content is appended to
the file within 15 seconds from request start, that content should be
printed as well.
This works with 1 execution of the code. Should yield same result if
executed multiple times.
Actual result:
--------------
1 run of the code works. Multiple executions however block on semop /
epoll_wait.
semop(4358158, 0x15470c, 1) = 0 <2.194313>
epoll_wait(16, {{EPOLLIN, {u32=2156798632, u64=13801426109869204136}}},
2, -1) = 1 <3.738842>
As soon as the first execution of the code has ended, the second will
run as expected and finish successfully (as long as max_execution_time
is not reached).
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=40933&edit=1