php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #49503 "failed to open semaphore file"
Submitted: 2009-09-08 20:42 UTC Modified: 2009-10-08 17:57 UTC
Votes:4
Avg. Score:4.8 ± 0.4
Reproduced:4 of 4 (100.0%)
Same Version:3 (75.0%)
Same OS:2 (50.0%)
From: mike at fuelsaver-mpg dot com Assigned:
Status: Closed Package: Session related
PHP Version: 5.2.11 OS: Linux 2.6.9-023stab048.6-enterpr
Private report: No CVE-ID: None
View Developer Edit
Welcome! If you don't have a Git account, you can't do anything here.
If you reported this bug, you can edit this bug over here.
(description)
Block user comment
Status: Assign to:
Package:
Bug Type:
Summary:
From: mike at fuelsaver-mpg dot com
New email:
PHP Version: OS:

 

 [2009-09-08 20:42 UTC] mike at fuelsaver-mpg dot com
Description:
------------
When I upgraded to php 5.2.10, I had my error log growing to 100s of MBs with error messages that it was unable to open its semaphore file.  I un-commented the php.ini line:  "session.save_path = ", created a directory that could be written to, and this resolved that particular error.

However, I'm still getting the following errors, albeit on a less frequent basis.  I got 53 of these in one day however:

[07-Sep-2009 00:24:46] PHP Warning:  PHP Startup: mm_create(0, /home/fuelsa5/tmp/php/session_mm_cgi32010) failed, err mm:core: failed to open semaphore file (File exists) in Unknown on line 0

There are files being created in the directory, so it's not a permissions issue.  Per the warning, a duplicate file is attempting to be created.

Expected result:
----------------
I expect not to get so many error messages.  I'm not even sure what's breaking.


Patches

011_all_sharedmem_session_path_gentoo.patch (last revision 2010-04-21 13:45 UTC by tsisaruk dot v at gmail dot com)

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2009-09-18 22:38 UTC] jd at cpanel dot net
Still present in 5.2.11.

This looks like it's identical to bugs 49401, 49427 and 49433 which were incorrectly marked as bogus.

This happens when the mm session module tries to initialize itself.  You don't need anything configured to use MM to hit the problem.  As this particular bug illustrates, even a valid session.save_path setting wont avoid running into the same spurious warning.

Ex:

jd@jd:~$ /usr/local/bin/php -i | grep -i session
PHP Warning:  PHP Startup: mm_create(0, /session_mm_cli32004) failed, err mm:core: failed to open semaphore file (Permission denied) in Unknown on line 0
session
Session Support => enabled
session.auto_start => Off => Off
session.bug_compat_42 => On => On
session.bug_compat_warn => On => On
session.cache_expire => 180 => 180
session.cache_limiter => nocache => nocache
session.cookie_domain => no value => no value
session.cookie_httponly => Off => Off
session.cookie_lifetime => 0 => 0
session.cookie_path => / => /
session.cookie_secure => Off => Off
session.entropy_file => no value => no value
session.entropy_length => 0 => 0
session.gc_divisor => 100 => 100
session.gc_maxlifetime => 1440 => 1440
session.gc_probability => 1 => 1
session.hash_bits_per_character => 4 => 4
session.hash_function => 0 => 0
session.name => PHPSESSID => PHPSESSID
session.referer_check => no value => no value
session.save_handler => files => files
session.save_path => no value => no value
session.serialize_handler => php => php
session.use_cookies => On => On
session.use_only_cookies => Off => Off
session.use_trans_sid => 0 => 0
WDDX Session Serializer => enabled


The change between 5.2.9 and 5.2.10 that makes the difference is the warning added in revision 280733:

 root@jd:/usr/local/svn/php/PHP_5_2# svn log -r280733 --verbose
------------------------------------------------------------------------
r280733 | jani | 2009-05-18 12:23:42 -0500 (Mon, 18 May 2009) | 2 lines
Changed paths:
   M /php/php-src/branches/PHP_5_2/ext/session/mod_files.c
   M /php/php-src/branches/PHP_5_2/ext/session/mod_mm.c
   M /php/php-src/branches/PHP_5_2/ext/session/mod_user.c
   M /php/php-src/branches/PHP_5_2/ext/session/php_session.h
   M /php/php-src/branches/PHP_5_2/ext/session/session.c

MFH: Sync WS / CS changes where applicable

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


It's not really clear why the warning was added to the 5.2 branch though, since it doesn't look like it was added to trunk or 5.3 in revisions 280729 and 280728.

svn diff http://svn.php.net/repository/php/php-src/branches/PHP_5_2/ext/session/mod_mm.c http://svn.php.net/repository/php/php-src/trunk/ext/session/mod_mm.c
 [2009-10-01 12:36 UTC] senker at gmail dot com
It also disables writing sessions to memcached, so if you are using memcached, you have to stick to 5.2.9.

Please escalate this to higher priority, it's unbelievable such important bug spans over two PHP versions already.
 [2009-10-02 01:06 UTC] sriram dot natarajan at gmail dot com
i am just curious - how does this affect writing session to memcached ?
 [2009-10-08 10:33 UTC] svn@php.net
Automatic comment from SVN on behalf of jani
Revision: http://svn.php.net/viewvc/?view=revision&revision=289338
Log: - Fixed bug #49503 (invalid warning for failed semaphore file creation)
# I have no idea why I had added this. Might have been some debug code.. :(
 [2009-10-08 10:34 UTC] jani@php.net
Thanks for digging this. I have absolutely no idea why I had added this warning there. Might have been either some debug code I put there while testing or simply copy'n'paste error gone wild.. :(

I removed it now. And you can of course avoid the warning by setting the session.save_path properly. :)
 [2009-10-08 17:57 UTC] mike at fuelsaver-mpg dot com
Thank you.
 [2010-04-21 15:53 UTC] tsisaruk dot v at gmail dot com
I added patch which fix trouble with creating semaphore file in / directory, if sessions.save_path is undefined. It behaviour now is like file session handle
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Sun Nov 24 15:01:36 2024 UTC