Edit report at https://bugs.php.net/bug.php?id=64606&edit=1

 ID:                 64606
 User updated by:    pbxanime at gmail dot com
 Reported by:        pbxanime at gmail dot com
 Summary:            php crashes when wrtiting stream
-Status:             Feedback
+Status:             Open
 Type:               Bug
 Package:            Streams related
 Operating System:   Centos 5.8
 PHP Version:        5.4.14
 Block user comment: N
 Private report:     N

 New Comment:

Well I commented out memcache as save_handler in php.ini and went back to 
saving sessions by files. And I haven't had php crash on me since, the output 
is below for the .diff file.

my problem had to do with memcache though, the php pecl version i'm running is 
memcache-2.2.7. It almost doesn't make sense though, because now I have 300 
plus session files that only take up 15KB total space. And if that's all it was 
taking up in memcache, I don't know why it would cause php to crash. 

cat /usr/src/php-5.4.14/ext/session/tests/rfc1867.diff:

001+ Fatal error: Unknown: No storage module chosen - failed to initialize 
session in Unknown on line 0
001- string(%d) "rfc1867-tests"
002- bool(true)
003- array(2) {
004-   [%u|b%"file1"]=>
005-   array(5) {
006-     [%u|b%"name"]=>
007-     %string|unicode%(9) "file1.txt"
008-     [%u|b%"type"]=>
009-     %string|unicode%(0) ""
010-     [%u|b%"tmp_name"]=>
011-     %string|unicode%(%d) "%s"
012-     [%u|b%"error"]=>
013-     int(0)
014-     [%u|b%"size"]=>
015-     int(1)
016-   }
017-   [%u|b%"file2"]=>
018-   array(5) {
019-     [%u|b%"name"]=>
020-     %string|unicode%(9) "file2.txt"
021-     [%u|b%"type"]=>
022-     %string|unicode%(0) ""
023-     [%u|b%"tmp_name"]=>
024-     %string|unicode%(%d) "%s"
025-     [%u|b%"error"]=>
026-     int(0)
027-     [%u|b%"size"]=>
028-     int(1)
029-   }
030- }
031- array(5) {
032-   [%u|b%"start_time"]=>
033-   int(%d)
034-   [%u|b%"content_length"]=>
035-   int(%d)
036-   [%u|b%"bytes_processed"]=>
037-   int(%d)
038-   [%u|b%"done"]=>
039-   bool(true)
040-   [%u|b%"files"]=>
041-   array(2) {
042-     [0]=>
043-     array(7) {
044-       [%u|b%"field_name"]=>
045-       %unicode|string%(5) "file1"
046-       [%u|b%"name"]=>
047-       %unicode|string%(9) "file1.txt"
048-       [%u|b%"tmp_name"]=>
049-       %unicode|string%(%d) "%s"
050-       [%u|b%"error"]=>
051-       int(0)
052-       [%u|b%"done"]=>
053-       bool(true)
054-       [%u|b%"start_time"]=>
055-       int(%d)
056-       [%u|b%"bytes_processed"]=>
057-       int(1)
058-     }
059-     [1]=>
060-     array(7) {
061-       [%u|b%"field_name"]=>
062-       %unicode|string%(5) "file2"
063-       [%u|b%"name"]=>
064-       %unicode|string%(9) "file2.txt"
065-       [%u|b%"tmp_name"]=>
066-       %unicode|string%(%d) "%s"
067-       [%u|b%"error"]=>
068-       int(0)
069-       [%u|b%"done"]=>
070-       bool(true)
071-       [%u|b%"start_time"]=>
072-       int(%d)
073-       [%u|b%"bytes_processed"]=>
074-       int(1)
075-     }
076-   }
077- }


Previous Comments:
------------------------------------------------------------------------
[2013-04-15 04:32:58] larue...@php.net

what the failed diff of these session test scripts?

like the output of:

cat ext/session/tests/ext/session/tests/rfc1867.diff

------------------------------------------------------------------------
[2013-04-14 16:23:34] pbxanime at gmail dot com

These same errors still occur in 5.4.14 I think I have a better clue of why 
this is happening. When I upgraded to 5.4.14 I ran the make test and got these 
results:

=====================================================================
FAILED TEST SUMMARY
---------------------------------------------------------------------
Bug #43073 (TrueType bounding box is wrong for angle<>0) freetype < 2.4.10 
[ext/gd/tests/bug43073.phpt]
Bug #48801 (Problem with imagettfbbox) freetype < 2.4.10 
[ext/gd/tests/bug48801.phpt]
Test posix_getgrgid() function : basic functionality 
[ext/posix/tests/posix_getgrgid_basic.phpt]
Bug #32330 (session_destroy, "Failed to initialize storage module", custom 
session handler) [ext/session/tests/bug32330.phpt]
Bug #60634 (Segmentation fault when trying to die() in SessionHandler::write()) 
- fatal error in close during exec [ext/session/tests/bug60634_error_5.phpt]
session rfc1867 [ext/session/tests/rfc1867.phpt]
session rfc1867 [ext/session/tests/rfc1867_cleanup.phpt]
session rfc1867 disabled [ext/session/tests/rfc1867_disabled.phpt]
session rfc1867 disabled 2 [ext/session/tests/rfc1867_disabled_2.phpt]
session rfc1867 [ext/session/tests/rfc1867_inter.phpt]
session rfc1867 no name [ext/session/tests/rfc1867_no_name.phpt]
session rfc1867 sid cookie [ext/session/tests/rfc1867_sid_cookie.phpt]
session rfc1867 sid get [ext/session/tests/rfc1867_sid_get.phpt]
session rfc1867 sid get 2 [ext/session/tests/rfc1867_sid_get_2.phpt]
session rfc1867 sid cookie [ext/session/tests/rfc1867_sid_invalid.phpt]
session rfc1867 sid only cookie [ext/session/tests/rfc1867_sid_only_cookie.phpt]
session rfc1867 sid only cookie 2 
[ext/session/tests/rfc1867_sid_only_cookie_2.phpt]
session rfc1867 sid post [ext/session/tests/rfc1867_sid_post.phpt]
Test session_module_name() function : variation 
[ext/session/tests/session_module_name_variation3.phpt]
Test session_name() function : error functionality 
[ext/session/tests/session_name_basic.phpt]
Test session_name() function : variation 
[ext/session/tests/session_name_variation1.phpt]
Test session_save_path() function : error functionality 
[ext/session/tests/session_save_path_error.phpt]
Test session_save_path() function : variation 
[ext/session/tests/session_save_path_variation1.phpt]
Test session_set_save_handler() function : basic functionality 
[ext/session/tests/session_set_save_handler_basic.phpt]
Test session_set_save_handler() function : using closures as callbacks 
[ext/session/tests/session_set_save_handler_closures.phpt]
Test session_set_save_handler() function : error functionality 
[ext/session/tests/session_set_save_handler_error3.phpt]
Test session_set_save_handler() function : variation 
[ext/session/tests/session_set_save_handler_variation4.phpt]
Bug #44394 (Last two bytes missing from output) with session.use_trans_id 
[ext/standard/tests/general_functions/bug44394_2.phpt]
Test setlocale() function : usage variations - Setting all available locales in 
the platform [ext/standard/tests/strings/setlocale_variation2.phpt]
=====================================================================

=====================================================================
WARNED TEST SUMMARY
---------------------------------------------------------------------
Bug #52062 (large timestamps with DateTime::getTimestamp and 
DateTime::setTimestamp) (32 bit) [ext/date/tests/bug52062.phpt] (warn: XFAIL 
section but test passes)
=====================================================================

------------------------------------------------------------------------
[2013-04-11 16:57:05] pbxanime at gmail dot com

I don't know what other information I can supply, but if there's anything else 
I can provide, just tell me.

------------------------------------------------------------------------
[2013-04-08 22:57:47] pbxanime at gmail dot com

here's php -v:

PHP 5.4.13 (cli) (built: Apr  2 2013 15:57:48)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies


I turned off Xcache and here's results from 5 different core dumps spanning 5 
hours:

#0  0x08304f47 in _php_stream_write (stream=0x90f5b08,
    buf=0xb77495bc "set 34e0f7080b10afd7af2e03e9b1536c33 0 1440 
38\r\nuser_session_last_access|i:1365458365;\r\n", count=88)
    at /usr/src/php-5.4.13/main/streams/streams.c:1238
1238            if (buf == NULL || count == 0 || stream->ops->write == NULL) {


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


#0  0x04939510 in ?? ()
(gdb) bt
#0  0x04939510 in ?? ()
#1  0x08303995 in _php_stream_write_buffer (stream=0x90f5b18, buf=0x95e6958 
"get 8185df46afa3fa484826ee530507445e\r\n",
    count=38) at /usr/src/php-5.4.13/main/streams/streams.c:1134
#2  0x009a00bb in ?? ()
#3  0x090f5b18 in ?? ()
#4  0x095e6958 in ?? ()
#5  0x00000026 in ?? ()
#6  0x082f5029 in spprintf (pbuf=0x95e9374, max_len=3214955994, format=0x20 
<Address 0x20 out of bounds>)
    at /usr/src/php-5.4.13/main/spprintf.c:818
#7  0x009a346a in ?? ()
#8  0x095e9374 in ?? ()
#9  0xbfa055da in ?? ()
#10 0x00000020 in ?? ()
#11 0xbfa055da in ?? ()
#12 0x00000000 in ?? ()
(gdb) frame 1
#1  0x08303995 in _php_stream_write_buffer (stream=0x90f5b18, buf=0x95e6958 
"get 8185df46afa3fa484826ee530507445e\r\n",
    count=38) at /usr/src/php-5.4.13/main/streams/streams.c:1134
1134                    justwrote = stream->ops->write(stream, buf, towrite 
TSRMLS_CC);
(gdb) frame 6
#6  0x082f5029 in spprintf (pbuf=0x95e9374, max_len=3214955994, format=0x20 
<Address 0x20 out of bounds>)
    at /usr/src/php-5.4.13/main/spprintf.c:818
818             cc = vspprintf(pbuf, max_len, format, ap);

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

#0  0x08304eb3 in _php_stream_write_filtered (stream=0x90992a0, buf=<value 
optimized out>, count=3214964224, flags=0) at 
/usr/src/php-5.4.13/main/streams/streams.c:1177
1177                    status = filter->fops->filter(stream, filter, brig_inp, 
brig_outp,
(gdb) bt
#0  0x08304eb3 in _php_stream_write_filtered (stream=0x90992a0, buf=<value 
optimized out>, count=3214964224, flags=0) at 
/usr/src/php-5.4.13/main/streams/streams.c:1177
#1  0x009a2506 in ?? ()
#2  0x00000000 in ?? ()
(gdb) frame 0
#0  0x08304eb3 in _php_stream_write_filtered (stream=0x90992a0, buf=<value 
optimized out>, count=3214964224, flags=0) at 
/usr/src/php-5.4.13/main/streams/streams.c:1177
1177                    status = filter->fops->filter(stream, filter, brig_inp, 
brig_outp,

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

#0  0x30320032 in ?? ()
(gdb) bt
#0  0x30320032 in ?? ()
#1  0x08304ee5 in _php_stream_write_filtered (stream=0x90f5b18, buf=<value 
optimized out>, count=<value optimized out>, flags=0)
    at /usr/src/php-5.4.13/main/streams/streams.c:1177
#2  0x009a00bb in ?? ()
#3  0x00000000 in ?? ()
(gdb) frame 1
#1  0x08304ee5 in _php_stream_write_filtered (stream=0x90f5b18, buf=<value 
optimized out>, count=<value optimized out>, flags=0)
    at /usr/src/php-5.4.13/main/streams/streams.c:1177
1177                    status = filter->fops->filter(stream, filter, brig_inp, 
brig_outp,

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

#0  0x08304eb3 in _php_stream_write_filtered (stream=0x9098890, buf=<value 
optimized out>, count=3214964224, flags=0) at 
/usr/src/php-5.4.13/main/streams/streams.c:1177
1177                    status = filter->fops->filter(stream, filter, brig_inp, 
brig_outp,
(gdb) bt
#0  0x08304eb3 in _php_stream_write_filtered (stream=0x9098890, buf=<value 
optimized out>, count=3214964224, flags=0) at 
/usr/src/php-5.4.13/main/streams/streams.c:1177
#1  0x009a2506 in ?? ()
#2  0x00000000 in ?? ()
(gdb) frame 0
#0  0x08304eb3 in _php_stream_write_filtered (stream=0x9098890, buf=<value 
optimized out>, count=3214964224, flags=0) at 
/usr/src/php-5.4.13/main/streams/streams.c:1177
1177                    status = filter->fops->filter(stream, filter, brig_inp, 
brig_outp,

------------------------------------------------------------------------
[2013-04-08 16:40:32] pbxanime at gmail dot com

No, I haven't tested it with Xcache disabled. I didn't even think Xcache would 
be an issue since it doesn't interact with the writing of the sessions. I will 
disable Xcache for a few hours and see what results, I get thank you for the 
response.

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


The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at

    https://bugs.php.net/bug.php?id=64606


-- 
Edit this bug report at https://bugs.php.net/bug.php?id=64606&edit=1

Reply via email to