Mantis Bugtracker
  

Viewing Issue Simple Details Jump to Notes ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0002544 [Quercus] minor always 03-20-08 19:09 04-18-09 14:21
Reporter nam View Status public  
Assigned To
Priority normal Resolution open  
Status new   Product Version 3.1.5
Summary 0002544: Mint web analytics package installs but does not function correctly
Description (rep by willab)

I have used Resin as a J2EE container for quite a while and I am very happy with it. Just recently I've had the opportunity to get into Quercus and it looks very promising. I am trying to install Mint, PHP/javascript based web analytics package (http://www.haveamint.com/). [^] Running Resin 3.1.5 Pro I passed their compatibility suite test (http://www.haveamint.com/about/requirements#compatibility-suite) [^] and I can actually go to mydomain.com/phpappdirectory and it loads the page. However, recording requests is failing and the author determined it must be something about the relative paths or special handling of $_GET variables by Quercus, but could not get much further. I think this would be useful application for all other Resin users as well and any help is appreciated. Below is the code snippet and the exception. Cheers, Will com.caucho.quercus.QuercusExitException at com.caucho.quercus.env.Env.exit(Env.java:3852) at _quercus._mint._app._paths._auth._index__php.execute(_index__php.java:54) at com.caucho.quercus.env.Env.include(Env.java:3612) at _quercus._mint._app._path__php.execute(_path__php.java:101) at com.caucho.quercus.env.Env.include(Env.java:3612) at _quercus._mint._index__php.execute(_index__php.java:44) at com.caucho.quercus.page.QuercusPage.executeTop(QuercusPage.java:119) at com.caucho.quercus.servlet.ResinQuercusServlet.service(ResinQuercusServlet.java:146) at com.caucho.quercus.servlet.QuercusServlet.service(QuercusServlet.java:353) at javax.servlet.http.HttpServlet.service(HttpServlet.java:91) at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:103) at com.atlassian.confluence.util.LoggingContextFilter.doFilter(LoggingContextFilter.java:49) at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:87) at com.atlassian.seraph.filter.SecurityFilter.doFilter(SecurityFilter.java:192) at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:87) at com.atlassian.seraph.filter.TrustedApplicationsFilter.doFilter(TrustedApplicationsFilter.java:112) at com.atlassian.confluence.util.AbstractBootstrapHotSwappingFilter.doFilter(AbstractBootstrapHotSwappingFilter.java:28) at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:87) at com.atlassian.seraph.filter.BaseLoginFilter.doFilter(BaseLoginFilter.java:110) at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:87) at com.atlassian.confluence.util.ClusterHeaderFilter.doFilter(ClusterHeaderFilter.java:35) at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:87) at com.atlassian.core.filters.gzip.GzipFilter.doFilter(GzipFilter.java:61) at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:87) at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:181) at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:266) at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:269) at com.caucho.server.port.TcpConnection.run(TcpConnection.java:603) at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:721) at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:643) at java.lang.Thread.run(Thread.java:619) The code at that line looks like this: if ((! v_Mint.callMethod(env, 320930870, _qc_isLoggedIn, 10).toBoolean() && (v_Mint.getField(env, qv_cfg_6).get(qv_mode_7).eq(qv_default_8) || (v_Mint.getField(env, qv_cfg_6).get(qv_mode_7).eq(qv_client_9) && ((((v__GET.get(qv_preferences_10).isset() || v__GET.get(qv_uninstall_11).isset()) || v__GET.get(qv_import_12).isset()) || v__GET.get(qv_moved_13).isset()) || v__GET.get(qv_visits_14).isset()))))) { if (((v__POST = env.getGlobalVar("_POST")).get(qv_MintPath_15).isset() && v__POST.get(qv_MintPath_15).eq(qv_Auth_16))) { if (v_Mint.callMethod(env, 470942992, _qc_authenticate, 12).toBoolean()) { return NullValue.NULL; } } env.include(_quercus_selfDirectory, env.getConstant("MINT_ROOT").toStringBuilder(env).append(_qc_apppathsauthloginphp).toString(), false, false); env.exit(); // THIS IS THE LINE IN THE EXCEPTION } return LongValue.ONE; } The corresponding PHP code is: if ( !$Mint->isLoggedIn() && ( $Mint->cfg['mode'] == 'default' || ( $Mint->cfg['mode'] == 'client' && ( isset($_GET['preferences']) || isset($_GET['uninstall']) || isset($_GET['import']) || isset($_GET['moved']) || isset($_GET['visits']) ) ) ) ) { if (isset($_POST['MintPath']) && $_POST['MintPath'] == 'Auth') { if ($Mint->authenticate()) { return; } } include(MINT_ROOT.'app/paths/auth/login.php'); exit(); }
Additional Information
Attached Files

- Relationships

- Notes
(0003956)
nshttpd
04-18-09 14:20

I was about to open up a new bug, but saw this one here. The problem with Mint not working looks to be that Quercus doesn't properly parse query string parameters that do not have values associated with them. This is something that Mint does on several levels. To reproduce and see the problem a simple test.php page with phpinfo() can be used. With a normal PHP CGI interpreter make a request with a query string of "?foo&bar=baz&poof"

PHP CGI has three _REQUEST var mapped to foo, bar (with value) and poof. the _GET structure is the same way.

Do the same thing in Quercus and the _REQUEST structure still has the three bar, foo, poof with baz as the value of bar, but the _GET structure has _GET["foo&bar"] with a value of baz and _GET["poof"] with no value. This _GET issue is what causes Mint to not work properly. Not sure if this also might be the cause of the Zend MVC bug I saw listed also or not since I haven't messed with the Zend setup.
 
(0003957)
nshttpd
04-18-09 14:21

oh, and forgot this. The product version on the bug is 3.1.5, but it's also there in 3.2.0.
 

- Issue History
Date Modified Username Field Change
03-20-08 19:09 nam New Issue
04-18-09 14:20 nshttpd Note Added: 0003956
04-18-09 14:21 nshttpd Note Added: 0003957


Mantis 1.0.0rc3[^]
Copyright © 2000 - 2005 Mantis Group
31 total queries executed.
27 unique queries executed.
Powered by Mantis Bugtracker