ID: 8985
Comment by: [EMAIL PROTECTED]
Old Reported By: [EMAIL PROTECTED]
Reported By: [EMAIL PROTECTED]
Status: Feedback
Bug Type: Semaphore related
Operating System: linux-2.2.18
PHP Version: 4.0.4pl1
New Comment:

I've been experiencing the same problem on a dual cpu server, even with
PHP 4.1.1.  Sometimes occurs that shm_put_var() doesn't correctly write
data to SHM but returns true, and as I manage an array of online users
in SHM, I have noticed that all users sometimes are dropped off.

I also check semaphores before writing to SHM.

16:44:41 User aaa added successfully to SHM. (8104 bytes written)
16:45:54 User bbb added successfully to SHM. (8209 bytes written)
16:47:20 User bbb deleted successfully from SHM. (8104 bytes written)
16:47:31 User ccc added successfully to SHM. (8206 bytes written)
16:49:29 User ddd added successfully to SHM. (109 bytes written)

I offer my help to debug this problem,

Giancarlo Girardi


Previous Comments:
------------------------------------------------------------------------

[2002-01-14 02:24:57] [EMAIL PROTECTED]

Have you tried this with 4.1.1?

------------------------------------------------------------------------

[2001-01-29 12:27:07] [EMAIL PROTECTED]

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


-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to