Bug #8985 Updated: shm_put_var wont put the given var into memory
| From: | lobbin@php.net | Date: | Mon, 14 Jan 2002 07:24:57 +0000 |
| Subject: | Bug #8985 Updated: shm_put_var wont put the given var into memory | ||
| References: | 1 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-76974@lists.php.net to get a copy of this message | ||
ID: 8985
Updated by: lobbin
Reported By: fuf@mobil.cz
Old Status: Open
Status: Feedback
Bug Type: Semaphore related
Operating System: linux-2.2.18
PHP Version: 4.0.4pl1
New Comment:
Have you tried this with 4.1.1?
Previous Comments:
------------------------------------------------------------------------
[2001-01-29 12:27:07] fuf@mobil.cz
hello,
this is the same bug as described in #7046. a call to shm_put_var()
returns true all the time, but checking whether the variable has been
_really_ stored reveals that it hasn't.
this doesn't happen on my 1 cpu box (i can't reproduce it however
much i try), but on a loaded server with 4 cpus it happens pretty
often. of course i call sem_acquire() before writing the variable into
the shared memory, so it should be safe.
i can supply the whole source in which this happens (445 lines) but
basically it's just list this:
$semid = sem_get($sem_key, 1);
sem_acquire($semid);
$var = shm_get_var($shmid, $var_key); // $var is an array
// some change to $var, $var is still an array
shm_put_var($shmid, $var_key, $var);
if(!is_array(shm_get_var($shmid, $var_key)))
echo "failed to write \$var :(\n";
sem_release($semid);
could the problem be caused by the true multitasking on the 4 cpu
server?
thanks for any help with this,
Michal Vitecek
------------------------------------------------------------------------
Edit this bug report at http://bugs.php.net/?id=8985&edit=1