[AOLSERVER] Again, Segfault with Aolserver, PHP, SquirrelMail
Hello, No one seems to want to touch this, not on the Aolserver list, not on the PHP list, not on the SquirrelMail list. However, I'm going to try again. On a server running RedHat Linux 7.2, I've got Aolserver 3.4.2 compiled and working fine, and PHP 4.0.6 compiled as a module and working fine except when it segfaults. It occurs consistently when loading SquirrelMail's (1.2.0-rc2) src/right_main.php, though I think the problem is really in the called function sqi_mailbox_list from functions/imap_mailbox.php. Exactly what the server is trying to do when it crashes I haven't yet figured out. The PHP source distribution warns about trouble with multi-threaded servers, but the suggested workaround, removing a line of code, refers to a line that no longer appears to be in the code anyway. Has anyone had a similar problem? Can anyone help me solve this problem or debug it more accurately? I currently have Aolserver 3.0, SquirrelMail 1.0.6, and PHP 4.0.6 running with no problems on another server under RedHat 6.2 (I'm trying to migrate our webmail onto a new machine) so this is very frustrating. Thanks. Sean Redmond Brooklyn Museum of Art
Re: [AOLSERVER] Again, Segfault with Aolserver, PHP, SquirrelMail
At 03:27 PM 11/26/2001 -0500, you wrote: >Hi Sean, > >have you run AOLserver under GDB yet to find out where it is segfaulting? >Here's an example of how to do that. Thanks. It is happening when in the PHP statement include "../src/load_prefs.php"; The relative path is expanded to /usr/local/aolserver-3.4.2/servers/webmail/pages/squirrelmail-1.2.0-rc2/src/../src/load_prefs.php instead of: /usr/local/aolserver-3.4.2/servers/webmail/pages/squirrelmail-1.2.0-rc2/src/load_prefs.php I.e the ".." is not treated correctly. It seems to be PHP's fault. here is the relevant output of gdb: [New Thread 6151 (LWP 26839)] Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 6151 (LWP 26839)] 0x400afdd3 in canonicalize ( name=0x4083b278 "/usr/local/aolserver-3.4.2/servers/webmail/pages/squirrelmail-1.2.0-rc2/src/../src/load_prefs.php", resolved=0x4053414c "") at canonicalize.c:88 88 canonicalize.c: No such file or directory. in canonicalize.c (gdb) bt #0 0x400afdd3 in canonicalize ( name=0x4083b278 "/usr/local/aolserver-3.4.2/servers/webmail/pages/squirrelmail-1.2.0-rc2/src/../src/load_prefs.php", resolved=0x4053414c "") at canonicalize.c:88 #1 0x402be679 in virtual_file_ex (state=0x40535184, path=0x40665cd4 "../src/load_prefs.php", verify_path=0) at tsrm_virtual_cwd.c:299 #2 0x402423cc in expand_filepath ( filepath=0x40665cd4 "../src/load_prefs.php", real_path=0x0) at fopen_wrappers.c:531 #3 0x40241a3f in php_fopen_and_set_opened_path ( path=0x40665cd4 "../src/load_prefs.php", mode=0x402d2627 "rb", opened_path=0x405373b4) at fopen_wrappers.c:237 #4 0x40242059 in php_fopen_with_path ( filename=0x40665cd4 "../src/load_prefs.php", mode=0x402d2627 "rb", path=0x8178b38 ".:/usr/local/lib/php:/home/aol30/webmail/pages/webmail/src", opened_path=0x405373b4) at fopen_wrappers.c:391 #5 0x40242288 in php_fopen_url_wrapper ( path=0x40665cd4 "../src/load_prefs.php", mode=0x402d2627 "rb", options=1, issock=0x405372d0, socketd=0x405372d4, opened_path=0x405373b4) at fopen_wrappers.c:470 #6 0x4023fc81 in php_fopen_wrapper_for_zend ( filename=0x40665cd4 "../src/load_prefs.php", opened_path=0x405373b4) at main.c:477 #7 0x40239074 in open_file_for_scanning (file_handle=0x405373ac, compiler_globals=0x40630900) at zend_language_scanner_cc.cc:2899 #8 0x402394ee in compile_file (file_handle=0x405373ac, type=2, compiler_globals=0x40630900) at zend_language_scanner_cc.cc:2966 #9 0x4023966b in compile_filename (type=2, filename=0x406d92bc, compiler_globals=0x40630900, executor_globals=0x4061f440) at zend_language_scanner_cc.cc:3022 #10 0x40224016 in execute (op_array=0x406be8d0, executor_globals=0x4061f440) at ./zend_execute.c:2028 #11 0x40221da3 in execute (op_array=0x40774028, executor_globals=0x4061f440) at ./zend_execute.c:1544 #12 0x40221da3 in execute (op_array=0x407721a0, executor_globals=0x4061f440) at ./zend_execute.c:1544 #13 0x40221da3 in execute (op_array=0x4075b340, executor_globals=0x4061f440) at ./zend_execute.c:1544 #14 0x40221da3 in execute (op_array=0x40643c3c, executor_globals=0x4061f440) at ./zend_execute.c:1544 #15 0x4023016d in zend_execute_scripts (type=8, compiler_globals=0x40630900, executor_globals=0x4061f440, file_count=3) at zend.c:752 #16 0x40241167 in php_execute_script (primary_file=0x405436cc, compiler_globals=0x40630900, executor_globals=0x4061f440, core_globals=0x4061f740) at main.c:1206 #17 0x4023ef32 in php_ns_module_main (ns_context=0x40625bb0, sapi_globals=0x40632968) at aolserver.c:434 #18 0x4023f17f in php_ns_request_handler (context=0x8187c08, conn=0x819dc60) at aolserver.c:519 #19 0x08077bb7 in Ns_ConnRunRequest (conn=0x819dc60) at op.c:196 #20 0x0807e2c2 in ConnRun (connPtr=0x819dc60) at serv.c:882 #21 0x0807dc10 in NsConnThread (arg=0x40604300) at serv.c:671 #22 0x0811833b in NsThreadMain (arg=0x40604310) at thread.c:228 #23 0x4002ec6f in pthread_start_thread (arg=0x40543be0) at manager.c:284 #24 0x4002ed5f in pthread_start_thread_event (arg=0x40543be0) at manager.c:308 Sean Redmond Brooklyn Museum of Art
Re: [AOLSERVER] Again, Segfault with Aolserver, PHP, SquirrelMail
Scott, I've been using this Aolserver 3.0 + PHP 4.0.6 for over a year with no problem -- this is new (mis)behavior. In what I'm trying to setup now, the PHP version is the same, but I'm trying to use new versions of Aolserver (3.4.2) and RedHat (7.2, old server has 6.2). I cannot think of any way that Aolserver is causing this problem for PHP, though. At 06:59 PM 11/26/2001 -0600, you wrote: >Hi Sean, > >Is this something you can fix on your own? It's possible that the PHP module >for AOLserver is doing this (i.e. it's building a path without checking for >relative paths); I'm not sure as I've never used the module or PHP. > >/s. Sean Redmond Brooklyn Museum of Art
Re: [AOLSERVER] Again, Segfault with Aolserver, PHP, SquirrelMail
At 11:24 AM 11/27/2001 -0500, Scott Goodwin wrote: >I hate to say it, but drop back to 3.0 and test on RH 7.2. If it breaks, >then there's something different in the combo between AOLserver and RedHat >7.2. Actually, I tried that and ran into the same problem. Sean Redmond Brooklyn Museum of Art
Re: [AOLSERVER] Again, Segfault with Aolserver, PHP, SquirrelMail
linux/lxstat64.c:52 #1 0x400afb7c in canonicalize ( name=0x8280b90 "/usr/local/aolserver-3.4.2/servers/webmail/pages/squirrelmail-1.2.0-rc2/src/../src/load_prefs.php", resolved=0x403ce10c "") at canonicalize.c:150 #2 0x402cd659 in virtual_file_ex (state=0x403cf13c, path=0x83d3704 "../src/load_prefs.php", verify_path=0) at tsrm_virtual_cwd.c:299 #3 0x402cdc1f in virtual_fopen (path=0x83d3704 "../src/load_prefs.php", mode=0x402e1c47 "rb") at tsrm_virtual_cwd.c:497 #4 0x40246224 in php_fopen_and_set_opened_path ( path=0x83d3704 "../src/load_prefs.php", mode=0x402e1c47 "rb", opened_path=0x403d03b4) at fopen_wrappers.c:235 #5 0x40246859 in php_fopen_with_path ( filename=0x83d3704 "../src/load_prefs.php", mode=0x402e1c47 "rb", path=0x402e307b ".:/usr/local/lib/php", opened_path=0x403d03b4) at fopen_wrappers.c:391 #6 0x40246a88 in php_fopen_url_wrapper ( path=0x83d3704 "../src/load_prefs.php", mode=0x402e1c47 "rb", options=1, issock=0x403d0280, socketd=0x403d0284, opened_path=0x403d03b4) at fopen_wrappers.c:470 #7 0x40244481 in php_fopen_wrapper_for_zend ( filename=0x83d3704 "../src/load_prefs.php", opened_path=0x403d03b4) at main.c:477 #8 0x4023bd7e in open_file_for_scanning () from /usr/local/aolserver/bin/libphp4.so #9 0x4023c124 in compile_file () from /usr/local/aolserver/bin/libphp4.so #10 0x4023c2c4 in compile_filename () from /usr/local/aolserver/bin/libphp4.so #11 0x40226c66 in execute (op_array=0x8393538, executor_globals=0x821b490) at ./zend_execute.c:2028 #12 0x402249f3 in execute (op_array=0x8223780, executor_globals=0x821b490) at ./zend_execute.c:1544 #13 0x402249f3 in execute (op_array=0x827dfa0, executor_globals=0x821b490) at ./zend_execute.c:1544 #14 0x402249f3 in execute (op_array=0x8364b08, executor_globals=0x821b490) at ./zend_execute.c:1544 #15 0x402249f3 in execute (op_array=0x8254224, executor_globals=0x821b490) at ./zend_execute.c:1544 #16 0x40232dbd in zend_execute_scripts (type=8, compiler_globals=0x82301e0, executor_globals=0x821b490, file_count=3) at zend.c:752 #17 0x40245967 in php_execute_script (primary_file=0x403dc6cc, compiler_globals=0x82301e0, executor_globals=0x821b490, core_globals=0x828dac0) at main.c:1206 #18 0x40243732 in php_ns_module_main (ns_context=0x828e950, sapi_globals=0x826fc50) at aolserver.c:434 #19 0x4024397f in php_ns_request_handler (context=0x817a638, conn=0x8192118) at aolserver.c:519 #20 0x08077bb7 in Ns_ConnRunRequest (conn=0x8192118) at op.c:196 #21 0x0807e2c2 in ConnRun (connPtr=0x8192118) at serv.c:882 #22 0x0807dc10 in NsConnThread (arg=0x8261fb8) at serv.c:671 #23 0x0811833b in NsThreadMain (arg=0x8261fc8) at thread.c:228 #24 0x4002ec6f in pthread_start_thread (arg=0x403dcbe0) at manager.c:284 #25 0x4002ed5f in pthread_start_thread_event (arg=0x403dcbe0) at manager.c:308 Sean Redmond Brooklyn Museum of Art
Re: [AOLSERVER] Again, Segfault with Aolserver, PHP, SquirrelMail
At 01:22 PM 11/27/2001 -0500, you wrote: >Could you add the directory containing the PHP source to your >gdb init, as well, and send that backtrace? I'm guessing that's >where canonicalize.c lives, and it'd be interesting to see what >line 88 is actually doing that causes the segfault ... I did (tsrm_virtual_cwd.c, for instance, is part of PHP) but but there is no file called canonicalize.c on my system. Is it built into gcc or something? It seems to be part of stdlib. BTW, if I build PHP with --enable-debug Aolserver crashes on startup: [27/Nov/2001:12:12:42][14963.1024][-main-] Warning: modload: failed to load '/usr/local/aolserver/bin/libphp4.so': '/usr/local/aolserver/bin/libphp4.so: undefined symbol: tsrm_error' [27/Nov/2001:12:12:42][14963.1024][-main-] Fatal: modload: failed to load module '/usr/local/aolserver/bin/libphp4.so' Sean Redmond Brooklyn Museum of Art
Re: [AOLSERVER] Again, Segfault with Aolserver, PHP, SquirrelMail
(gdb) up #1 0x40291659 in virtual_file_ex (state=0x403ac164, path=0x833a694 "../src/load_prefs.php", verify_path=0) at tsrm_virtual_cwd.c:299 299 if (realpath(tmp, resolved_path)) { (gdb) list 294 ptr += state->cwd_length; 295 *ptr++ = DEFAULT_SLASH; 296 memcpy(ptr, path, path_length); 297 ptr += path_length; 298 *ptr = '\0'; 299 if (realpath(tmp, resolved_path)) { 300 path = resolved_path; 301 path_length = strlen(path); 302 } 303 free(tmp); At 02:10 PM 11/27/2001 -0500, Dossy wrote: >Against your AOLserver 3.0 and RH7 setup, could you re-run gdb >and produce the crash, then type "up" then "list" as commands >to gdb once it segfaults? > >Send that output. It may help us. > >-- Dossy Sean Redmond Brooklyn Museum of Art
Re: [AOLSERVER] Again, Segfault with Aolserver, PHP, SquirrelMail
} ptr = tsrm_strtok_r(NULL, TOKENIZER_STRING, &tok); } if (state->cwd_length == COPY_WHEN_ABSOLUTE) { state->cwd = (char *) realloc(state->cwd, state->cwd_length+1+1); state->cwd[state->cwd_length] = DEFAULT_SLASH; state->cwd[state->cwd_length+1] = '\0'; state->cwd_length++; } if (verify_path && verify_path(state)) { CWD_STATE_FREE(state); *state = *old_state; ret = 1; } else { CWD_STATE_FREE(old_state); ret = 0; } free(old_state); free(free_path); #if VIRTUAL_CWD_DEBUG fprintf (stderr, "virtual_file_ex() = %s\n",state->cwd); #endif return (ret); } At 04:18 PM 11/27/2001 -0500, you wrote: >Okay. Could you provide the source for the entire virtual_file_ex() >function from tsrm_virtual_cwd.c file? > >-- Dossy > >On 2001.11.27, Sean Redmond <[EMAIL PROTECTED]> wrote: > > (gdb) up > > #1 0x40291659 in virtual_file_ex (state=0x403ac164, > > path=0x833a694 "../src/load_prefs.php", verify_path=0) > > at tsrm_virtual_cwd.c:299 > > 299 if (realpath(tmp, resolved_path)) { > > (gdb) list > > 294 ptr += state->cwd_length; > > 295 *ptr++ = DEFAULT_SLASH; > > 296 memcpy(ptr, path, path_length); > > 297 ptr += path_length; > > 298 *ptr = '\0'; > > 299 if (realpath(tmp, resolved_path)) { > > 300 path = resolved_path; > > 301 path_length = strlen(path); > > 302 } > > 303 free(tmp); Sean Redmond Brooklyn Museum of Art
[AOLSERVER] nssha1 and SSHA
There is a module to do SHA1 encryption (nssha1) from Ars Digita, but I need a way to do SSHA encryption. Any implementations/ideas? Thanks, Sean Redmond Sean Redmond Brooklyn Museum of Art
Re: [AOLSERVER] nssha1 and SSHA
At 12:03 PM 2/28/2002 -0500, you wrote: >I should be more specific -- SHA1 is a hashing algorithm. What exactly are >you trying to do with it? > >/s. I'm trying to hash passwords to compare them to passwords stored in an LDAP directory (and retrieved with ns_ldap). By default (at least, I guess, for OpenLDAP) they seem to be stored in SSHA. Sean Sean Redmond Brooklyn Museum of Art
Re: [AOLSERVER] php + aolserver
Edwin, 'make install' should have put libphp4.so in your aolserver's bin directory (e.g. /usr/local/aolserver/bin). Did you add the necessary lines to your aolserver config as described in {php-src}/sapi/aolserver/README? Also --with-aolserver-src isn't necessary anymore, so that might have confused make. Try reconfiguring without it and rebuilding. Edwin Ho wrote: > Hi, > > I'm trying to get php to work with aolserver . I am using > "aolserver3.3ad13-oacs1-beta-src.tar.gz" and "php-4.2.2" > > I configured php like this: > > ./configure --with-aolserver=/usr/local/aolserver \ >--with-aolserver-src=/usr/local/src/oacs/aolserver \ >--with-pgsql=/usr/local/pgsql \ >--without-mysql > > the whole thing went well and I did a 'make install' and that went well > also. > > but the 2 apps don't talk to each other. > > Don't I have to put the .so file in aolserver's lib folder? where do I > get that? -- Sean Redmond BMA Information Systems
Re: [AOLSERVER] php + aolserver (is it stable?)
Jerry Asher wrote: > Whenever I think about php + aolserver, I am struck by what I've seen in > the past. Comments at the php sites that php + aolserver isn't stable or > ready for production. > > Am I confused about this? > > Also, do php programs embedded within aolserver benefit from: > > A) aolserver's db connection pooling? > B) aolserver's multithreaded model? > C) ??? > > Due to the stability issues, I haven't seen much value in adding php to > aolserver, and not just letting apache and aolserver run side by side with > apache hosting php. > > ??? > > Thanks, > > Jerry It works fine almost all the time. I originally had this setup because we were using the same server (we only had one!) to try out openacs and to serve webmail, for which we were using SquirrelMail (written in PHP). Sometimes threads would hang -- it seemed that if users had inboxes with too many (i.e. thousands) of messages, php would time out, as its designed to do, but the aolserver thread wouldn't die, and enough hung threads would hang (but not crash) aolserver. It was nothing too terrible, so we just set a cron job to periodically restart the server to clear all the threads out before they got to that critical level. When we upgraded to RedHat 6.2 to 7.2, something in the webmail script that displayed the contents of the inbox consistently crashed aolserver. I've never been able to track it down, nor have I seen the problem with anything else. You can look at the bug (http://bugs.php.net/bug.php?id=14365) if you are interested. Now we have more servers so we use apache for webmail and aolserver for everything else (though no PHP except for webmail). So I wouldn't recommend it, and there certainly isn't any benefit, but if you have to use it, it will probably work. Unless it's SquirrelMail on a RedHat 7.* box -- that definitely will not work! -- Sean Redmond BMA Information Systems