ID: 37083 User updated by: [EMAIL PROTECTED] Reported By: [EMAIL PROTECTED] Status: Assigned Bug Type: SOAP related Operating System: * PHP Version: 5CVS-2006-04-14 (snap) Assigned To: andrei New Comment:
It is the same problem as before. The backtrace of the weserver is unusable because stack corrupt (mostly SIGILL, sometimes SIGSEGV but also without stack). I yesterday tried to get a backtrace (for the problem you fixed) the whole afternoon... It was horrible. With the CLI script it was reproducible but this time the CLI script works. It is always soap client code, the soap server runs in AXIS (see wsdl in client code script). The script is used in the webserver with some additional parameter parsing logic, but the core used is the soap code from my last mail. I think the script does in CLI mode also bad things but it does not crash. In the webserver, where more things are running at the same time the corrupt memory leads to a crash. I hoped that you see the error when looking at the WSDL used: http://opteron.bremen.wdc-mare.org:8800/servlet/AXIS/Search?wsdl Could be that there is an error in your code that makes this crash (the xsd:anyType in the RangeQuery or in the result???) Previous Comments: ------------------------------------------------------------------------ [2006-04-15 16:03:45] [EMAIL PROTECTED] Does it crash in the client code or the server code? Can you provide a short script that reproduces it on the webserver as well as a backtrace? ------------------------------------------------------------------------ [2006-04-15 11:59:30] [EMAIL PROTECTED] The bug is not fixed completely. With another webservice it crashes (one with an xsd:anyType value in one of the complex types): [15/Apr/2006:13:55:20] catastrophe (24983): CORE3260: Server crash detected (signal SIGSEGV) [15/Apr/2006:13:55:20] info (24983): CORE3261: Crash occurred in NSAPI SAF php5_execute [15/Apr/2006:13:55:20] info (24983): CORE3262: Crash occurred in function get_conversion from module /pangaea/webserver61/bin/libphp5.so Code: <?php for ($i=0; $i<20; $i++) { echo "Loop: ".$i."\n"; $ws=new SoapClient('http://opteron.bremen.wdc-mare.org:8800/servlet/AXIS/Search?wsdl',array('encoding'=>'ISO-8859-1' $search=new stdClass(); $search->queryString='argo'; $search->ranges[]=$r=new stdClass(); $r->field='maxDateTime'; $r->min='2003-04-01'; $search->index='all'; $res=$ws->search($search,$i*10,10); } ?> The problem is that this cannot be reproduced with CLI, this crashes with SIGSEGV or SIGILL in the webserver only, so the above CLI script works. ------------------------------------------------------------------------ [2006-04-15 11:39:27] [EMAIL PROTECTED] Works as CLI in patched snapshot: [EMAIL PROTECTED]:~/install/php5.1-200604151030/sapi/cli$ ./php ~/test/test.php Loop: 0 Loop: 1 Loop: 2 Loop: 3 Loop: 4 Loop: 5 Loop: 6 Loop: 7 Loop: 8 Loop: 9 Loop: 10 Loop: 11 Loop: 12 Loop: 13 Loop: 14 Loop: 15 Loop: 16 Loop: 17 Loop: 18 Loop: 19 ...and in the webserver with WSDL caching enabled: http://www.pangaea.de/PangaVista?query=grobe You can apply this patch and close this bug. I have only the following question: Is it correct that no more /tmp/wsdl-* files are generated? There should be some hint in php.ini, that the wsdl_cache_dir is not longer needed. Or WHEN will it be used now (if not ZTS,...)? Thanks for this patch, it is now really faster in this multithreaded webserver where no longer the wsdl/wsdl-cache file needs to be evaluated! ------------------------------------------------------------------------ [2006-04-15 06:16:42] [EMAIL PROTECTED] Could you try the following patch and make sure it works for you? http://www.php.net/~andrei/soap_bug.diff ------------------------------------------------------------------------ [2006-04-14 15:12:28] [EMAIL PROTECTED] I have now compiled it again only with xml and soap modules linked statically with --enable-debug, this time it coredumps even in the first loop (there must be something completely broken, that the script generates two different signals with/without debug). From the webserver logs you see that master_to_xml is also in the error log (together with other soap functions): (gdb) run ~/test/test.php Starting program: /pangaea/install/php5.1-200604131430/sapi/cli/php ~/test/test.php Loop: 0 Program received signal SIGSEGV, Segmentation fault. master_to_xml (encode=0x424b60, data=0x43fc28, style=1, parent=0x429740) at /pangaea/install/php5.1-200604131430/ext/soap/php_encoding.c:363 363 data = encode->to_xml_before(&encode->details, data); (gdb) bt #0 master_to_xml (encode=0x424b60, data=0x43fc28, style=1, parent=0x429740) at /pangaea/install/php5.1-200604131430/ext/soap/php_encoding.c:363 #1 0x0011ca0c in model_to_xml_object (node=0x429740, model=0x43a8b0, object=0x43fc28, style=1, strict=1) at /pangaea/install/php5.1-200604131430/ext/soap/php_encoding.c:1461 #2 0x0011cb5c in model_to_xml_object (node=0x429740, model=0x43a8e0, object=0x428258, style=1, strict=1) at /pangaea/install/php5.1-200604131430/ext/soap/php_encoding.c:1542 #3 0x0011d300 in to_xml_object (type=0x439ef8, data=0x428258, style=1, parent=0x423138) at /pangaea/install/php5.1-200604131430/ext/soap/php_encoding.c:1718 #4 0x0011fd60 in sdl_guess_convert_xml (enc=0x439ef8, data=0x428258, style=1, parent=0x423138) at /pangaea/install/php5.1-200604131430/ext/soap/php_encoding.c:2981 #5 0x0011b7e4 in master_to_xml (encode=0x439ef8, data=0x428258, style=1, parent=0x423138) at /pangaea/install/php5.1-200604131430/ext/soap/php_encoding.c:366 #6 0x0010d45c in serialize_zval (val=0x428258, param=0x42f430, paramName=0x413718 "searchDescription", style=1, parent=0x423138) at /pangaea/install/php5.1-200604131430/ext/soap/soap.c:4167 #7 0x0010d60c in serialize_parameter (param=0x42f430, param_val=0x428258, index=1, name=0x0, style=1, parent=0x423138) at /pangaea/install/php5.1-200604131430/ext/soap/soap.c:4140 #8 0x001124ac in serialize_function_call (this_ptr=0x427f60, function=0x415118, function_name=0x1 <Address 0x1 out of bounds>, uri=0x42f430 "", arguments=0x44059c, arg_count=5, version=1, soap_headers=0x0) at /pangaea/install/php5.1-200604131430/ext/soap/soap.c:3975 #9 0x001132ac in do_soap_call (this_ptr=0x427f60, function=0x440650 "advSearch", function_len=9, arg_count=5, real_args=0x440598, return_value=0x43fda0, location=0x43a6f0 "http://ws.pangaea.de/ws/services/PangaVista", soap_action=0x0, call_uri=0x0, soap_headers=0x0, output_headers=0x0) at /pangaea/install/php5.1-200604131430/ext/soap/soap.c:2482 #10 0x00113ebc in zif_SoapClient___call (ht=2, return_value=0x43fda0, return_value_ptr=0x0, this_ptr=0x427f60, return_value_used=1) at /pangaea/install/php5.1-200604131430/ext/soap/soap.c:2696 #11 0x002023bc in zend_call_function (fci=0xffbfef98, fci_cache=0x363c00) at /pangaea/install/php5.1-200604131430/Zend/zend_execute_API.c:952 #12 0x002226dc in zend_call_method (object_pp=0xffbff0b0, obj_ce=0x3d0e38, fn_proxy=0x3d0f54, function_name=0x2ee3c8 "__call", function_name_len=6, retval_ptr_ptr=0xffbff04c, param_count=1515870810, arg1=0x440008, arg2=0x4403a0) at /pangaea/install/php5.1-200604131430/Zend/zend_interfaces.c:88 #13 0x0022904c in zend_std_call_user_call (ht=-4198224, return_value=0x43ff60, return_value_ptr=0x0, this_ptr=0x427f60, return_value_used=1) at /pangaea/install/php5.1-200604131430/Zend/zend_object_handlers.c:634 #14 0x0022e8fc in zend_do_fcall_common_helper_SPEC (execute_data=0xffbff388) at zend_vm_execute.h:200 #15 0x0022e0d0 in execute (op_array=0x422d08) at zend_vm_execute.h:92 #16 0x0020fef0 in zend_execute_scripts (type=8, retval=0x0, file_count=3) at /pangaea/install/php5.1-200604131430/Zend/zend.c:1109 #17 0x001cdb58 in php_execute_script (primary_file=0xffbffc28) ---Type <return> to continue, or q <return> to quit--- at /pangaea/install/php5.1-200604131430/main/main.c:1732 #18 0x0029100c in main (argc=2, argv=0xffbffcc4) at /pangaea/install/php5.1-200604131430/sapi/cli/php_cli.c:1092 (gdb) ------------------------------------------------------------------------ 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 http://bugs.php.net/37083 -- Edit this bug report at http://bugs.php.net/?id=37083&edit=1