Hello Yasuo, Here's what I get when trying to compile the latest snapshot of PHP with your patch (on FreeBSD 4.2 -- I will try on Slackware 8 next):
OD_SSL=208104 -DEAPI -DUSE_EXPAT -I/usr/home/rick/snaps.php/php4-20020206180 0/TSRM -g -O2 -prefer-pic -c session.c session.c: In function `php_session_start': session.c:850: `php_session_none' undeclared (first use in this function) session.c:850: (Each undeclared identifier is reported only once session.c:850: for each function it appears in.) session.c:940: `var' undeclared (first use in this function) session.c: In function `zif_session_set_save_handler': session.c:1133: `php_session_none' undeclared (first use in this function) session.c: In function `zif_session_unset': session.c:1421: `php_session_none' undeclared (first use in this function) *** Error code 1 Stop in /usr/home/rick/snaps.php/php4-200202061800/ext/session. *** Error code 1 Stop in /usr/home/rick/snaps.php/php4-200202061800/ext/session. *** Error code 1 Stop in /usr/home/rick/snaps.php/php4-200202061800/ext. *** Error code 1 Stop in /usr/home/rick/snaps.php/php4-200202061800. When I patched the source tree with your diff, here is the output: ----------- bash-2.04$ patch -p0 < session.diff Hmm... Looks like a unified diff to me... The text leading up to this was: -------------------------- |? ext/session/tmp.diff |? ext/session/bak |Index: ext/session//mod_files.c |=================================================================== |RCS file: /repository/php4/ext/session/mod_files.c,v |retrieving revision 1.67 |diff -u -r1.67 mod_files.c |--- ext/session//mod_files.c 3 Feb 2002 05:40:19 -0000 1.67 |+++ ext/session//mod_files.c 5 Feb 2002 03:24:15 -0000 -------------------------- Patching file ext/session//mod_files.c using Plan A... Hunk #1 succeeded at 16. Hunk #2 succeeded at 123. Hunk #3 failed at 138. Hunk #4 failed at 153. Hunk #5 succeeded at 257 with fuzz 1. Hunk #6 succeeded at 288. 2 out of 6 hunks failed--saving rejects to ext/session//mod_files.c.rej Hmm... The next patch looks like a unified diff to me... The text leading up to this was: -------------------------- |Index: ext/session//mod_mm.c |=================================================================== |RCS file: /repository/php4/ext/session/mod_mm.c,v |retrieving revision 1.31 |diff -u -r1.31 mod_mm.c |--- ext/session//mod_mm.c 25 Jan 2002 20:59:24 -0000 1.31 |+++ ext/session//mod_mm.c 5 Feb 2002 03:24:15 -0000 -------------------------- Patching file ext/session//mod_mm.c using Plan A... Hunk #1 succeeded at 319 with fuzz 1. Hunk #2 failed at 328. 1 out of 2 hunks failed--saving rejects to ext/session//mod_mm.c.rej Hmm... The next patch looks like a unified diff to me... The text leading up to this was: -------------------------- |Index: ext/session//php_session.h |=================================================================== |RCS file: /repository/php4/ext/session/php_session.h,v |retrieving revision 1.68 |diff -u -r1.68 php_session.h |--- ext/session//php_session.h 5 Feb 2002 01:28:55 -0000 1.68 |+++ ext/session//php_session.h 5 Feb 2002 03:24:15 -0000 -------------------------- Patching file ext/session//php_session.h using Plan A... Hunk #1 succeeded at 61 with fuzz 2. Hunk #2 succeeded at 84. Hmm... The next patch looks like a unified diff to me... The text leading up to this was: -------------------------- |Index: ext/session//session.c |=================================================================== |RCS file: /repository/php4/ext/session/session.c,v |retrieving revision 1.275 |diff -u -r1.275 session.c |--- ext/session//session.c 5 Feb 2002 01:30:22 -0000 1.275 |+++ ext/session//session.c 5 Feb 2002 03:24:16 -0000 -------------------------- Patching file ext/session//session.c using Plan A... Hunk #1 succeeded at 87. Hunk #2 failed at 128. Hunk #3 succeeded at 480. Hunk #4 succeeded at 557 with fuzz 2. Hunk #5 failed at 581. Hunk #6 failed at 601. Hunk #7 succeeded at 755. Hunk #8 failed at 846. Hunk #9 succeeded at 940. Hunk #10 succeeded at 968 with fuzz 2. Hunk #11 succeeded at 1008. Hunk #12 succeeded at 1026. Hunk #13 succeeded at 1064. Hunk #14 succeeded at 1094. Hunk #15 failed at 1133. Hunk #16 succeeded at 1168. Hunk #17 succeeded at 1197 with fuzz 1. Hunk #18 succeeded at 1228. Hunk #19 succeeded at 1306. Hunk #20 failed at 1330. Hunk #21 failed at 1356. Hunk #22 failed at 1438. Hunk #23 succeeded at 1459. Hunk #24 succeeded at 1469 with fuzz 1. Hunk #25 succeeded at 1490. Hunk #26 succeeded at 1501. Hunk #27 succeeded at 1515. Hunk #28 succeeded at 1535. 8 out of 28 hunks failed--saving rejects to ext/session//session.c.rej Hmm... Ignoring the trailing garbage. done ----------- I made sure I had all my libs in the right place, AFAIK. Am I doing something wrong? ----- Original Message ----- From: "Yasuo Ohgaki" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]>; "Rick Morris" <[EMAIL PROTECTED]> Cc: "Yasuo Ohgaki" <[EMAIL PROTECTED]> Sent: Wednesday, February 06, 2002 1:24 AM Subject: [PHP-INST] Re: Linux and mm session handler -- does it really handle high load? > Found the problem. It's actually in output layer, not > the patch. > > Just make sure you don't output any before starting > session/sending headers. PHP fails to complain about it > under my system and it caused segfaults. > > Here is my simple performance test reuslt > > [root@dev root]# ab -c 500 -n 5000 > http://tmp-dev.localnet/~yohgaki/test/sess_save_handler/mm-handler.php > This is ApacheBench, Version 1.3d <$Revision: 1.58 $> apache-1.3 > Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ > Copyright (c) 1998-2001 The Apache Group, http://www.apache.org/ > > Benchmarking tmp-dev.localnet (be patient) > Completed 500 requests > Completed 1000 requests > Completed 1500 requests > Completed 2000 requests > Completed 2500 requests > Completed 3000 requests > Completed 3500 requests > Completed 4000 requests > Completed 4500 requests > Finished 5000 requests > Server Software: Apache/1.3.23 > Server Hostname: tmp-dev.localnet > Server Port: 80 > > Document Path: /~yohgaki/test/sess_save_handler/mm-handler.php > Document Length: 30 bytes > > Concurrency Level: 500 > Time taken for tests: 37.948 seconds > Complete requests: 5000 > Failed requests: 0 > Broken pipe errors: 0 > Total transferred: 1923375 bytes > HTML transferred: 153870 bytes > Requests per second: 131.76 [#/sec] (mean) > Time per request: 3794.80 [ms] (mean) > Time per request: 7.59 [ms] (mean, across all concurrent requests) > Transfer rate: 50.68 [Kbytes/sec] received > > Connnection Times (ms) > min mean[+/-sd] median max > Connect: 3 539 656.8 432 9593 > Processing: 496 1612 2533.7 1323 33401 > Waiting: 411 1611 2533.7 1323 33402 > Total: 496 2150 2886.2 1872 37037 > > Percentage of the requests served within a certain time (ms) > 50% 1872 > 66% 1961 > 75% 2043 > 80% 2072 > 90% 2290 > 95% 2413 > 98% 5657 > 99% 11294 > 100% 37037 (last request) > [root@dev root]# > > > BTW, this Linux is running with 433Mhz Celeron PC. > > If you find problems, let me know. I might be able to fix > it before commit. > > -- > Yasuo Ohgaki > > Yasuo Ohgaki wrote: > > Looks like I've done something wrong. Older patch performs well but > > not this one. Don't even try the patch. > > > > -- > > Yasuo Ohgaki > > > > > > Rick Morris wrote: > > > >> I have tried mm as a session handler three times, on three different > >> Linux > >> boxes. Each one was a server under heavy load, running many concurrent > >> sessions, so I was hoping mm would solve some performance issues, but > >> have > >> been disappointed each time. > > > -- > PHP Install Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > -- PHP Install Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php