Anonymous | Login | Signup for a new account | 11-25-2024 09:14 PST |
Main | My View | View Issues | Change Log | Docs |
Viewing Issue Advanced Details [ Jump to Notes ] | [ View Simple ] [ Issue History ] [ Print ] | |||||||||||
ID | Category | Severity | Reproducibility | Date Submitted | Last Update | |||||||
0003959 | [Quercus] | major | always | 03-22-10 14:40 | 03-24-10 17:24 | |||||||
Reporter | rmann | View Status | public | |||||||||
Assigned To | ||||||||||||
Priority | normal | Resolution | open | Platform | ||||||||
Status | new | OS | ||||||||||
Projection | none | OS Version | ||||||||||
ETA | none | Fixed in Version | Product Version | 4.0.5 | ||||||||
Product Build | ||||||||||||
Summary | 0003959: PHP parsing errors | |||||||||||
Description |
In both resin 4.0.4 and 4.0.5 (and I think 4.0.0), there is a bug in the PHP rendering that either results in a StackOverflowError (4.0.0), or IllegalArgumentException. The stack trace is: [03-22 14:18:06.284] {http://*:80-18} [^] WARNING (com.caucho.server.webapp.ErrorPageManager) java.lang.IllegalArgumentException [03-22 14:18:06.284] {http://*:80-18} [^] at java.lang.Character.toChars(Character.java:2584) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseStringToken(QuercusParser.java:4757) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseStringToken(QuercusParser.java:4738) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseToken(QuercusParser.java:4113) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseUnary(QuercusParser.java:3072) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseAssignExpr(QuercusParser.java:2911) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseMulExpr(QuercusParser.java:2883) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseAddExpr(QuercusParser.java:2855) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseShiftExpr(QuercusParser.java:2830) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseCmpExpr(QuercusParser.java:2791) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseEqExpr(QuercusParser.java:2762) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseBitAndExpr(QuercusParser.java:2740) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseBitXorExpr(QuercusParser.java:2718) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseBitOrExpr(QuercusParser.java:2696) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseAndExpr(QuercusParser.java:2681) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseOrExpr(QuercusParser.java:2652) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseConditionalExpr(QuercusParser.java:2618) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseWeakAndExpr(QuercusParser.java:2596) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseWeakXorExpr(QuercusParser.java:2574) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseWeakOrExpr(QuercusParser.java:2552) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseExpr(QuercusParser.java:2543) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseIf(QuercusParser.java:1160) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseStatementList(QuercusParser.java:683) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseStatement(QuercusParser.java:817) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseIf(QuercusParser.java:1174) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseStatementList(QuercusParser.java:683) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseSwitch(QuercusParser.java:1305) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseStatementList(QuercusParser.java:687) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parseTop(QuercusParser.java:577) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parse(QuercusParser.java:478) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.parser.QuercusParser.parse(QuercusParser.java:331) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.page.PageManager.parse(PageManager.java:256) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.page.PageManager.parse(PageManager.java:213) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.QuercusContext.parse(QuercusContext.java:1109) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.servlet.QuercusServletImpl.service(QuercusServletImpl.java:139) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:610) [03-22 14:18:06.284] {http://*:80-18} [^] at javax.servlet.http.HttpServlet.service(HttpServlet.java:96) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:109) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:183) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.server.webapp.AccessLogFilterChain.doFilter(AccessLogFilterChain.java:103) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:286) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:775) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.server.connection.TcpConnection.dispatchRequest(TcpConnection.java:600) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.server.connection.TcpConnection.handleRequestsImpl(TcpConnection.java:566) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.server.connection.TcpConnection.handleRequests(TcpConnection.java:519) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.server.connection.TcpConnection$AcceptTask.doTask(TcpConnection.java:1100) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.server.connection.TcpConnection$ConnectionReadTask.runThread(TcpConnection.java:1037) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.server.connection.TcpConnection$AcceptTask.run(TcpConnection.java:1068) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.util.ThreadPool$PoolThread.runTasks(ThreadPool.java:901) [03-22 14:18:06.284] {http://*:80-18} [^] at com.caucho.util.ThreadPool$PoolThread.run(ThreadPool.java:866) The PHP code that causes this is in WordPress 2.9.2, when attempting to save General Settings. The code that fails is wp_includes/plugin.php:336: do { foreach ( (array) current($wp_filter[$tag]) as $the_ ) if ( !is_null($the_['function']) ) call_user_func_array($the_['function'], array_slice($args, 0, (int) $the_['accepted_args'])); } while ( next($wp_filter[$tag]) !== false ); It's actually the while clause that causes the failure, something in the !== comparison. |
|||||||||||
Steps To Reproduce | ||||||||||||
Additional Information | ||||||||||||
Attached Files | ||||||||||||
|
There are no notes attached to this issue. |
Issue History | |||
Date Modified | Username | Field | Change |
03-22-10 14:40 | rmann | New Issue | |
03-24-10 17:24 | ferg | Project | Resin => Quercus |
Mantis 1.0.0rc3[^]
Copyright © 2000 - 2005 Mantis Group
27 total queries executed. 25 unique queries executed. |